虛擬化技術(shù)已經(jīng)給數(shù)據(jù)中心帶來顛覆性變革,但極力壓縮服務(wù)器虛擬化主機數(shù)量、過度提高虛擬機密度的做法并非最佳選擇。
在考慮虛擬化環(huán)境時,時代特色造就了一種新趨勢,即將極為豐富的資源賦予一套單獨的物理服務(wù)器、并以此為基礎(chǔ)支持海量虛擬機系統(tǒng)。然而需要注意的是,硬件故障這一古老難題目前仍無法徹底扼制,將大量業(yè)務(wù)系統(tǒng)交給同一套設(shè)備負(fù)責(zé)往往令停機事件的影響范圍急劇擴張、最終徹底粉碎我們那樂觀但卻不切實際的理論規(guī)劃。
我們并不是說為一臺物理服務(wù)器配備128GB、256GB甚至是1TB的內(nèi)存,16到48個CPU核心以及一系列10G接口有何不妥。這樣級別的強大服務(wù)器能夠很輕松地同時運行幾十套甚至上百套(取決于具體工作負(fù)載)虛擬機系統(tǒng)。在它的幫助下,我們完全可以把2004年需要三臺1U物理服務(wù)器機架才能搞定的處理任務(wù)交給如今的一臺1U服務(wù)器,而這確確實實是一場了不起的計算資源革命。但與此同時,這樣的趨勢也相當(dāng)危險。由于系統(tǒng)密度的不斷走高,服務(wù)器一旦在特定情況下發(fā)生故障,那么其產(chǎn)生的嚴(yán)重后果遠(yuǎn)大于九年前一臺1U服務(wù)器所帶來的影響。然而出于某種原因,這類風(fēng)險一直沒能在虛擬化設(shè)施創(chuàng)建工作中受到足夠重視。
事實上,很多小型或中型企業(yè)都完全可以在一臺現(xiàn)代服務(wù)器上運行所有業(yè)務(wù)任務(wù)并實施服務(wù)器操作。只要業(yè)務(wù)虛擬機的總數(shù)量在四十到五十之間,那么單服務(wù)器支持是完全可行的。大多數(shù)企業(yè)會額外添加一臺服務(wù)器用于負(fù)載平衡及故障轉(zhuǎn)移,因此我們相當(dāng)于是在四塊CPU、任意數(shù)量的內(nèi)存以及四套供電設(shè)置下運行整個業(yè)務(wù)體系。這無異于回到了大型機時代,只不過基礎(chǔ)設(shè)施擁有RAS(即可靠性、可用性及可維護性)特性。內(nèi)部系統(tǒng)故障、電源問題、系統(tǒng)升級等狀況都可能導(dǎo)致服務(wù)器無法運作,如此一來我們將不得不重新使用單一設(shè)備來滿足幾十套虛擬機系統(tǒng)的資源需求。
從積極的方面來看,這種情況并不多見;但從消極的角度分析,這種情況一旦出現(xiàn)很可能造成災(zāi)難性的后果。最近一段時間,我發(fā)現(xiàn)很多技術(shù)團隊都喜歡把盡可能多的虛擬機系統(tǒng)塞進(jìn)盡可能少的物理服務(wù)器當(dāng)中,然后心滿意足地“打完收工”。其實更理想的解決方案在于降低單臺服務(wù)器中的資源分配,并將更多物理系統(tǒng)加入到整體設(shè)施當(dāng)中。
誠然,授權(quán)許可成本算是造成這種現(xiàn)狀的重要原因。由于很多虛擬化框架許可都會按CPU及內(nèi)存數(shù)量來計費,因此部署八套低配置服務(wù)器所帶來的許可成本要遠(yuǎn)高于部署四套高配置服務(wù)器。然而極力壓榨物理平臺資源的做法必然導(dǎo)致我們失去了處理停機及物理服務(wù)器故障的能力。我們不會利用RAID 1來部署主線存儲機制,但很多雙服務(wù)器方案其實在本質(zhì)上并無不同,都是在盡量壓縮設(shè)備數(shù)量。
我們經(jīng)常聽到廠商宣揚現(xiàn)代服務(wù)器硬件擁有如何可觀的可靠性及資源彈性,冗余系統(tǒng)如何普及到從供電裝置到虛擬機管理程序的方方面面,我們又可以如何通過減少設(shè)備數(shù)量、提高設(shè)備配置來降低許可費用、能源消耗以及冷卻成本。但無論大家的基礎(chǔ)設(shè)施硬件“彈性”有多強,故障都是必定會出現(xiàn)的,這只是時間問題。
最典型的例子就是文件系統(tǒng)會在特定LUN鎖定服務(wù)器中的I/O子系統(tǒng)時出現(xiàn)故障,這時其它物理服務(wù)器中的虛擬服務(wù)器也可能會受到影響。這些受影響的服務(wù)器可能至少需要重啟或者從備份中恢復(fù)丟失或受損的虛擬機系統(tǒng)。一旦其它某些設(shè)備也出現(xiàn)狀況,管理人員面臨的壓力會更大,因為整套部署設(shè)施都面臨著極大危險。然而隨著服務(wù)器數(shù)量的增加,危險系數(shù)也將隨之分散,并令壓力逐步減輕。
大家千萬不要認(rèn)為這是我故意捏造出來的極端情況——就在幾周之前,我就真正面對過這樣的情況。幸運的是整個集群擁有八臺服務(wù)器,修復(fù)問題的同時我還不得不為三臺服務(wù)器進(jìn)行了備份。不必將幾十套虛擬機的損失一一分類有效降低了找出故障根本原因需要投入的資源。
如果大家發(fā)現(xiàn)自己更偏向于使用少數(shù)大型設(shè)備而非多臺小型設(shè)備,請務(wù)必記得,有時候少未必就好。盡管較低服務(wù)器數(shù)量能夠更輕松地支持起虛擬化負(fù)載,但卻很可能給未來的修復(fù)及升級工作帶來潛在困擾。由于數(shù)量有限,我們將不得不費盡心思來收拾殘局。就我個人而言,無論何時都堅持認(rèn)為八臺小設(shè)備比三臺大設(shè)備更合適,因為在這幫小家伙的幫助下,我的每個夜晚都能過得更踏實、更安心。