成功移轉 Edge 服務閘道後,您可以將 NSX-V 主機移轉至 NSX 主機傳輸節點。

必要條件

  • 確認 Edge 移轉已完成,並且所有路由和服務皆正常運作。
  • VMware vCenter UI 中,移至主機和叢集頁面,並確認所有 ESXi 主機都處於運作狀態。解決主機的任何問題,包括已中斷連線的狀態。若要進入及結束維護模式,不得有擱置中的重新開機或擱置中的工作。

程序

  1. 移轉主機頁面上,按一下開始
    此螢幕擷取畫面顯示移轉主機畫面

    如果您針對所有主機群組選取就地自動維護移轉模式,主機移轉隨即啟動。請注意,在自動維護模式下,移轉協調器不會重新設定已關閉電源的虛擬機器。移轉之後,您需要先手動設定這些虛擬機器,然後再開啟這些虛擬機器的電源。

  2. 如果您為任何主機群組選取了手動維護移轉模式,則必須為每個虛擬機器完成下列其中一項工作,讓主機可以進入維護模式。
    選項 動作
    關閉虛擬機器電源或暫停虛擬機器。
    1. 以滑鼠右鍵按一下虛擬機器,然後選取電源 > 關閉電源電源 > 關閉客體作業系統,或電源 > 暫停
    2. 在主機移轉後,將虛擬機器介面連結至適當的 NSX 區段,並開啟虛擬機器的電源。
    使用 vMotion 移動虛擬機器。 以滑鼠右鍵按一下虛擬機器,然後選取 [移轉]。依照提示將虛擬機器移至其他主機。請注意,在移轉期間,移轉協調器透過 vMotion 將虛擬機器移至受臨時規則保護的特定連接埠以保持安全性。對於手動 vMotion,不會將虛擬機移至這些連接埠,因此,可能存在安全性漏洞。若要手動透過 vMotion 進行移動,必須使用 vSphere API 移轉虛擬機器,其中,網路支援必須指向與 NSX 區段對應的 OpaqueNetwork 識別碼 (使用 NVDS 時),或者指向 VDS 連接埠群組識別碼 (使用 VDS 7 時)。在這兩種情況下,網路裝置的 externalId 必須設定為「VM_UUID:vNIC_ID」字串,其中 VM_UUID 是虛擬機器的執行個體 UUID,vNIC_ID 是虛擬機器的 vNIC 索引,其中第一個 vNIC 為 4000。
    使用冷移轉移動虛擬機器。
    1. 以滑鼠右鍵按一下虛擬機器,然後選取電源 > 關閉電源電源 > 關閉客體作業系統,或電源 > 暫停
    2. 以滑鼠右鍵按一下虛擬機器,然後選取 [移轉]。依照提示,將虛擬機器移至不同的主機,並將虛擬機器介面連線至適當的 NSX 區段。
    以下 Python 程式碼用於為虛擬機器中的每個 vNIC 指定外部識別碼,然後透過 vMotion 移動虛擬機器,以便這些 vNIC 使用正確的連接埠連線至識別碼為「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
  3. (選擇性) NSX 4.1.1 開始,當移轉結束時,您可以在按一下完成之前,先按一下取得移轉報告,以檢查某些物件是否已正確移轉。當報告就緒後,請按一下下載報告
    報告會包含以下資訊:
    • 移轉前與移轉後,NSX-V 中具有安全性標籤的虛擬機器。如果存在差異,會列出這些差異。
    • 移轉前與移轉後,NSX-V 中的安全群組。如果存在差異,會列出這些差異。

結果

使用就地移轉模式將主機移轉至 NSX 後,您可能會看到嚴重警示,並顯示訊息網路連線中斷。此警示會在 vSphere Distributed Switch (VDS) 6.5 或 6.7 移轉至 N-VDS 時發生,因為主機不再有任何實體 NIC 連線至其先前所連線的 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 中部署合作夥伴服務的執行個體。如需詳細指示,請參閱: