在已啟用 DRS 的叢集中,您可能會看到 DRS 僅針對叢集中的某些主機而起始的大量虛擬機器移轉。
DRS 會每分鐘掃描一次叢集中的主機,以作為負載平衡工作流程的一部分尋找可能的建議。結果取決於已開啟電源的虛擬機器與叢集中主機的相容性檢查結果。如果存在相容性限制,將虛擬機器的相容主機集縮小到僅限叢集中的特定主機,則 DRS 會嘗試透過將該虛擬機器移轉到其中一個相容主機來滿足這些限制。
這些限制通常來自兩個來源:叢集中的靜態使用者組態和執行階段狀態變更。本文重點介紹使用者可能無法預期的執行階段狀態變更。
執行階段狀態變更可能會影響已開啟電源的虛擬機器和主機之間的相容性,這些變更可能發生在以下某個方面。
vSphere High Availability
在已啟用 HA 的叢集中,所有主機的 HA 狀態應為狀況良好。如果主機在某個時間沒有狀況良好的 HA 狀態,它將在虛擬機器相容性檢查期間產生相容性故障。此類情況的一些範例包括:HA 代理程式無法連線、HA 代理程式已隔離、HA 代理程式已進行磁碟分割。如需詳細資訊,請參閱「對 vSphere HA 主機狀態進行疑難排解」。
這些狀態變更通常會在 vCenter Server 中伴隨以下事件。
「主機上的 vSphere HA 代理程式發生錯誤」
儲存區可存取性
如果虛擬機器無法存取其目前主機中的組態檔 (VMX 檔案)、虛擬磁碟 (VMDK) 或分頁檔,則相容性檢查將失敗,從而導致目前主機不相容。如果叢集中的其他主機仍可存取這些檔案,DRS 可能會嘗試將虛擬機器移轉到該主機。根據虛擬機器的 VMX 檔案在其目前主機中的可存取性,此類移轉的結果會有所不同。如果虛擬機器僅無法存取其 VMDK,而非無法存取 VMX 檔案,則移轉可能會成功。如果虛擬機器無法存取其 VMX 檔案,移轉可能會失敗。
網路可存取性
對於具有 NSX-T 的環境,NSX 元件狀態可能會在不同的時間在某些主機或所有主機上關閉。在 7.0u2 之前的 vCenter Server 版本中,這可能會導致虛擬機器和受影響主機的相容性檢查失敗。
解決方案
- 如果使用者計劃執行可能導致上述執行階段狀態變更的作業,則暫時將 DRS 設定為手動模式可避免意外移轉。或者,使用者也可以暫時將 DRS 進階選項VmsPerLBIteration 設定為 0。它會要求 DRS 在其負載平衡工作流程期間不掃描任何虛擬機器,因此沒有移轉建議。
- 自 vCenter 7.0 Update 1 起,DRS 引入了一個進階選項,容許已開啟電源的虛擬機器在其預先定義的期間 (CompatCheckTransientFailureTimeSeconds) 內與其目前主機不相容。使用者可以設定此選項以避免由於暫時性不相容而導致的意外移轉。
自 vCenter 7.0 Update 3 和 8.0 Update 1 起,也可以將此選項設定為 -1,由於虛擬機器與目前主機不相容,這不允許 DRS 將該虛擬機器移出。
自 vCenter 8.0 Update 3 起,此選項的預設值設定為 -1。
若要設定 DRS 進階選項,請從 vSphere Client 執行以下步驟:
- 在 DRS 叢集上按一下滑鼠右鍵,然後按一下
Settings > vSphere DRS > Edit > Advanced Options > Add
- 在 [選項] 欄中輸入選項名稱。
- 按一下 [值] 欄以輸入所需的值,然後按一下 [確定] 以使此設定生效。