SR-IOV 端口实时迁移

Nova 在 Train 版本中的一项最新更改引入了实时迁移具有 NUMA 拓扑的实例的能力(同时考虑 CPU Pinning 和 Huge Pages)。本规范旨在讨论并确保在 charm 部署中支持该功能。

问题描述

作为操作员,我希望能够实时迁移具有 NUMA 拓扑的实例。

提议的变更

在 Nova 中,几个功能依赖于内部 NUMA 拓扑对象。如问题描述中所述,操作员可能会要求迁移此类实例。

  • 配置 flavor 时,使用 hw:numa_nodes=N 时具有 NUMA 感知能力

  • 配置 flavor 时,使用 hw:cpu_policy=dedicated 时具有 CPU Pinning 功能

  • 配置 flavor 时,使用 hw:mem_page_size=large 时具有 Huge Pages 功能

此改进的支持将被视为 Ubuntu 19.10/Train 的技术预览版,对于 Ubuntu 18.04 LTS/Train 和 Ubuntu 20.04 LTS/Ussuri 则是生产就绪版。

预计不会对任何 charm 进行更改。这里的目标是验证行为并提供额外的文档。

备选方案

操作员可以识别与源主机具有相同特征的目标主机,并确保目标主机上 guest vCPU 被 pinned 的 CPU 处于空闲状态。此外,在 Huge Pages 使用的情况下,确保目标主机上 Huge Pages 的可用性。

默认情况下,Nova 中禁用具有 NUMA 拓扑的实例的实时迁移可用性,但操作员可以使用以下命令启用该行为:

workaround/enable_numa_live_migration=True

需要注意的是,此选项当前未在 charm-nova-compute 中公开。

实现

负责人

主要负责人

Sahid Orentino Ferdjaoui <lp:sahid-ferdjaoui>

Gerrit Topic

对于与此规范相关的所有补丁,请使用 Gerrit 主题“numa-live-migration”。

git-review -t numa-live-migration

工作项

实现包括以下项目

  • 使用 NUMA 感知能力验证行为。

  • 使用 CPU Pinning 验证行为。

  • 使用 Huge Pages 验证行为。

仓库

  • 任何额外的文档都将被考虑用于 charm-deployment-guide

文档

n/a

安全性

n/a

测试

n/a

依赖项

  • 请参阅 NUMA 感知实时迁移规范 [0]。

[0] https://specs.openstack.org/openstack/nova-specs/specs/stein/approved/numa-aware-live-migration.html