將 Edge 服務閘道虛擬機器移轉至 NSX Edge 節點並確認路由和服務均正常運作後,您可以將 NSX-V 主機移轉至 NSX 主機傳輸節點。
您可以設定多個關於主機移轉的設定,包含移轉順序及啟用主機。請務必瞭解這些設定的效果。如需詳細資訊,請參閱設定 NSX-V 主機移轉。如果您使用分散式防火牆或 vSphere Distributed Switch 7.0 或更新版本,則更有必要瞭解主機移轉設定。
如需有關主機移轉期間所發生情況的詳細資訊,請參閱在端對端移轉中,於執行主機移轉期間所做的變更。
如果
NSX-V 環境中的安全性原則針對 Guest Introspection 和/或網路自我檢查使用合作夥伴服務,請選擇主機移轉模式,如下表所示。
合作夥伴服務 |
主機移轉模式 |
僅 Guest Introspection |
支援就地和維護模式。 |
僅網路自我檢查 |
支援維護模式。不過,建議使用自動維護模式。 不支援就地模式。 |
Guest Introspection 和網路自我檢查 |
支援維護模式。 不支援就地模式。 |
重要: 在移轉 VMware 合作夥伴
NSX-V 工作負載上執行的服務之前,請先向其諮詢。在進行移轉之前,請向合作夥伴洽詢其服務是否支援移轉至
NSX 並尋求其意見。合作夥伴將使用自己的準則以將其服務移轉至
NSX。
注意: 主機移轉應該在與 Edge 移轉相同的維護時段完成。
您必須先停用 IPFIX 並重新開機 ESXi 主機,然後再移轉這些主機。
如果 NSX-V 環境中的合作夥伴服務提供 Guest Introspection 和/或網路自我檢查服務,請遵循本主題中的程序來逐一移轉叢集。將所有主機叢集移轉至 NSX 後,請在每個 NSX 叢集中執行以主機為基礎的服務部署。
如果 NSX-V 環境中的合作夥伴服務僅提供網路自我檢查服務,請使用移轉使用網路自我檢查服務的主機中所述的主機移轉方法。
必要條件
- 確認 Edge 移轉已完成,並且所有路由和服務皆正常運作。
- 在 VMware vCenter UI 中,移至主機和叢集頁面,並確認所有 ESXi 主機都處於運作狀態。解決主機的任何問題,包括已中斷連線的狀態。若要進入及結束維護模式,不得有擱置中的重新開機或擱置中的工作。
程序
- 在移轉主機頁面上,按一下開始。
如果您針對所有主機群組選取就地或自動維護移轉模式,主機移轉隨即啟動。請注意,在自動維護模式下,移轉協調器不會重新設定已關閉電源的虛擬機器。移轉之後,您需要先手動設定這些虛擬機器,然後再開啟這些虛擬機器的電源。
- 如果您為任何主機群組選取了手動維護移轉模式,則必須為每個虛擬機器完成下列其中一項工作,讓主機可以進入維護模式。
選項 |
動作 |
關閉虛擬機器電源或暫停虛擬機器。 |
- 以滑鼠右鍵按一下虛擬機器,然後選取、,或。
- 在主機移轉後,將虛擬機器介面連結至適當的 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。 |
使用冷移轉移動虛擬機器。 |
- 以滑鼠右鍵按一下虛擬機器,然後選取、,或。
- 以滑鼠右鍵按一下虛擬機器,然後選取 [移轉]。依照提示,將虛擬機器移至不同的主機,並將虛擬機器介面連線至適當的 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。
- (選擇性) 從 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 中部署合作夥伴服務的執行個體。如需詳細指示,請參閱: