周 波
服務(wù)器虛擬化(Server Virtualization)是最近國(guó)內(nèi)外研究的一個(gè)非常熱門的領(lǐng)域。在復(fù)雜的IT環(huán)境中,冗余的硬件設(shè)備使公司機(jī)房飽和,每一件新購(gòu)入的設(shè)備也會(huì)帶來(lái)額外的能源開(kāi)銷。將物理服務(wù)器轉(zhuǎn)化為虛擬服務(wù)器,是確保機(jī)房環(huán)境穩(wěn)定及IT開(kāi)銷在可控制范圍內(nèi)的行之有效的方法。
采用虛擬化技術(shù)后,可以動(dòng)態(tài)地開(kāi)啟或者關(guān)閉虛擬服務(wù)器,就像操作物理服務(wù)器那樣。在一臺(tái)物理服務(wù)器上運(yùn)行多個(gè)虛擬機(jī),可以高效地利用物理服務(wù)器的硬件資源,并對(duì)于可能的需求變化,做出快速的反應(yīng)。
據(jù)虛擬化管理企業(yè)Veeam公司在2011年7月發(fā)布的報(bào)告顯示[1],目前企業(yè)服務(wù)器虛擬化率僅有不到40%。調(diào)查了若干個(gè)國(guó)家的544家企業(yè),有92%的企業(yè)已經(jīng)開(kāi)始了虛擬化技術(shù)的應(yīng)用,但還是有大約60%的業(yè)務(wù)沒(méi)有實(shí)現(xiàn)虛擬化。
對(duì)于當(dāng)今而言,有3種基本的虛擬化技術(shù)[2]。
完全虛擬化模式使用的是宿主/客戶機(jī)結(jié)構(gòu)。管理核心被稱為hypervisor,是允許多個(gè)客戶系統(tǒng)來(lái)共享一臺(tái)物理主機(jī),允許每個(gè)客戶系統(tǒng)訪問(wèn)宿主主機(jī)的處理器、內(nèi)存和其他資源的程序。它在虛擬機(jī)與硬件之間創(chuàng)建一個(gè)抽象的層,客戶機(jī)(或稱虛擬機(jī))運(yùn)行于一個(gè)虛擬的硬件層。VMware和微軟的Virtual Server是使用完全虛擬模式的。完全虛擬化,如圖1所示:
圖1 完全虛擬化示意圖
并行虛擬模式也是基于宿主/客戶機(jī)結(jié)構(gòu)的,也使用hypervisor,如圖2所示:
圖2 并行虛擬化示意圖
在完全虛擬化中,hypervisor需要處理器資源去管理不同的虛擬機(jī)并且將它們互相隔離,所以無(wú)法使處理器以最高效率運(yùn)行。一種降低處理器需求的方法是對(duì)于與每個(gè)操作系統(tǒng)進(jìn)行修改,所以在并行虛擬化中,由hypervisor對(duì)客戶系統(tǒng)進(jìn)行修改,這個(gè)修改的過(guò)程成為移植(porting)。移植允許hypervisor謹(jǐn)慎的使用系統(tǒng)調(diào)用,使操作系統(tǒng)能夠意識(shí)到運(yùn)行于虛擬環(huán)境中,并且與hypervisor協(xié)作,從而使虛擬化更有效率地運(yùn)行。這種方法就是并行虛擬化。并行虛擬化技術(shù)的優(yōu)勢(shì)在于它的性能,以并行技術(shù)運(yùn)行的虛擬機(jī)的響應(yīng)速度接近于非虛擬機(jī)。Xen是一種基于開(kāi)源系統(tǒng)的并行虛擬化的技術(shù)。
操作系統(tǒng)層次虛擬化,它不是基于宿主/客戶機(jī)模式的,沒(méi)有hypervisor層。
與其他技術(shù)最明顯的區(qū)別是,所有的虛擬服務(wù)器必須運(yùn)行同一種操作系統(tǒng)(當(dāng)然,每個(gè)實(shí)例都有自己的應(yīng)用程序和賬戶)。這類技術(shù)在系統(tǒng)的靈活程度上有所欠缺,但帶來(lái)的優(yōu)勢(shì)則是性能上的優(yōu)化。因?yàn)榉植际郊軜?gòu)消除了層與層之間的系統(tǒng)調(diào)用,從而降低了CPU的開(kāi)銷。此外,相對(duì)于使用不同操作系統(tǒng)的虛擬機(jī),這類在所有虛擬服務(wù)器上使用單一的標(biāo)準(zhǔn)操作系統(tǒng)的結(jié)構(gòu)也便于管理。操作系統(tǒng)層次的虛擬化。Virtuozzo和Solaris Zones都是操作系統(tǒng)層次的,如圖3所示:
圖3 操作系統(tǒng)層次虛擬化示意圖
以上的3種虛擬化技術(shù),都是軟件層面上的。難道不能在硬件層面上實(shí)現(xiàn)更有效率的虛擬化技術(shù)嗎?
直到2007年,Intel和AMD才開(kāi)發(fā)出支持CPU層次虛擬化的處理器。通過(guò)硬件上支持虛擬化,使得用于hypervisor的CPU資源得以釋放,提高了虛擬技術(shù)的性能。
當(dāng)然,CPU層次的虛擬化技術(shù)并不是自適應(yīng)的,相關(guān)的虛擬化軟件必須被重新開(kāi)發(fā),以便支持。因?yàn)檫@種技術(shù)使得虛擬化技術(shù)的性能增長(zhǎng)不少,所有的虛擬化軟件都將以支持CPU層次的虛擬技術(shù)為目標(biāo)進(jìn)行開(kāi)發(fā)。
每一種虛擬化技術(shù)都有其優(yōu)勢(shì),如何發(fā)揮優(yōu)勢(shì),取決于采用的解決方案。例如,對(duì)于一組使用相同操作系統(tǒng)的服務(wù)器,采用操作系統(tǒng)層次的虛擬化技術(shù),就是一個(gè)好的選擇。
并行虛擬化是一種折中的技術(shù),尤其部署在那些可以感知到虛擬化的處理器的環(huán)境中。在提供了異構(gòu)操作系統(tǒng)混合使用能力的同時(shí),也帶來(lái)了不錯(cuò)的性能表現(xiàn)。
完全虛擬技術(shù)是這3種技術(shù)中對(duì)于性能影響最大的,但采用這種技術(shù)的物理服務(wù)器上的虛擬系統(tǒng),是相互獨(dú)立的,并且與主機(jī)系統(tǒng)也是無(wú)關(guān)的。對(duì)于軟件質(zhì)量控制、測(cè)試來(lái)說(shuō),是最佳的選擇。除此之外,完全虛擬技術(shù)還能支持最多種類的客戶系統(tǒng)。
完全虛擬技術(shù)還提供了些獨(dú)特的功能。例如,我們可以獲取虛擬機(jī)的快照,快照中保留了虛擬機(jī)的當(dāng)前狀態(tài),可以使用快照來(lái)進(jìn)行災(zāi)難恢復(fù)。虛擬機(jī)的鏡像文件則可以用來(lái)快速地創(chuàng)建新的虛擬服務(wù)器。
虛擬化技術(shù)帶來(lái)的經(jīng)濟(jì)上的收益立竿見(jiàn)影。最顯而易見(jiàn)的效果就是硬件的大量減少,例如對(duì)服務(wù)器數(shù)量需求的減少。利用市場(chǎng)上現(xiàn)有的技術(shù),將IT開(kāi)銷縮減50%~70%是很常見(jiàn)的。有時(shí)幾百臺(tái)服務(wù)器可以用原先數(shù)量的 1/10來(lái)替代,在每臺(tái)上運(yùn)行多個(gè)虛擬服務(wù)器。更少的硬件,整體的IT預(yù)算就會(huì)下降。相對(duì)于其他任何因?yàn)檫w移至虛擬化系統(tǒng)帶來(lái)的開(kāi)銷的減少,硬件開(kāi)銷的減少是非常顯著的。
對(duì)于虛擬化環(huán)境來(lái)說(shuō),節(jié)省能源是一個(gè)顯而易見(jiàn)的益處。在大型企業(yè)中,由于有在一臺(tái)物理服務(wù)器上使用同樣的能源來(lái)運(yùn)行多個(gè)服務(wù)器的能力,就能夠節(jié)省相當(dāng)多的能源開(kāi)銷。符合國(guó)際上大力提倡的“低碳環(huán)保”的新經(jīng)濟(jì)模式。
節(jié)省寶貴機(jī)房則是另一大優(yōu)點(diǎn)。傳統(tǒng)服務(wù)器環(huán)境中,終有一天機(jī)房的空間會(huì)被服務(wù)器占滿。使用 Hyper-V或者VMware就可以結(jié)束這樣的煩惱了。
很多由此帶來(lái)的開(kāi)銷的減少,最終會(huì)反映在企業(yè)經(jīng)濟(jì)上的收益。比如說(shuō),設(shè)備的減少意味著用更少的電,對(duì)于樓層空間需求的減少,意味著更少的房屋租金。
CPU、內(nèi)存使用率是服務(wù)器利用率的衡量標(biāo)準(zhǔn),利用率過(guò)低,就意味著企業(yè)在為他們不需要的計(jì)算能力買單。一臺(tái)服務(wù)器只發(fā)揮了25%的處理能力,但它的能源消耗依然會(huì)達(dá)到其額定功率的80%左右。
虛擬化的最大優(yōu)勢(shì)在于,能將多臺(tái)物理服務(wù)器整合到一臺(tái)機(jī)器上。只要磁盤空間和內(nèi)存充裕,就可以繼續(xù)向宿主服務(wù)器上添加虛擬服務(wù)器。在一臺(tái)機(jī)器上運(yùn)行多個(gè)虛擬機(jī),可以使得企業(yè)能夠更有效率地使用服務(wù)器。
事實(shí)上,如果將處理能力提高到60%左右,所帶來(lái)的能源消耗的提升相對(duì)于性能提升來(lái)說(shuō),是忽略不計(jì)的。處理能力在60%左右時(shí),能耗為額定功率的85%左右。用5%的能源消耗換來(lái)了處理能力成倍的增長(zhǎng),是非常有效率的。
非虛擬化的環(huán)境中,唯一提升可靠性的技術(shù),就是將整個(gè)系統(tǒng)置于高可用性的集群環(huán)境中。但集群環(huán)境非常昂貴,也很難維護(hù)。大多數(shù)情況下,集群技術(shù)只用來(lái)保護(hù)那些及其重要的應(yīng)用,例如DBMS和郵件服務(wù)器之類的,而其他大部分的軟件應(yīng)用,是沒(méi)有任何保護(hù)的。
采用虛擬化則可以有完全不同的方法來(lái)處理這些問(wèn)題。它在hypervisor層次上進(jìn)行保護(hù),而不是在應(yīng)用層次上。這聽(tīng)上去并不好,因?yàn)楫?dāng)宿主系統(tǒng)運(yùn)行時(shí),萬(wàn)一應(yīng)用程序出錯(cuò),沒(méi)有任何防護(hù)措施。但另一方面,非常容易去實(shí)現(xiàn)應(yīng)用保護(hù),因?yàn)椴捎脩?yīng)用程序無(wú)關(guān)技術(shù),使得服務(wù)器級(jí)的可靠性提高了,相應(yīng)地,軟件的可靠性也就提高了。這個(gè)特性不僅在系統(tǒng)突發(fā)故障時(shí)很重要,而且在計(jì)劃停機(jī)檢修時(shí)則更重要。
如果有新的軟件或者操作系統(tǒng)需要安裝,使用服務(wù)器虛擬化,能使這個(gè)過(guò)程在短時(shí)間內(nèi)完成,因?yàn)闊o(wú)需再去準(zhǔn)備新的硬件設(shè)備。這就使得響應(yīng)速度提高的同時(shí)增加了適應(yīng)性。去分析和量化虛擬化所帶來(lái)的益處是比較困難的,因?yàn)檫@沒(méi)有一個(gè)簡(jiǎn)單的公式去計(jì)算。企業(yè)的確需要花一段時(shí)間去思考,從長(zhǎng)遠(yuǎn)來(lái)看,由虛擬化可以帶來(lái)擴(kuò)展性的好處。
虛擬化技術(shù)的另一個(gè)優(yōu)勢(shì)則是便于測(cè)試。在軟件開(kāi)發(fā)企業(yè)中,必須徹底地測(cè)試所開(kāi)發(fā)的軟件,尤其是ERP軟件或是應(yīng)用于關(guān)鍵任務(wù)的程序。
對(duì)于軟件測(cè)試來(lái)說(shuō),一個(gè)與生產(chǎn)環(huán)境完全相同的測(cè)試環(huán)境是必需的,微小的環(huán)境差異就會(huì)使得測(cè)試缺乏可靠性。在非虛擬化環(huán)境中,測(cè)試的代價(jià)是非常高的,因?yàn)橐獮槊恳粋€(gè)生產(chǎn)環(huán)境搭建出一個(gè)完全相同的測(cè)試環(huán)境。還必須保持生產(chǎn)和測(cè)試環(huán)境的同步。如果是那些需要在集群系統(tǒng)里運(yùn)行的關(guān)鍵應(yīng)用,測(cè)試將會(huì)變得更復(fù)雜。可信賴的測(cè)試要求你的系統(tǒng)也必須是建立在集群系統(tǒng)里的,這個(gè)代價(jià)可能會(huì)貴得離譜。
在虛擬化系統(tǒng)中,可在任何時(shí)候獲取生產(chǎn)實(shí)例的副本,并使用該副本進(jìn)行準(zhǔn)確地測(cè)試。這就為創(chuàng)建虛擬化的測(cè)試服務(wù)器鋪平了道路,不僅提高了測(cè)試的可靠性,也提高了整個(gè)測(cè)試流程的效率。
在數(shù)據(jù)中心里,服務(wù)器虛擬化技術(shù)正在替代傳統(tǒng)的、龐大的服務(wù)器系統(tǒng)。在虛擬化趨勢(shì)的背后,經(jīng)濟(jì)的因素占有不可取代的地位。虛擬化技術(shù)能在降低成本的同時(shí),使得服務(wù)器的靈活性也大大提高。但是,事物總是有它的兩面性,虛擬化后也的確帶來(lái)了不少的問(wèn)題[3]。
傳統(tǒng)環(huán)境中,一臺(tái)服務(wù)器硬件故障意味著這臺(tái)服務(wù)器不能用了,然后開(kāi)啟備份服務(wù)器。在虛擬世界中,所有的服務(wù)器都在一臺(tái)物理主機(jī)上,有硬件故障了,那么所有的服務(wù)器就都不能用了。
舉例來(lái)說(shuō),你有10臺(tái)重要的服務(wù)器在一臺(tái)物理主機(jī)上運(yùn)行,但是你的RAID控制卡出問(wèn)題了,硬盤上所有的數(shù)據(jù)全部丟失了。別說(shuō)這種情況不可能發(fā)生,事實(shí)上,已經(jīng)發(fā)生過(guò)這種情況,而且使用的還是品牌RAID卡[4]。
有幾種方法可以去彌補(bǔ)這些弱點(diǎn)。首先是集群,這需要大量額外的工作。另一個(gè)方法則是備份這些虛擬機(jī)。如果物理服務(wù)器有故障了,就可以將這些虛擬機(jī)恢復(fù)到其他的物理主機(jī)上。因此,如果企業(yè)的虛擬化結(jié)構(gòu)是有組織、有計(jì)劃的,物理故障可能也就沒(méi)有那么可怕了。然而,也就意味著企業(yè)需要在冗余硬件上投資,在某種程度上,也就削弱了虛擬化的優(yōu)勢(shì)。
安裝虛擬化軟件后,可以像以前那樣部署操作系統(tǒng),這看似非常簡(jiǎn)單。但事實(shí)并非如此,在虛擬環(huán)境下,很多事情都不一樣。有可能會(huì)遇到這樣的事情,你在一臺(tái)宿主機(jī)上部署了10臺(tái)虛擬服務(wù)器,但是過(guò)了一段時(shí)間,你可能會(huì)發(fā)現(xiàn)其中的幾臺(tái)停止運(yùn)行了。發(fā)生了什么?當(dāng)你以傳統(tǒng)方式部署一臺(tái)物理服務(wù)器時(shí),服務(wù)器有多少內(nèi)存,操作系統(tǒng)就可以使用多少。而在虛擬機(jī)上就不是這樣了,如果還是按照傳統(tǒng)的方式來(lái)分配內(nèi)存,就會(huì)出現(xiàn)上述的故障了,系統(tǒng)會(huì)提示沒(méi)有更多的內(nèi)存可用了。
創(chuàng)建了很多的虛擬服務(wù)器,在消耗了宿主主機(jī)資源的同時(shí),得到的回報(bào)卻很低,這就是服務(wù)器蔓延。易于部署和缺乏整個(gè)生命周期內(nèi)的管理,是造成虛擬機(jī)蔓延的原因。
即使虛擬機(jī)的管理可能會(huì)很復(fù)雜,但安裝一臺(tái)虛擬機(jī)卻很簡(jiǎn)單。只需將虛擬機(jī)的鏡像文件復(fù)制到宿主機(jī)上,新的虛擬機(jī)就創(chuàng)建好了。虛擬機(jī)增長(zhǎng)速度會(huì)非???,而缺少足夠管理員去管理。那些新建的虛擬服務(wù)器也可能并不常用。
對(duì)于服務(wù)器蔓延,應(yīng)該從管理的層面上來(lái)避免這種情況的出現(xiàn),而并非是從技術(shù)上來(lái)解決。在物理服務(wù)器環(huán)境中,也會(huì)有類似的情況發(fā)生。
服務(wù)器虛擬化并不適用于所有的人。如果存在非常高端的應(yīng)用,而這些應(yīng)用是非常消耗資源且需要頻繁訪問(wèn)內(nèi)存和硬盤,那么就不應(yīng)該把這些服務(wù)器應(yīng)用放置于虛擬環(huán)境之下。而相對(duì)來(lái)說(shuō)對(duì)性能要求不太高的那些服務(wù)器應(yīng)用,則可以在虛擬環(huán)境下運(yùn)行良好。
虛擬化一個(gè)服務(wù)器意味著對(duì)整個(gè)系統(tǒng)做了巨大的修改。一個(gè)新的復(fù)雜的層次被加入了進(jìn)來(lái),這就引起了新的問(wèn)題。主要的困難是,如果有樣?xùn)|西沒(méi)有如計(jì)劃中正常運(yùn)行,那么可能需要相當(dāng)多的額外的工作區(qū)尋找原因。
2011年對(duì)于服務(wù)器虛擬化來(lái)說(shuō)是令人激動(dòng)的一年。在這一年中,采用服務(wù)器虛擬化技術(shù)的企業(yè)穩(wěn)步增長(zhǎng),達(dá)到了70%的增長(zhǎng)率[5]。在之后的幾年中,虛擬化依舊會(huì)是IT界的前沿話題。
與在服務(wù)器上添加越來(lái)越多的內(nèi)存相比,不如讓內(nèi)存成為可以共享的資源。內(nèi)存虛擬化平臺(tái)的原理是:聚集所有節(jié)點(diǎn)上的可用內(nèi)存,使之成為內(nèi)存池,各個(gè)節(jié)點(diǎn)的服務(wù)器都可以通過(guò)共享網(wǎng)絡(luò)來(lái)使用它。服務(wù)器在為內(nèi)存池做出貢獻(xiàn)的同時(shí),可以實(shí)現(xiàn)按需使用。
在虛擬化廠商N(yùn)xTOP看來(lái),對(duì)個(gè)人計(jì)算機(jī)來(lái)說(shuō)有4種基本部件,硬件、操作系統(tǒng)、應(yīng)用程序和用戶數(shù)據(jù),而他們的目標(biāo)則是,虛擬化這些部件并使得IT管理員可以通過(guò)網(wǎng)絡(luò),管理這些系統(tǒng)而不是單獨(dú)地處理每一個(gè)實(shí)體系統(tǒng)。
桌面虛擬化技術(shù)正在被加速應(yīng)用。在大量對(duì)網(wǎng)絡(luò)和存儲(chǔ)系統(tǒng)的測(cè)試和分析后發(fā)現(xiàn),從經(jīng)濟(jì)上來(lái)看,將桌面終端整合到虛擬桌面并沒(méi)有太多的優(yōu)勢(shì)。但是新技術(shù)的推出,如固態(tài)磁盤和I/O虛擬化,正在推動(dòng)桌面虛擬化進(jìn)入應(yīng)用階段。
服務(wù)器虛擬化可以為企業(yè)帶來(lái)有形的(開(kāi)銷上的)和無(wú)形的(性能上的)收益。雖然前者能夠讓企業(yè)的領(lǐng)導(dǎo)者們充分領(lǐng)略虛擬化所帶來(lái)的好處,也是他們所看重的,但是性能上的收益,才是可以將IT設(shè)施當(dāng)作可提升企業(yè)市場(chǎng)競(jìng)爭(zhēng)力的戰(zhàn)略資源的原因。
另一方面,作為一門新興技術(shù),虛擬化也存在不少問(wèn)題。當(dāng)然,我們也有理由相信,隨著時(shí)間的推移和各方的努力,這些問(wèn)題都會(huì)得到不同程度地解決。
總之,虛擬化是趨勢(shì)所在,企業(yè)應(yīng)當(dāng)從自己的實(shí)際情況出發(fā),綜合考慮虛擬化后帶來(lái)的各種影響,找到一個(gè)適合自己的模式。
[1]ZhangCha.企業(yè)服務(wù)器虛擬化率不到 40% [OL].比特網(wǎng),2011.
[2]金海.計(jì)算系統(tǒng)虛擬化:原理與應(yīng)用[M].北京清華大學(xué)出版社.2008.
[3]Robin Layland.The dark side of server virtualization [OL].Network World,2010.
[4]Nicole Lewis.Virtualization Security[OL].www.focus.com,2009.
[5]王偉綱.服務(wù)器虛擬化[J].金融科技時(shí)代,2010.(2)