【虛擬化實戰】Cluster設計之二DRS

作者:範軍 (Frank Fan) 新浪微博:@frankfan7

本文介紹DRS設計的指導原則和考慮因素。


一 爲什麼使用DRS

負載均衡

我們希望在一個Cluster中的所有主機上的負荷是均衡的,不至於出現有的主機特別繁忙,而有的又很閒的情況。在一開始啓動VM的時候,DRS會自動選擇合適的主機來運行它。在運行中,DRS也會不斷衡量各種因素,來決定是否移植該VM.

質量控制:

資源池及其控制,比如share、limit、reservation等都要依賴DRS來支持。

策略實施:

如果你希望有些VM運行在同一臺主機,或者有些VM分別運行在不同的主機,,可以通過DRSAffinity/Non-Affinity 可以實現

維護管理

在主機進入維護模式後,DRS自動移植VM到其他可用的主機。


基本設計原則

不要過度設置Affinity/Anti-Affinity Rule, 可能會很大得制約DRS可以分配的主機資源。

Cluster內主機數目較多時,考慮採用Affinity Rule僅允許vCenter運行在一個或幾個指定的主機上。這樣在vCenter宕機時,可以很容易在特定的主機上的找到它。否則vCenter有可能運行在任何一臺主機上。另外一個辦法是,無需指定vCenter運行的主機,但是指定存儲vCenter的DataStore。在vCenter宕機後可以隨機在任何一臺主機上註冊該vCenter並啓動。

根據VM的目前和近期需要來設置vCPU和內存的初始值。不要過度爲VM分配資源,如果Configured Size大大超過實際的需要,可能DRS要很費事的把負載均衡到各個主機上。

儘量保證有足夠的帶寬供vMotion使用,避免vMotion所需的時間過長


考慮因素

什麼情況下DRS被激活?

缺省情況每300秒,DRS被激活。這個值可能更改爲60秒-3600秒之間。不建議更改這個設置。下面的情況會讓DRS來計算是否需要移植VM

當主機加入Cluster或者主機進入維護模式

當虛擬機從Powered-on切換到Powered-off

資源池的設置改動

VM移入或移出資源池


影響DRS的決定因素

DRS有一套複雜的方法,先考慮各項限制條件,然後來比較vMotion之後的好處和可能帶來的移植成本及風險,最後再作出決定。

限制條件

比如某主機進入維護模式,Affinity/anti-affinity Rule等

vMotion的成本

vMotion需要CPU和內存來支持,有可能會對VM性能有負面影響。vMotion如果不能獲得該VM上每個Core30%的資源,可能執行的速度會很慢。

儘量避免必要的vMotion。對於響應時間特別敏感的VM,以及使用vFlashCache的VM,DRS在作vMotion決定的時候會相對保守,儘量避免vMotion

好處

VM移植後所釋放的資源可供源主機使用,同時因爲目標主機資源更充足,VM的性能可能會提高。整個Cluster的負載會更均衡得分配給所有主機。


DRS Migration Threshold

可以調整slide bar來調整DRS aggressive的程度。Aggressive的程度越高,對各個主機負載均衡的程度更敏感,更傾向於啓動DRS來移植VM

如果調整Threshold之後,你仍然不滿意結果的話,考慮條整下面的參數。

如果你認爲DRS的移植VM的頻率太頻繁,可以增加PercentIdleMBInMemDemand的值到100%。初始值是25%

另外,DRS算法的設計原則是滿足VM的性能需要,而不是在主機之間均衡VM的個數。如果你不希望在一臺主機上運行過多的VM,考慮設置LimitVMsPerESXHost


Affinity/Anti-affinity Rule

設置Rule的原因可能有:

我們往往採用多個VM來實現某些關鍵應用。爲了避免由於主機宕機產生的單點故障,儘量採用Anti-affinityRule在不同的主機上運行這些VM

軟件許可的要求

性能優化的要求

比如需要頻繁通訊的VM,可以考慮在同一臺主機上運行

Stretch Cluster.不希望VM異地訪問存儲,從而造成延時和性能下降。詳細分析見【虛擬化實戰】容災設計之三Stretched Cluster

Should(not) run on: DRS儘可能會滿足設定條件,但必要時也會突破規則限制。

Must(not) run on: 該設定條件是強制性的,是必須要遵循的。設置強制性條件時要慎重,過多的條件限制可能很大制約DRS可以分配的主機資源。


Automation Level

設置爲Disabled可能會後期的維護有一定的影響,但DRS仍然會提供移植的建議,供用戶來考慮。而且用戶完全可以在開始的時候決定哪臺主機運行哪些VM。

設置爲Fully Automated可以最大化的保證各個主機負載的均衡。


參考:

VMware vSphere 5.1 ClusteringDeepdive by Duncan Epping

VMwareDistributed Resource Management: Design, Implementation and Lessons Learned


VMworld2013 Session:Performance and Capacity Management of DRSClusters

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章