虛擬化實(shí)戰(zhàn):Cluster設(shè)計(jì)之二DRS
一、為什么使用DRS
負(fù)載均衡
我們希望在一個(gè)Cluster中的所有主機(jī)上的負(fù)荷是均衡的,不至于出現(xiàn)有的主機(jī)特別繁忙,而有的又很閑的情況。在一開(kāi)始啟動(dòng)VM的時(shí)候,DRS會(huì)自動(dòng)選擇合適的主機(jī)來(lái)運(yùn)行它。在運(yùn)行中,DRS也會(huì)不斷衡量各種因素,來(lái)決定是否移植該VM.
質(zhì)量控制:
資源池及其控制,比如share、limit、reservation等都要依賴DRS來(lái)支持。
策略實(shí)施:
如果你希望有些VM運(yùn)行在同一臺(tái)主機(jī),或者有些VM分別運(yùn)行在不同的主機(jī),,可以通過(guò)DRSAffinity/Non-Affinity 可以實(shí)現(xiàn)
維護(hù)管理:
在主機(jī)進(jìn)入維護(hù)模式后,DRS自動(dòng)移植VM到其他可用的主機(jī)。
二、基本設(shè)計(jì)原則
不要過(guò)度設(shè)置Affinity/Anti-Affinity Rule, 可能會(huì)很大得制約DRS可以分配的主機(jī)資源。
在Cluster內(nèi)主機(jī)數(shù)目較多時(shí),考慮采用Affinity Rule僅允許vCenter運(yùn)行在一個(gè)或幾個(gè)指定的主機(jī)上。這樣在vCenter宕機(jī)時(shí),可以很容易在特定的主機(jī)上的找到它。否則vCenter有可能運(yùn)行在任何一臺(tái)主機(jī)上。另外一個(gè)辦法是,無(wú)需指定vCenter運(yùn)行的主機(jī),但是指定存儲(chǔ)vCenter的DataStore。在vCenter宕機(jī)后可以隨機(jī)在任何一臺(tái)主機(jī)上注冊(cè)該vCenter并啟動(dòng)。
根據(jù)VM的目前和近期需要來(lái)設(shè)置vCPU和內(nèi)存的初始值。不要過(guò)度為VM分配資源,如果Configured Size大大超過(guò)實(shí)際的需要,可能DRS要很費(fèi)事的把負(fù)載均衡到各個(gè)主機(jī)上。
盡量保證有足夠的帶寬供vMotion使用,避免vMotion所需的時(shí)間過(guò)長(zhǎng)
三、考慮因素
什么情況下DRS被激活?
缺省情況每300秒,DRS被激活。這個(gè)值可能更改為60秒-3600秒之間。不建議更改這個(gè)設(shè)置。下面的情況會(huì)讓DRS來(lái)計(jì)算是否需要移植VM
當(dāng)主機(jī)加入Cluster或者主機(jī)進(jìn)入維護(hù)模式
當(dāng)虛擬機(jī)從Powered-on切換到Powered-off
資源池的設(shè)置改動(dòng)
VM移入或移出資源池
影響DRS的決定因素
DRS有一套復(fù)雜的方法,先考慮各項(xiàng)限制條件,然后來(lái)比較vMotion之后的好處和可能帶來(lái)的移植成本及風(fēng)險(xiǎn),***再作出決定。
限制條件
比如某主機(jī)進(jìn)入維護(hù)模式,Affinity/anti-affinity Rule等
vMotion的成本
vMotion需要CPU和內(nèi)存來(lái)支持,有可能會(huì)對(duì)VM性能有負(fù)面影響。vMotion如果不能獲得該VM上每個(gè)Core30%的資源,可能執(zhí)行的速度會(huì)很慢。
盡量避免必要的vMotion。對(duì)于響應(yīng)時(shí)間特別敏感的VM,以及使用vFlashCache的VM,DRS在作vMotion決定的時(shí)候會(huì)相對(duì)保守,盡量避免vMotion
好處
VM移植后所釋放的資源可供源主機(jī)使用,同時(shí)因?yàn)槟繕?biāo)主機(jī)資源更充足,VM的性能可能會(huì)提高。整個(gè)Cluster的負(fù)載會(huì)更均衡得分配給所有主機(jī)。
DRS Migration Threshold
可以調(diào)整slide bar來(lái)調(diào)整DRS aggressive的程度。Aggressive的程度越高,對(duì)各個(gè)主機(jī)負(fù)載均衡的程度更敏感,更傾向于啟動(dòng)DRS來(lái)移植VM
如果調(diào)整Threshold之后,你仍然不滿意結(jié)果的話,考慮條整下面的參數(shù)。
如果你認(rèn)為DRS的移植VM的頻率太頻繁,可以增加PercentIdleMBInMemDemand的值到100%。初始值是25%
另外,DRS算法的設(shè)計(jì)原則是滿足VM的性能需要,而不是在主機(jī)之間均衡VM的個(gè)數(shù)。如果你不希望在一臺(tái)主機(jī)上運(yùn)行過(guò)多的VM,考慮設(shè)置LimitVMsPerESXHost
Affinity/Anti-affinity Rule
設(shè)置Rule的原因可能有:
我們往往采用多個(gè)VM來(lái)實(shí)現(xiàn)某些關(guān)鍵應(yīng)用。為了避免由于主機(jī)宕機(jī)產(chǎn)生的單點(diǎn)故障,盡量采用Anti-affinityRule在不同的主機(jī)上運(yùn)行這些VM
軟件許可的要求
性能優(yōu)化的要求
比如需要頻繁通訊的VM,可以考慮在同一臺(tái)主機(jī)上運(yùn)行
Stretch Cluster.不希望VM異地訪問(wèn)存儲(chǔ),從而造成延時(shí)和性能下降。詳細(xì)分析見(jiàn)【虛擬化實(shí)戰(zhàn)】容災(zāi)設(shè)計(jì)之三Stretched Cluster
Should(not) run on: DRS盡可能會(huì)滿足設(shè)定條件,但必要時(shí)也會(huì)突破規(guī)則限制。
Must(not) run on: 該設(shè)定條件是強(qiáng)制性的,是必須要遵循的。設(shè)置強(qiáng)制性條件時(shí)要慎重,過(guò)多的條件限制可能很大制約DRS可以分配的主機(jī)資源。
Automation Level
設(shè)置為Disabled可能會(huì)后期的維護(hù)有一定的影響,但DRS仍然會(huì)提供移植的建議,供用戶來(lái)考慮。而且用戶完全可以在開(kāi)始的時(shí)候決定哪臺(tái)主機(jī)運(yùn)行哪些VM。
設(shè)置為Fully Automated可以***化的保證各個(gè)主機(jī)負(fù)載的均衡。
原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、作者信息和本聲明。否則將追究法律責(zé)任。http://frankfan.blog.51cto.com/6402282/1327737