新手掃盲:四種常見虛擬化技術(shù)優(yōu)劣勢對(duì)比
虛擬化技術(shù)(Virtualization)和分區(qū)(Partition)技術(shù)是緊密結(jié)合在一起,從60年代Unix誕生起,虛擬化技術(shù)和分區(qū)技術(shù)就開始了發(fā)展,并且經(jīng)歷了從“硬件分區(qū)”->“虛擬機(jī)”->“準(zhǔn)虛擬機(jī)”->“虛擬操作系統(tǒng)”的發(fā)展歷程。最早的分區(qū)技術(shù)誕生自人們想提升大型主機(jī)利用率需求。比如在金融、科學(xué)等領(lǐng)域,大型Unix服務(wù)器通常價(jià)值數(shù)千萬乃至上億元,但是實(shí)際使用中多個(gè)部門卻不能很好的共享其計(jì)算能力,常導(dǎo)致需要計(jì)算的部門無法獲得計(jì)算能力,而不需要大量計(jì)算能力的部門占有了過多的資源。這個(gè)時(shí)候分區(qū)技術(shù)出現(xiàn)了,它可以將一臺(tái)大型服務(wù)器分割成若干分區(qū),分別提供給生產(chǎn)部門、測試部門、研發(fā)部門以及其他部門。
幾種常見的虛擬化技術(shù)代表產(chǎn)品如下:
硬件分區(qū)技術(shù)
硬件分區(qū)技術(shù)是將硬件資源被劃分成數(shù)個(gè)分區(qū),每個(gè)分區(qū)享有獨(dú)立的CPU、內(nèi)存,并安裝獨(dú)立的操作系統(tǒng)。在一臺(tái)服務(wù)器上,存在有多個(gè)系統(tǒng)實(shí)例,同時(shí)啟動(dòng)了多個(gè)操作系統(tǒng)。這種分區(qū)方法的主要缺點(diǎn)是缺乏很好的靈活性,不能對(duì)資源做出有效調(diào)配。隨著技術(shù)的進(jìn)步,現(xiàn)在對(duì)于資源劃分的顆粒已經(jīng)遠(yuǎn)遠(yuǎn)提升,例如在IBM AIX系統(tǒng)上,對(duì)CPU資源的劃分顆粒可以達(dá)到0.1個(gè)CPU。這種分區(qū)方式,在目前的金融領(lǐng)域,比如在銀行信息中心得到了廣泛采用。
#p#
虛擬機(jī)技術(shù)
在虛擬機(jī)技術(shù)(Virtual Machine Monitor)中,不再對(duì)底層的硬件資源進(jìn)行劃分,而是部署一個(gè)統(tǒng)一的Host系統(tǒng)。在Host系統(tǒng)上,加裝了Virtual Machine Monitor,虛擬層作為應(yīng)用級(jí)別的軟件而存在,不涉及操作系統(tǒng)內(nèi)核。虛擬層會(huì)給每個(gè)虛擬機(jī)模擬一套獨(dú)立的硬件設(shè)備,包含CPU、內(nèi)存、主板、顯卡、網(wǎng)卡等硬件資源,在其上安裝所謂的Guest操作系統(tǒng)。最終用戶的應(yīng)用程序,運(yùn)行在Guest操作系統(tǒng)中。如下圖所示。
這種虛擬機(jī)運(yùn)行的方式有一定的優(yōu)點(diǎn),比如能在一個(gè)節(jié)點(diǎn)上安裝多個(gè)不同類型的操作系統(tǒng);但缺點(diǎn)也非常明顯,虛擬硬件設(shè)備要消耗資源,大量代碼需要被翻譯執(zhí)行,造成了性能的損耗,使其更合適用于實(shí)驗(yàn)室等特殊環(huán)境。其代表產(chǎn)品有EMC旗下的VMware系列、微軟旗下的Virtual PC/Server系列等。
#p#
準(zhǔn)虛擬機(jī)技術(shù)
為了改善虛擬機(jī)技術(shù)(Virtual Machine Monitor)的性能,一種新的準(zhǔn)虛擬化技術(shù)(Para-Virtualizion)技術(shù)誕生了。這種虛擬技術(shù)以Xen為代表,其特點(diǎn)是修改操作系統(tǒng)的內(nèi)核,加入一個(gè)Xen Hypervisor層。它允許安裝在同一硬件設(shè)備上的多個(gè)系統(tǒng)可以同時(shí)啟動(dòng),由Xen Hypervisor來進(jìn)行資源調(diào)配。
在這種虛擬環(huán)境下,依然需要模擬硬件設(shè)備,安裝Guest操作系統(tǒng),并且還需要修改操作系統(tǒng)的內(nèi)核。Xen相對(duì)于傳統(tǒng)的Virtual Machine Monitor,性能稍有提高,但并不十分顯著。為了進(jìn)一步提高性能,Intel和AMD分別開發(fā)了VT和Pacifica虛擬技術(shù),將虛擬指令加入到了CPU中。使用了CPU支持的硬件虛擬技術(shù),將不再需要修改操作系統(tǒng)內(nèi)核,而是由CPU指令集進(jìn)行相應(yīng)的轉(zhuǎn)換操作。
#p#
操作系統(tǒng)虛擬化技術(shù)
***的虛擬化技術(shù)已經(jīng)發(fā)展到了操作系統(tǒng)虛擬化,以SWsoft的Virtuozzo/OpenVZ和Sun基于Solaris平臺(tái)的Container技術(shù)為代表,其中Virtuozzo是商業(yè)解決方案,而OpenVZ是以Virtuozzo為基礎(chǔ)的開源項(xiàng)目。他們的特點(diǎn)是一個(gè)單一的節(jié)點(diǎn)運(yùn)行著唯一的操作系統(tǒng)實(shí)例。通過在這個(gè)系統(tǒng)上加裝虛擬化平臺(tái),可以將系統(tǒng)劃分成多個(gè)獨(dú)立隔離的容器,每個(gè)容器是一個(gè)虛擬的操作系統(tǒng),被稱為虛擬環(huán)境(即VE,Virtual Environment),也被稱為虛擬專用服務(wù)器(即VPS,Virtual Private Server)。如下圖所示:
在操作系統(tǒng)虛擬化技術(shù)中,每個(gè)節(jié)點(diǎn)上只有唯一的系統(tǒng)內(nèi)核,不虛擬任何硬件設(shè)備。此外,多個(gè)虛擬環(huán)境以模板的方式共享一個(gè)文件系統(tǒng),性能得以大幅度提升。在生產(chǎn)環(huán)境中,一臺(tái)服務(wù)器可根據(jù)環(huán)境需要,運(yùn)行一個(gè)VE/VPS,或者運(yùn)行上百個(gè)VE/VPS。所以,操作系統(tǒng)虛擬化技術(shù)是面向生產(chǎn)環(huán)境、商業(yè)運(yùn)行環(huán)境的技術(shù)。
表:常見虛擬化技術(shù)對(duì)比
從最早的硬件分區(qū)到現(xiàn)階段的虛擬機(jī)和虛擬操作系統(tǒng),虛擬化技術(shù)已經(jīng)發(fā)展了好幾代,不同的技術(shù)路線也帶來了不同的優(yōu)劣勢。選擇什么樣的技術(shù)和產(chǎn)品,用戶還是應(yīng)該結(jié)合自身的預(yù)算和應(yīng)用實(shí)踐來決策。
【編輯推薦】