如果在任何 DFW 規則中設定了 [套用至] (這表示該 [套用至] 未設為 [DFW]),請使用此程序。

備註: 對於 NSX-VNSX 的移轉,請參閱知識庫文章 https://kb.vmware.com/s/article/56991 以取得詳細資訊。

對於 NSXNSX-V 的移轉,可能無法將工作負載虛擬機器移轉回 NSX-V,因為 NSX 中的分散式防火牆篩選器優先順序始終高於 NSX-V 中的分散式防火牆篩選器。因應措施是在執行 vMotion 動作之前,將工作負載虛擬機器放置於 NSX 排除清單中。

必要條件

  • 請確定:
    • vSphere vMotion 會在此移轉所涉及叢集中每台主機的 VMkernel 介面卡上啟用。如需在 VMkernel 介面卡上啟用 vMotion 的詳細步驟,請參閱 vSphere 產品說明文件。
    • NSX 中的目的地主機具有足夠的資源,可接收已移轉的虛擬機器。
    • 來源主機與目的地主機皆處於運作狀態。解決主機的任何問題,包括已中斷連線的狀態。

如需 vMotion 的詳細資訊,請參閱vSphere產品說明文件中的運用 vMotion 進行移轉

程序

  1. 執行指令碼,為虛擬機器中的每個 vNIC 指定外部識別碼,並透過 vMotion 將虛擬機器移至正確的邏輯連接埠。
    移轉協調器已建立邏輯連接埠。下面的範例程式碼 (以及 github 中的指令碼) 會決定每個 vNIC 的 external-id,以便 vNIC 可以連線至所建立的邏輯連接埠。
    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

  2. 將安全性標籤和虛擬機器靜態成員資格套用至已移轉的虛擬機器。
    POST https://{nsxt-mgr-ip}/api/v1/migration/vmgroup?action=post_migrate
    具有 post_migrate 動作的 vmgroup API 端點會將 NSX-V 安全性標籤套用至 NSX 覆疊區段上已移轉的工作負載虛擬機器。

    如需此 API 要求本文的範例,請參閱 NSX 技術區域文章的隨即移轉程序區段。

  3. 完成基礎結構以完成移轉。
    POST https://{nsxt-mgr-ip}/api/v1/migration?action=finalize_infra
    此移轉 API 會刪除在移轉期間建立的任何暫存物件組態,並確保 NSX 的基礎結構處於初始狀態。例如,系統會從群組中移除臨時 IP 集合。

    此 POST API 沒有要求本文。

  4. 確認預期的組態項目已移轉至 NSX 環境。
    例如,請確認是否已成功移轉下列組態:
    • 使用者定義的分散式防火牆規則。
    • 所有群組物件,例如 IP 集合、群組、標籤等。
    • 有效成員會顯示在動態群組中。
    • 標籤會套用至已移轉的工作負載虛擬機器。
  5. (選擇性) NSX 4.1.1 開始,當移轉結束時,您可以在按一下完成之前,先按一下取得移轉報告,以檢查某些物件是否已正確移轉。當報告就緒後,請按一下下載報告
    報告會包含以下資訊:
    • 移轉前與移轉後,NSX-V 中具有安全性標籤的虛擬機器。如果存在差異,會列出這些差異。
    • 移轉前與移轉後,NSX-V 中的安全群組。如果存在差異,會列出這些差異。
  6. 移轉工作負載頁面上,按一下完成
    此時會出現對話方塊,以確認完成移轉。如果已完成移轉,系統會清除所有移轉詳細資料。無法再檢閱此移轉的設定。例如,在 解決組態頁面上輸入的內容。

下一步

在成功移轉工作負載虛擬機器和僅限 DFW 的組態並徹底加以驗證後,請移除第 2 層橋接器以釋放您用於橋接的 NSX Edge。