適用於 2 個以上來賓的 VMware vSphere DRS 關聯性規則
我收到了在執行 VMware vSphere 4.1 的 VMware HA/DRS 集群中的一組虛擬機上添加不相關性/反相關性規則的請求。
客戶端有四台主機,並希望在主機發生故障時阻止某些虛擬機在同一主機上執行。
通常,這種類型的請求很簡單,您可以簡單地避免在同一台機器上執行app01和app02 ……上游有一個單獨的應用程序負載均衡器。
但是,此請求要求app01、app02、app03、app04、app05 和 app06在不同的主機上執行。
六台虛擬機,四台主機。我們的第一響應團隊將app01-app06添加到單個*“單獨的虛擬機”* DRS 規則中。這似乎不正確,因為在維護模式或升級管理器修復中結果可能是不可預測的。
就像是:
對四台主機這樣做有什麼影響?這會達到預期的目標嗎?缺點?
如果這 6 個 VM 已經啟動,則 DRS 將嘗試盡可能多地將它們分開。然後它會顯示一個 DRS 故障,它無法修復反關聯性規則違規,但不會關閉它們中的任何一個:
如果 6 個中的 4 個已打開並在不同的主機上執行,並且您嘗試打開其餘 2 個中的一個,則 DRS 規則將拒絕打開它並給您以下錯誤:
明顯的缺點是您不會全部執行 6 個。可以想像,如果您在創建規則之前讓它們執行,那麼它們將繼續執行,但幾乎不可避免的是它們最終會由於某種原因在某個時候關閉,並且由於以下原因而無法再次啟動規則。根據擷取它們已關閉,因此他們將無法打開所有 6 個電源(實際上擷取規則中有 8 個,因此 4 個將保持關閉)。
另一種解決方案(未經測試)將允許所有虛擬機開機,但您仍將在 2 台主機上執行至少 2 台虛擬機,鑑於資源,無法滿足客戶端的不可能需求:
您可以創建 2 個“單獨的 VM”DRS 規則,將 VM 1-4 放在一個中,將 5-6 放在另一個中。這將允許所有 6 個都打開電源,但是失去或關閉主機進行維護也意味著您最多可以執行 5 個 VM,這仍然比您可以在原始解決方案中執行的 4 個更好,即使所有主機都執行。