成功迁移 Edge 服务网关后,可以将 NSX-V 主机迁移到 NSX 主机传输节点。

前提条件

  • 确认 Edge 迁移已完成且所有路由和服务都正常运行。
  • VMware vCenter UI 中,转到主机和集群页面,然后确认所有 ESXi 主机均处于正常运行状态。解决主机的任何问题,包括断开连接状态。不能有任何挂起的重新引导或挂起的任务才能进入和退出维护模式。

过程

  1. 迁移主机页面上,单击开始
  2. 如果为任何主机组选择了手动维护迁移模式,则必须为每个虚拟机完成以下任务之一,以便主机能够进入维护模式。
    选项 操作
    关闭虚拟机电源或将虚拟机挂起。
    1. 右键单击虚拟机,并选择电源 > 关闭电源电源 > 关闭客户机操作系统电源 > 挂起
    2. 迁移主机后,将虚拟机接口连接到相应的 NSX 分段,然后打开虚拟机电源。
    使用 vMotion 移动虚拟机。 右键单击虚拟机,并选择“迁移”。按照提示将虚拟机移至其他主机。请注意,在迁移过程中,迁移协调器通过 vMotion 将虚拟机移动到受临时规则保护的特定端口以保持安全性。对于手动 vMotion,不会将虚拟机移动到这些端口,因此,可能存在安全漏洞。要手动通过 vMotion 进行移动,必须使用 vSphere API 迁移虚拟机,其中,网络支持必须指向与 NSX 分段对应的 OpaqueNetwork ID(使用 NVDS 时),或者指向 VDS 端口组 ID(使用 VDS 7 时)。在这两种情况下,网络设备的 externalId 必须设置为字符串“VM_UUID:vNIC_ID”,其中 VM_UUID 是虚拟机的实例 UUID,vNIC_ID 是虚拟机的 vNIC 索引,其中第一个 vNIC 为 4000。
    使用冷迁移移动虚拟机。
    1. 右键单击虚拟机,并选择电源 > 关闭电源电源 > 关闭客户机操作系统电源 > 挂起
    2. 右键单击虚拟机,并选择“迁移”。按照提示将虚拟机移至其他主机,并将其接口连接到相应的 NSX 分段。
    以下 Python 代码用于为虚拟机中的每个 vNIC 指定外部 ID,然后通过 vMotion 移动虚拟机,以便这些 vNIC 使用正确的端口连接到 ID 为“ls_id”的 NSX 分段:
    devices = vmObject.config.hardware.device
    nic_devices = [device for device in devices if isinstance(device, vim.Vm.device.VirtualEthernetCard)]
    vnic_changes = []
    for device in nic_devices:
        vif_id = vmObject.config.instanceUuid + ":" + str(device.key)
        vnic_spec = self._get_nsxt_vnic_spec(device, ls_id, vif_id)
        vnic_changes.append(vnic_spec)
    relocate_spec = vim.Vm.RelocateSpec()
    relocate_spec.SetDeviceChange(vnic_changes)
    # set other fields in the relocate_spec
    vmotion_task = vmObject.Relocate(relocate_spec)
    WaitForTask(vmotion_task)
    
    def _get_nsxt_vnic_spec(self, device, ls_id, vif_id):
        nsxt_backing = vim.Vm.Device.VirtualEthernetCard.OpaqueNetworkBackingInfo()
        nsxt_backing.SetOpaqueNetworkId(ls_id)
        nsxt_backing.SetOpaqueNetworkType('nsx.LogicalSwitch')
        device.SetBacking(nsxt_backing)
        device.SetExternalId(vif_id)
        dev_spec = vim.Vm.Device.VirtualDeviceSpec()
        dev_spec.SetOperation(vim.Vm.Device.VirtualDeviceSpec.Operation.edit)
        dev_spec.SetDevice(device)
        return dev_spec

    有关完整脚本的示例,请参见 https://github.com/dixonly/samples/blob/main/vmotion.py

    在移动或挂起所有虚拟机或将其关闭电源后,主机将进入维护模式。如果希望在要迁移的主机进入维护模式之前使用冷迁移将虚拟机移动到其他主机,必须在移动虚拟机时,至少让一个虚拟机保持运行状态。最后一个虚拟机断开电源或挂起后,主机会进入维护模式,并开始将主机迁移到 NSX 的过程。

结果

在主机使用就地迁移模式迁移到 NSX 后,您可能会看到严重警报,并显示网络连接中断 (Network connectivity lost) 消息。在 vSphere Distributed Switch (VDS) 6.5 或 6.7 迁移到 N-VDS 时,将会发出该警报,因为主机不再将物理网卡连接到它以前连接到的 VDS。要将迁移的主机恢复为“已连接”状态,请在每个主机上单击重置为绿色并禁止警告(如果有)。

如果某主机迁移失败,可以将它所在的主机组移动到组列表底部。这样在解决失败主机存在的问题时,可以继续迁移其他主机组。

如果某主机迁移失败,则迁移将在所有正在进行的主机迁移完成后暂停。解决了主机存在的问题后,请单击重试以重试迁移失败的主机。如果该主机仍无法迁移,则可以在该主机上手动配置 NSX 或从系统中移除该主机。在这种情况下,在主机迁移步骤结束时,由于主机迁移失败,将不会启用完成按钮。您需要使用 REST API 客户端(例如 postman 或 curl)调用 REST API POST https://<nsx-mgr-IP>/api/v1/migration?action=finalize_infra(<nsx-mgr-IP> 是运行迁移服务的 NSX Manager 的 IP 地址)来完成迁移,然后执行迁移后任务。

有关解决其他主机迁移问题的信息,请参见对迁移问题进行故障排除

下一步做什么

如果迁移的安全策略使用第三方合作伙伴服务,请在 NSX 中部署合作伙伴服务实例。有关详细说明,请参见: