11.3. 迁移前步骤
在迁移一个或多个虚拟机之前,请执行以下步骤:
步骤
从 undercloud 中,识别源 Compute 节点主机名和目标 Compute 节点主机名。
source ~/overcloudrc openstack compute service list
$ source ~/overcloudrc $ openstack compute service listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出源 Compute 节点上的虚拟机并找到您要迁移的虚拟机的 ID:
openstack server list --host [source] --all-projects
$ openstack server list --host [source] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 用源 Compute 节点的主机名替换
[source]。
Compute 节点维护的迁移前步骤
如果您要关闭源 Compute 节点进行维护,则从 undercloud 禁用源 Compute 节点,以确保调度程序不会在维护期间尝试将新虚拟机分配给源 Compute 节点。
openstack compute service set [source] nova-compute --disable
$ 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
$ openstack compute service set [dest] nova-compute --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 用目标 Compute 节点的主机名替换
[dest]。确保目标 Compute 节点没有虚拟机,以前在迁移多个 DPDK 或 NUMA 虚拟机时从源 Compute 节点迁移的虚拟机除外。
openstack server list --host [dest] --all-projects
$ openstack server list --host [dest] --all-projectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 用目标 Compute 节点的主机名替换
[dest]。确保目标 Compute 节点有足够的资源来运行 NUMA、CPU 固定或 DPDK 虚拟机。
openstack host show overcloud-compute-n ssh overcloud-compute-n numactl --hardware exit
$ openstack host show overcloud-compute-n $ ssh overcloud-compute-n $ numactl --hardware $ exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 用目标 Compute 节点的主机名替换
overcloud-compute-n。要了解有关源或目标 Compute 节点的 NUMA 信息,请根据需要执行以下操作:
ssh root@overcloud-compute-n lscpu && lscpu | grep NUMA virsh nodeinfo virsh capabilities exit
$ ssh root@overcloud-compute-n # lscpu && lscpu | grep NUMA # virsh nodeinfo # virsh capabilities # exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ssh连接到overcloud-compute-n,其中overcloud-compute-n是源或目标 Compute 节点。如果不确定虚拟机是否使用 NUMA,请检查虚拟机的类别。
openstack server list -c Name -c Flavor --name [vm]
$ openstack server list -c Name -c Flavor --name [vm]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 用虚拟机的名称或 ID 替换
[vm]。然后,检查类别:
openstack flavor show [flavor]
$ openstack flavor show [flavor]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 用类别的名称或 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
$ ssh root@overcloud-compute-n # virsh vcpuinfo [vm] # virsh numatune [vm] # exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 用虚拟机的名称替换
[vm]。vcpuinfo命令提供有关 NUMA 和 CPU 固定的详细信息。numatune命令提供有关虚拟机使用的 NUMA 节点的详细信息。