11.3. 迁移前步骤

在迁移一个或多个虚拟机之前,请执行以下步骤:

步骤

  1. 从 undercloud 中,识别源 Compute 节点主机名和目标 Compute 节点主机名。

    $ source ~/overcloudrc
    $ openstack compute service list
  2. 列出源 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 配置设置的值正确,如 AggregateInstanceExtraSpecsFilterNUMATopologyFilter。通过在环境文件中设置 NovaSchedulerDefaultFilters heat 参数,可实现此操作。

  1. 如果 NUMA、CPU 固定或 DPDK 虚拟机的目标 Compute 节点禁用,则将其禁用以防止调度程序将虚拟机分配给节点。

    $ openstack compute service set [dest] nova-compute --disable

    用目标 Compute 节点的主机名替换 [dest]

  2. 确保目标 Compute 节点没有虚拟机,以前在迁移多个 DPDK 或 NUMA 虚拟机时从源 Compute 节点迁移的虚拟机除外。

    $ openstack server list --host [dest] --all-projects

    用目标 Compute 节点的主机名替换 [dest]

  3. 确保目标 Compute 节点有足够的资源来运行 NUMA、CPU 固定或 DPDK 虚拟机。

    $ openstack host show overcloud-compute-n
    $ ssh overcloud-compute-n
    $ numactl --hardware
    $ exit

    用目标 Compute 节点的主机名替换 overcloud-compute-n

  4. 要了解有关源或目标 Compute 节点的 NUMA 信息,请根据需要执行以下操作:

    $ ssh root@overcloud-compute-n
    # lscpu && lscpu | grep NUMA
    # virsh nodeinfo
    # virsh capabilities
    # exit

    使用 ssh 连接到 overcloud-compute-n,其中 overcloud-compute-n 是源或目标 Compute 节点。

  5. 如果不确定虚拟机是否使用 NUMA,请检查虚拟机的类别。

    $ openstack server list -c Name -c Flavor --name [vm]

    用虚拟机的名称或 ID 替换 [vm]

    然后,检查类别:

    $ openstack flavor show [flavor]

    用类别的名称或 ID 替换 [flavor]。如果 properties 字段的 hw:mem_page_size 带有不是 any 的值,如 2MB20481GB,则虚拟机将具有 NUMA 拓扑。如果 properties 字段包括 aggregate_instance_extra_specs:pinned=’true’,则虚拟机使用 CPU 固定。如果properties字段包括 hw:numa_nodes,则 nova 将虚拟机限制为特定 NUMA 节点。

  6. 对于每个使用 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 节点的详细信息。