若要使用 vMotion 移轉虛擬機器,虛擬機器必須滿足特定網路、磁碟、CPU、USB 及其他裝置的需求。

當您使用 vSphere vMotion 時,下列虛擬機器條件和限制適用:

  • 來源和目的地管理網路 IP 位址家族必須相符。您不能將虛擬機器從使用 IPv4 位址登錄到 vCenter Server 的主機,移轉到使用 IPv6 位址登錄的主機。
  • 若要移轉具有大型 vGPU 設定檔的虛擬機器,將 1 GbE 網路介面卡用於 vSphere vMotion 網路可能會導致移轉失敗。請將 10 GbE 網路介面卡用於 vSphere vMotion 網路。
  • 如果已啟用虛擬 CPU 效能計數器,則可以將虛擬機器只移轉到具有相容 CPU 效能計數器的主機。
  • 可以移轉啟用了 3D 圖形的虛擬機器。如果 3D 轉譯器設定為 [自動],虛擬機器會使用目的地主機上顯示的圖形轉譯器。轉譯器可以是主機 CPU 或 GPU 圖形卡。若要使用設定為 [硬體] 的 3D 轉譯器移轉虛擬機器,目的地主機必須具有 GPU 圖形卡。
  • 從 vSphere 6.7 Update 1 及更新版本開始,vSphere vMotion 支援具有 vGPU 的虛擬機器。
  • vSphere DRS 支援初始放置執行 vSphere 6.7 Update 1 或更新版本的 vGPU 虛擬機器,但不支援負載平衡。
  • 您可使用連線到主機上實體 USB 裝置的 USB 裝置移轉虛擬機器。您必須為 vSphere vMotion 啟用裝置。
  • 如果虛擬機器使用目的地主機上無法存取的裝置所支援的虛擬裝置,則不能運用 vSphere vMotion 進行移轉,來移轉該虛擬機器。例如,您不能使用由來源主機上實體 CD 光碟機支援的 CD 光碟機移轉虛擬機器。在移轉虛擬機器之前,要中斷與這些裝置的連線。
  • 如果虛擬機器使用用戶端電腦上裝置所支援的虛擬裝置,則不能運用 vSphere vMotion 進行移轉,來移轉該虛擬機器。在移轉虛擬機器之前,要中斷與這些裝置的連線。

使用 vMotion 來移轉 vGPU 虛擬機器

您可以使用 vMotion 來執行 由 NVIDIA vGPU 支援的虛擬機器的即時移轉,而不會導致資料遺失。

若要為 vGPU 虛擬機器啟用 vMotion,需要將 vgpu.hotmigrate.enabled 進階設定設為 true。如需有關如何設定 vCenter Server 進階設定的詳細資訊,請參閱 vCenter Server 組態說明文件中的〈設定進階設定〉

在 vSphere 6.7 Update 1 和 vSphere 6.7 Update 2 中,當您使用 vMotion 移轉 vGPU 虛擬機器並且 vMotion 關閉時間超過 100 秒時,對於框架緩衝區大小為 24 GB 或以上的 vGPU 設定檔,移轉程序可能會失敗。若要避免 vMotion 逾時,請升級至 vSphere 6.7 Update 3 或更新版本。

在關閉時間內,您無法存取虛擬機器、桌面或應用程式。一旦移轉完成,對虛擬機器的存取將恢復,且所有應用程式將從先前的狀態繼續。如需 vGPU 設定檔中的框架緩衝區大小的相關資訊,請參閱 NVIDIA 虛擬 GPU 說明文件

下表列出了預期的虛擬機器關閉時間 (即在 vMotion 期間使用者無法存取虛擬機器的時間) 以及預估最差狀況關閉時間。這些預期關閉時間是在 10 Gb 網路上搭配 NVIDIA Tesla V100 PCIe 32 GB GPU 進行測試:

表 1. vGPU 虛擬機器的 vMotion 預期關閉時間
使用的 vGPU 框架緩衝區 (GB) 虛擬機器關閉時間 (秒)
1 2
2 4
4 6
8 12
16 22
32 39
表 2. 預估最差狀況關閉時間 (秒)
vGPU 記憶體 虛擬機器記憶體 4 GB 虛擬機器記憶體 8 GB 虛擬機器記憶體 16 GB 虛擬機器記憶體 32 GB
1 GB 5 6 8 12
2 GB 7 9 11 15
4 GB 13 14 16 21
8 GB 24 25 28 32
16 GB 47 48 50 54
32 GB 91 92 95 99
備註: 考慮預期和預估的最差狀況關閉時間時,請記住以下幾點:
  • 設定的 vGPU 設定檔代表已使用的 vGPU 框架緩衝區的上限。在許多使用案例中,虛擬機器在任何指定時間使用的 vGPU 框架緩衝區記憶體數量低於設定檔中指派的 vGPU 記憶體。
  • 預期和預估的最差狀況關閉時間僅在移轉單一虛擬機器時有效。如果同時移轉多個虛擬機器,即對於 vSphere 手動修復程序,關閉時間將產生不利影響。
  • 上述預估值假設 CPU、記憶體、PCIe 和網路容量足以實現 10 Gbps 移轉輸送量。

DRS 支援初始放置執行 vSphere 6.7 Update 1 及更新版本的 vGPU 虛擬機器,但不支援負載平衡。

僅於使用且於相容的 NVIDIA GPU 裝置型號與 NVIDIA GRID 主機驅動程式版本 (與 NVIDIA 所定義和支援) 之間,才支援使用 VMware vSphere vMotion。如需相容性資訊,請參閱 NVIDIA 虛擬 GPU 使用者指南

若要檢查 NVIDIA vGPU 主機驅動程式、vSphere 和 Horizon 之間的相容性,請參閱 VMware 相容性矩陣圖

分頁檔位置相容性

視虛擬機器主機上執行的 ESXi 版本而定,虛擬機器分頁檔位置會在不同方面影響 vMotion 相容性。

可以將 ESXi6.7 或更新版本的主機設定為,將虛擬機器分頁檔與虛擬機器組態檔儲存在一起,或儲存在為該主機指定的本機分頁檔資料存放區中。

虛擬機器分頁檔位置對 vMotion 相容性的影響如下:

  • 如果是在執行 ESXi6.7 及更新版本的主機之間進行移轉,則會允許 vMotion 移轉以及移轉已暫停和已關閉電源的虛擬機器。
  • 在運用 vMotion 進行移轉期間,如果目的地主機上的分頁檔位置不同於來源主機上的分頁檔位置,則會將分頁檔複製到新位置。此活動會導致運用 vMotion 進行的移轉速度變慢。如果目的地主機無法存取指定的分頁檔位置,則會將分頁檔與虛擬機器組態檔儲存在一起。

如需設定分頁檔原則的相關資訊,請參閱《vSphere 資源管理》說明文件。

延遲敏感型應用程式的 vSphere vMotion 通知

從 vSphere 8.0 開始,可以在 vSphere vMotion 事件開始和完成時通知在虛擬機器的客體作業系統內執行的應用程式。此通知機制允許延遲敏感型應用程式準備甚至延遲 vSphere vMotion 作業。

對於延遲敏感型應用程式 (例如 VoIP 應用程式和高頻交易應用程式),通常會停用 vSphere vMotion 和 vSphere DRS。vSphere 8.0 引入了一種通知機制,使您可以通知應用程式即將進行 vSphere vMotion 以便應用程式採取必要的準備步驟。vSphere vMotion 會在產生啟動事件後暫停,並等待應用程式確認開始通知後再繼續。

備註:

為 vSphere vMotion 作業啟用通知機制可能會增加整體 vSphere vMotion 時間。

如何為 vSphere vMotion 通知設定虛擬機器

依預設,通知機制處於停用狀態。若要在虛擬機器上啟用通知機制,虛擬機器的硬體版本必須為 20,並且您必須設定以下進階虛擬機器組態選項。

  • 若要支援向虛擬機器內執行的應用程式傳送通知,請將 vmx.vmOpNotificationToApp.enabled 虛擬機器內容設定為 true

  • 若要指定應用程式必須為 vMotion 作業做好準備的最長時段 (以秒為單位),請使用 vmx.vmOpNotificationToApp.timeout 虛擬機器內容。當 vSphere vMotion 作業產生啟動事件時,vMotion 作業將暫停並等待應用程式確認後繼續。vSphere vMotion 等待指定的通知逾時。

    此內容為可選,預設不會設定此內容。您可以使用此內容為特定虛擬機器設定更嚴格的逾時。如果保留未設定狀態,將使用主機通知組態。

如何為 vSphere vMotion 通知設定主機

您可以使用 VmOpNotificationToApp.Timeout 進階主機組態設定來指定套用至主機上所有虛擬機器的通知逾時。使用 ConfigManager API 為此組態內容設定值。請參閱 vSphere Web Services API 參考說明文件。

預設通知逾時為 0。在這種情況下,將產生應用程式通知,但 vSphere vMotion 作業不會延遲。

如果同時在主機和該主機上執行的虛擬機器上設定了通知逾時,則使用較小的值。

如何為 vSphere vMotion 通知登錄應用程式

若要使應用程式能夠接收 vSphere vMotion 事件的通知,必須在主控該應用程式的虛擬機器上安裝 VMware Tools。使用 vSphere 8.0,每個虛擬機器只能登錄一個應用程式。要接收 vSphere vMotion 通知的應用程式可以使用以下客體 RPC 呼叫,並使用 vm-operation-notification.check-for-event 客體 RPC 呼叫定期 (例如,每 1 秒或 2 秒) 檢查新的 vMotion 事件。

命令

說明

vm-operation-notification.register

登錄應用程式以開始接收 vSphere vMotion 事件的通知。

vm-operation-notification.unregister

解除登錄應用程式以停止接收 vSphere vMotion 事件的通知。

vm-operation-notification.list

擷取有關在主機上的虛擬機器中執行的已登錄應用程式的資訊。

vm-operation-notification.check-for-event

擷取有關呼叫時登錄的 vSphere vMotion 事件的資訊。

vm-operation-notification.ack-event

確認 vSphere vMotion 啟動事件。