虛擬化概念入門(mén):從結(jié)構(gòu)剖析虛擬化本質(zhì)
虛擬化技術(shù)雖然被大家談得很熱,但是真正什么是虛擬化技術(shù),很多人還不了解,這導(dǎo)致了人們對(duì)虛擬化的誤解,影響了虛擬化應(yīng)用。很多用戶(hù)認(rèn)為,在采用虛擬化技術(shù)的時(shí)候經(jīng)常會(huì)發(fā)生性能下降和系統(tǒng)不穩(wěn)定的問(wèn)題。即使信息技術(shù)管理員很了解虛擬化技術(shù),但是那些不了解的虛擬化的終端用戶(hù)仍然會(huì)因?yàn)檫@些說(shuō)法而猶豫不決。大概是因?yàn)椴煌耆私馓摂M化系統(tǒng)的緣故吧,所以有些人對(duì)虛擬化技術(shù)沒(méi)有太好的印象,反而“總覺(jué)得難受”。如果有這種印象的話(huà),虛擬化技術(shù)在企業(yè)領(lǐng)域發(fā)展估計(jì)不會(huì)多順利。
因此在這里,我們將解釋虛擬化到底是什么。
虛擬化計(jì)算機(jī)的本質(zhì)
虛擬化,原本是指資源的抽象化,也就是單一物理資源的多個(gè)邏輯表示,或者多個(gè)物理資源的單一邏輯表示。具體到服務(wù)器虛擬化,就是多個(gè)物理資源的單一邏輯表示。另外,存儲(chǔ)虛擬化就是這種模式的一個(gè)例子。
對(duì)不了解虛擬化的終端用戶(hù)來(lái)說(shuō),聽(tīng)到上面說(shuō)“單一物理資源的多個(gè)邏輯表示”,往往會(huì)認(rèn)為“虛擬化技術(shù)也太抽象了”??墒?,如果要看計(jì)算機(jī)架構(gòu)的話(huà),虛擬化正是計(jì)算機(jī)的本質(zhì)。
想一下,PC同時(shí)啟動(dòng)使用郵件和Web瀏覽器等多個(gè)應(yīng)用,這時(shí)候你就會(huì)理解虛擬化技術(shù)。在這個(gè)情況下,操作系統(tǒng)把PC物理資源抽象化了,將多個(gè)應(yīng)用集中到一個(gè)物理資源環(huán)境下。因?yàn)樘摂M化hypervisor是運(yùn)行在操作系統(tǒng)上層的,所以會(huì)被認(rèn)為有些抽象。不過(guò),如果試著從計(jì)算機(jī)結(jié)構(gòu)來(lái)理解的話(huà),也不是那么晦澀。
虛擬化的主要類(lèi)型:主機(jī)型和hypervisor型
虛擬化的類(lèi)型大致可以分為主機(jī)型和hypervisor型。當(dāng)虛擬化最初應(yīng)用于PC時(shí)的主流類(lèi)型是主機(jī)型。
主機(jī)型是將虛擬化軟件作為一個(gè)應(yīng)用安裝的主機(jī)操作系統(tǒng)中。虛擬硬件包括主機(jī)操作系統(tǒng)中的虛擬化軟件、操作系統(tǒng)和應(yīng)用。因?yàn)槭潜蛔鳛橐粋€(gè)應(yīng)用,所操作系統(tǒng)不是那么快。
主機(jī)型虛擬化的問(wèn)題在于,如果主機(jī)操作系統(tǒng)發(fā)生故障,就會(huì)波及到作為該操作系統(tǒng)一個(gè)應(yīng)用的虛擬化軟件。而且,在硬件模擬過(guò)程中也會(huì)發(fā)生諸多問(wèn)題。
接下來(lái)是hypervisor型。hypervisor型是指通過(guò)低層級(jí)軟件讓多個(gè)操作系統(tǒng)得以共享相同的硬件設(shè)備。
#p#
虛擬化捉摸不透?從結(jié)構(gòu)剖析虛擬化
主機(jī)型虛擬化是在運(yùn)行在操作系統(tǒng)上的,而hypervisor型虛擬化是直接運(yùn)行在硬件上如果向hypervisor編入設(shè)備驅(qū)動(dòng)程序的話(huà),那么設(shè)備驅(qū)動(dòng)程序?qū)?huì)影響虛擬化環(huán)境的穩(wěn)定性。同時(shí),如果嵌入兩個(gè)或者更多驅(qū)動(dòng)程序的話(huà),那么hypervisor就會(huì)快速擴(kuò)張,支持硬件就會(huì)被限制于ESX/ESXi下。
可以通過(guò)使用作為Domain 0的操作系統(tǒng)驅(qū)動(dòng)程序來(lái)減少hypervisor操作系統(tǒng)使用每個(gè)虛擬環(huán)境Domain 0的驅(qū)動(dòng)程序進(jìn)行獨(dú)立管理,并且適用于Hyper-V和Xen。
因此,hypervisor程序是虛擬化的基礎(chǔ),程序越小,開(kāi)銷(xiāo)越小,虛擬環(huán)境速度越高。
而且因?yàn)镈omain 0中使用Windows和Linux等操作系統(tǒng),即使不開(kāi)發(fā)專(zhuān)門(mén)的hypervisor驅(qū)動(dòng)程序,操作系統(tǒng)也可以利用驅(qū)動(dòng)程序。所以域虛擬化對(duì)應(yīng)的硬件種類(lèi)要比利用專(zhuān)有驅(qū)動(dòng)程序的虛擬化軟件更多。
隨著虛擬化軟件的升級(jí)更新,虛擬化架構(gòu)已經(jīng)從完全虛擬化轉(zhuǎn)向半虛擬化。
完全虛擬化是指在虛擬環(huán)境中模擬實(shí)際存在的硬件。因此,在虛擬環(huán)境中運(yùn)行的操作系統(tǒng)可以支持現(xiàn)有硬件的驅(qū)動(dòng)程序。雖然驅(qū)動(dòng)程序方面兼容性很高,但是為了模擬硬件,在虛擬環(huán)境中調(diào)用現(xiàn)有硬件中的驅(qū)動(dòng)器程序可能會(huì)降低系統(tǒng)的整體性能。
半虛擬化要準(zhǔn)備規(guī)定的虛擬硬件。對(duì)應(yīng)的驅(qū)動(dòng)程序被集成到虛擬機(jī)中,并被操作系統(tǒng)所使用。
另一個(gè)是半虛擬化。由于半虛擬化不是模擬現(xiàn)實(shí)的硬件,因此,域虛擬硬件相關(guān)的軟件就變得很簡(jiǎn)單,可以作為一個(gè)整體高速地運(yùn)行。
但是,為了給半虛擬化提供虛擬硬件,每個(gè)虛擬化環(huán)境中運(yùn)行的操作系統(tǒng)都需要對(duì)應(yīng)的驅(qū)動(dòng)程序。
hypervisor的性能也會(huì)隨著CPU而改變
說(shuō)不定讀到這里,你會(huì)覺(jué)得似乎虛擬化全部是關(guān)于軟件方面的。不過(guò),像AMD的Opteron和Intel的Xeon這樣的硬件也提供了虛擬化功能。例如,Intel CPU中擴(kuò)展頁(yè)表(IntelVT Extended Page Tables)的全新支持可通過(guò)減少頁(yè)表虛擬化帶來(lái)的開(kāi)銷(xiāo)進(jìn)一步提高虛擬化性能。
此外,Intel還提供了I/O虛擬化功能“VT-d”和網(wǎng)絡(luò)虛擬化功能“VT-c”。同時(shí),AMD即將在2009年下半年推出的Fiorano平臺(tái)(RD890芯片組系列)也會(huì)支持IOMMU虛擬化功能。
這種硬件方面的虛擬化支持功能每天都是在更新的,可以說(shuō)并不是在虛擬環(huán)境中使用舊的服務(wù)器,而是導(dǎo)入新的服務(wù)器,遷移舊服務(wù)器上的任務(wù)。雖然舊的服務(wù)器還可以在虛擬化環(huán)境下運(yùn)行,但是舊的服務(wù)器已經(jīng)不能再利用了。而且,遷移到最新服務(wù)器上,不僅能耗和散熱量都有所降低,服務(wù)器本身的成本和性能并沒(méi)有增加多少。
需要注意的是,如果hypervisor不支持的話(huà),這些功能都是無(wú)法使用的。
使用臺(tái)式計(jì)算機(jī)也可以進(jìn)行虛擬化測(cè)試
談到CPU的虛擬化功能,那就必須要對(duì)裝載了Xeon或者Opteron的服務(wù)器進(jìn)行虛擬化測(cè)試。但是,考慮到當(dāng)前的經(jīng)濟(jì)危機(jī),要購(gòu)買(mǎi)測(cè)試用服務(wù)器可能要數(shù)十萬(wàn)日元吧。而且,測(cè)試時(shí)要使用多個(gè)虛擬化服務(wù)器,測(cè)試虛擬服務(wù)器在虛擬環(huán)境之間的實(shí)時(shí)遷移功能,最少也要使用兩臺(tái)同樣規(guī)格的服務(wù)器。
在這里我們推薦使用虛擬化的臺(tái)式計(jì)算機(jī)進(jìn)行測(cè)試。現(xiàn)在市場(chǎng)中已經(jīng)有采用了Intel Core i7或者AMD Phenom II等CPU的臺(tái)式計(jì)算機(jī),從CPU方面來(lái)看,這和服務(wù)器虛擬化功能是一樣的。
如果使用配置了Core i7的臺(tái)式電腦的話(huà),只要數(shù)百美元左右就可以買(mǎi)到了,配置Phenom II大概更低。由于要測(cè)試實(shí)時(shí)遷移功能,所以需要購(gòu)買(mǎi)兩臺(tái),同時(shí)還要買(mǎi)BUFFLO的低成本iSCSI存儲(chǔ),整個(gè)測(cè)試環(huán)境大約需要上千美元吧。當(dāng)然,如果測(cè)試條件很好的話(huà),你可以購(gòu)買(mǎi)服務(wù)器,你也可以根據(jù)業(yè)務(wù)水平來(lái)使用桌面PC。而且,如果你們并不是適合于使用虛擬化技術(shù)的話(huà),可以使用桌面PC測(cè)試虛擬化就沒(méi)有太大意義了。如果廠(chǎng)商免費(fèi)提供hypervisor的話(huà),那么為何不嘗試一下用這種方法做測(cè)試?如果嘗試一下,你對(duì)虛擬化的印象一定會(huì)有所改變。
虛擬化技術(shù)沒(méi)有那么深?yuàn)W,但是真正用好虛擬化技術(shù)也不是一件容易的事情。
【編輯推薦】