虛擬機(jī)負(fù)載管理最佳實(shí)踐——資源分配
虛擬機(jī)(VM)與其對應(yīng)的虛擬化管理平臺提供商長期以來都致力于降低使用難度:僅需要五六下鼠標(biāo)點(diǎn)擊就可以創(chuàng)建一臺虛擬機(jī)。對用戶來說,建立虛擬機(jī)變得更加簡單。用戶可以通過VMware、XenServer、Hyper-V或其他虛擬化管理平臺,點(diǎn)擊“新虛擬機(jī)”并根據(jù)系統(tǒng)提示便可以完成新虛擬機(jī)創(chuàng)建。
然而,這種簡單創(chuàng)建機(jī)制帶來了新的不確定性——虛擬機(jī)資源是否滿足業(yè)務(wù)需求。很可能出現(xiàn)虛擬機(jī)被分配了過多資源的情況。管理員必須設(shè)置指標(biāo)并了解虛擬機(jī)上運(yùn)行的業(yè)務(wù),以便有效管理資源負(fù)載。簡單按下“NEXT”按鈕很可能使虛擬機(jī)資源與負(fù)載管理出現(xiàn)問題。
設(shè)定有效的虛擬工作負(fù)載管理指標(biāo)
在創(chuàng)建一個(gè)負(fù)載之前,優(yōu)秀的虛擬化工程師必須設(shè)定指標(biāo),確定新系統(tǒng)上將運(yùn)行何種服務(wù),該服務(wù)需要分配怎樣的硬件資源才可以穩(wěn)定運(yùn)行。有許多方法來達(dá)成此目標(biāo)。服務(wù)器負(fù)載包含許多負(fù)載數(shù)據(jù)項(xiàng),但其中一些是管理員們應(yīng)該優(yōu)先考慮的。
通過用戶數(shù)量可以預(yù)知一個(gè)負(fù)載今后運(yùn)行的情況與大致性能需求。服務(wù)器(虛擬機(jī))資源需求變化范圍存在較大差異——可能有50個(gè)用戶連接,也可能有5000以上用戶連接。對于Exchange Server來說,我們可以利用工具來評估基線,以此作為分配資源的參考依據(jù)。資源分配不足可能導(dǎo)致性能下降,而分配過度則會造成浪費(fèi)。通過獲知當(dāng)前用戶數(shù)與一年內(nèi)可能的用戶增長數(shù)量,管理員便可以設(shè)置虛擬機(jī)以滿足當(dāng)前用戶使用需求,并保證其在用戶數(shù)量增長后也有足夠資源可用。
大部分部署在虛擬化環(huán)境中的服務(wù)、軟件與其他產(chǎn)品一般都有銷售商或產(chǎn)商支持。這些產(chǎn)商通常會提供一些基線設(shè)置數(shù)值,用于說明服務(wù)器該如何配置資源才能有效運(yùn)行,可以幫助我們遠(yuǎn)離建立虛擬機(jī)時(shí)面對的猜謎游戲,提高服務(wù)器所需資源評估的有效與可靠性。
資源分配與負(fù)載管理監(jiān)控
存儲很容易用完,經(jīng)驗(yàn)豐富的虛擬化專家會告訴你資源其實(shí)十分有限。即使是擁有很多計(jì)算資源的服務(wù)器,也可能被僅使用其中5%性能資源的虛擬機(jī)所耗盡。
“過度分配是工程師們需要經(jīng)常面對的另外一個(gè)問題。了解運(yùn)行服務(wù)所需負(fù)載,可以對將要使用的資源進(jìn)行預(yù)估。”MTM Technologies Inc.的系統(tǒng)顧問Timothy O'Brien表示:“用于顯示內(nèi)部網(wǎng)頁的簡單Web服務(wù)不需要用到多核CPU或大量內(nèi)存??墒?,運(yùn)行一個(gè)有大量用戶同時(shí)連接的SQL服務(wù)器就需要更多資源了。”
進(jìn)行預(yù)先規(guī)劃可以降低資源分配難度。了解虛擬機(jī)上將運(yùn)行的服務(wù),對擴(kuò)展進(jìn)行規(guī)劃,以此建立一個(gè)擁有足夠資源,可以滿足需求的負(fù)載。因?yàn)閹缀跛胸?fù)載都會產(chǎn)生變化,工程師必須做好調(diào)整虛擬化環(huán)境的準(zhǔn)備。
“虛擬機(jī)并不是簡單設(shè)置好就結(jié)束了。”O'Brien補(bǔ)充:“在部署完成后,監(jiān)控與檢查該負(fù)載實(shí)際運(yùn)行情況十分重要。隨著資源與用戶數(shù)量變化,虛擬機(jī)上的負(fù)載同樣會產(chǎn)生變化。”
以下是了解資源分配的關(guān)鍵點(diǎn):
◇ 靈活對待資源分配。調(diào)整虛擬機(jī)的大小十分正常。一些資源可以通過設(shè)置在不停機(jī)情況下分配給服務(wù)器。
◇ 監(jiān)控虛擬機(jī)。了解虛擬機(jī)在某個(gè)時(shí)刻所使用的資源。負(fù)載管理包括了監(jiān)控負(fù)載超時(shí)和獲取需求峰值,這樣可以讓工程師在需要時(shí)更有效分配資源。
◇ 了解應(yīng)用程序。永遠(yuǎn)不要認(rèn)為一個(gè)應(yīng)用會以同樣方式運(yùn)行。隨著服務(wù)擴(kuò)展包、用戶數(shù)量增加與外部環(huán)境變化,應(yīng)用程序可能會需要更多的內(nèi)存、存儲甚至處理器。
理解和使用預(yù)定義虛擬機(jī)
使用預(yù)定義的虛擬機(jī)設(shè)置并沒有錯(cuò)。在某些應(yīng)用環(huán)境下,采用簡易設(shè)置是十分值得提倡的。運(yùn)行簡單服務(wù)對虛擬機(jī)資源需求極少。大部分預(yù)設(shè)虛擬機(jī)被分配了單處理器,512M內(nèi)存、單網(wǎng)卡與小容量硬盤。許多應(yīng)用開發(fā)或隔離測試環(huán)境通常而更傾向于采用最低配置,以便獲得更準(zhǔn)確的結(jié)果。在這種情況下,快速創(chuàng)建虛擬機(jī)可以節(jié)省時(shí)間,協(xié)助快速建立測試環(huán)境并節(jié)約負(fù)載所需分配的資源。
資源分配最佳實(shí)踐
規(guī)劃與擬定虛擬環(huán)境,可幫助虛擬化工程師更為精確地為所需創(chuàng)建虛擬機(jī)分配資源。通常資源都是在負(fù)載不必要的情況下分配殆盡,在建立新負(fù)載前,評估其資源需求,可以避免資源過度分配問題,降低后期維護(hù)與擴(kuò)展壓力。
當(dāng)管理員面對是否需要擴(kuò)展虛擬化環(huán)境的問題時(shí),諸如購買額外的存儲區(qū)域網(wǎng)絡(luò)或給虛擬機(jī)分配更多內(nèi)存令人頭疼。通常我們可以通過重新評估現(xiàn)有負(fù)載對資源使用情況作為一定的參考。在進(jìn)行此操作時(shí),一些負(fù)載管理最佳實(shí)踐可供學(xué)習(xí):
◇ 任何好的部署計(jì)劃都需要經(jīng)過建立與測試環(huán)節(jié)。這個(gè)環(huán)節(jié)中,你可以切實(shí)的調(diào)整虛擬機(jī)并獲知資源分配的最合理方法。
◇ 研究虛擬機(jī)將如何發(fā)展。了解應(yīng)用或數(shù)據(jù)庫運(yùn)行所需的資源,避免過度分配或分配不足。對資源密集型負(fù)載包括Exchange、SQL與其他數(shù)據(jù)庫等后端應(yīng)用。輕型工作負(fù)載包括授權(quán)服務(wù)器、單服務(wù)應(yīng)用或簡單Web應(yīng)用服務(wù)器。
◇ 做好隨時(shí)調(diào)整資源環(huán)境的準(zhǔn)備。做好準(zhǔn)備,了解可用資源以便于負(fù)載分配改進(jìn),改善對變更的響應(yīng)與速度,建立更加平衡與穩(wěn)定的虛擬化架構(gòu)。
【編輯推薦】