11.3. 迁移前步骤
在迁移一个或多个虚拟机之前,请执行以下步骤:
步骤
从 undercloud 中,识别源 Compute 节点主机名和目标 Compute 节点主机名。
$ source ~/overcloudrc $ openstack compute service list
列出源 Compute 节点上的虚拟机并找到您要迁移的虚拟机的 ID:
$ openstack server list --host [source] --all-projects
用源 Compute 节点的主机名替换
[source]
。
Compute 节点维护的迁移前步骤
如果您要关闭源 Compute 节点进行维护,则从 undercloud 禁用源 Compute 节点,以确保调度程序不会在维护期间尝试将新虚拟机分配给源 Compute 节点。
$ openstack compute service set [source] nova-compute --disable
用源 Compute 节点的主机名替换 [source]
。
NUMA、CPU 固定和 DPDK 实例的迁移前步骤
迁移使用 NUMA、CPU 固定或 DPDK 的虚拟机时,目标 Compute 节点的硬件规范和配置应该与源 Compute 节点相同。此外,目标 Compute 节点上应该没有运行任何虚拟机,以确保其保留源 Compute 节点的 NUMA 拓扑。
迁移使用 NUMA、CPU 固定或 DPDK 的虚拟机时,/etc/nova/nova.conf
文件要求 scheduler_default_filters
配置设置的值正确,如 AggregateInstanceExtraSpecsFilter
和 NUMATopologyFilter
。通过在环境文件中设置 NovaSchedulerDefaultFilters
heat 参数,可实现此操作。
如果 NUMA、CPU 固定或 DPDK 虚拟机的目标 Compute 节点未禁用,则将其禁用以防止调度程序将虚拟机分配给节点。
$ openstack compute service set [dest] nova-compute --disable
用目标 Compute 节点的主机名替换
[dest]
。确保目标 Compute 节点没有虚拟机,以前在迁移多个 DPDK 或 NUMA 虚拟机时从源 Compute 节点迁移的虚拟机除外。
$ openstack server list --host [dest] --all-projects
用目标 Compute 节点的主机名替换
[dest]
。确保目标 Compute 节点有足够的资源来运行 NUMA、CPU 固定或 DPDK 虚拟机。
$ openstack host show overcloud-compute-n $ ssh overcloud-compute-n $ numactl --hardware $ exit
用目标 Compute 节点的主机名替换
overcloud-compute-n
。要了解有关源或目标 Compute 节点的 NUMA 信息,请根据需要执行以下操作:
$ ssh root@overcloud-compute-n # lscpu && lscpu | grep NUMA # virsh nodeinfo # virsh capabilities # exit
使用
ssh
连接到overcloud-compute-n
,其中overcloud-compute-n
是源或目标 Compute 节点。如果不确定虚拟机是否使用 NUMA,请检查虚拟机的类别。
$ openstack server list -c Name -c Flavor --name [vm]
用虚拟机的名称或 ID 替换
[vm]
。然后,检查类别:
$ openstack flavor show [flavor]
用类别的名称或 ID 替换
[flavor]
。如果properties
字段的hw:mem_page_size
带有不是any
的值,如2MB
、2048
或1GB
,则虚拟机将具有 NUMA 拓扑。如果properties
字段包括aggregate_instance_extra_specs:pinned=’true’
,则虚拟机使用 CPU 固定。如果properties
字段包括hw:numa_nodes
,则nova
将虚拟机限制为特定 NUMA 节点。对于每个使用 NUMA 的虚拟机,请考虑从底层 Compute 节点检索有关 NUMA 拓扑的信息,以便您能够验证完成迁移后,目标 Compute 节点上的 NUMA 拓扑是否反映源 Compute 节点的 NUMA 拓扑。
$ ssh root@overcloud-compute-n # virsh vcpuinfo [vm] # virsh numatune [vm] # exit
用虚拟机的名称替换
[vm]
。vcpuinfo
命令提供有关 NUMA 和 CPU 固定的详细信息。numatune
命令提供有关虚拟机使用的 NUMA 节点的详细信息。