|
虛擬化的方式多種多樣,耳朵很熟悉的一些名字有:全虛擬化,類(lèi)虛擬化,硬件虛擬化,混合虛擬化等等。這些不同的虛擬化方式,并不是根據(jù)同一個(gè)標(biāo)準(zhǔn)來(lái)分類(lèi)的,以下介紹三種主要的分類(lèi)方法,并相應(yīng)介紹一些目前主流的虛擬化實(shí)現(xiàn)方式,以及對(duì)應(yīng)的產(chǎn)品。
從虛擬平臺(tái)的角度來(lái)劃分的話,主要分為全虛擬化和類(lèi)虛擬化:
- 全虛擬化是指VMM虛擬出來(lái)的平臺(tái)是現(xiàn)實(shí)中存在的平臺(tái),因此對(duì)于客戶(hù)機(jī)來(lái)說(shuō),并不知道自己是運(yùn)行在虛擬的平臺(tái)上。正因?yàn)榇?,全虛擬化中的客戶(hù)機(jī)操作系統(tǒng)是不需要做任何修改的。
- 類(lèi)虛擬化是指通過(guò)對(duì)客戶(hù)機(jī)進(jìn)行源碼級(jí)的修改,讓客戶(hù)機(jī)可以使用虛擬化的資源。由于需要修改客戶(hù)機(jī)內(nèi)核,因此類(lèi)虛擬化一般都會(huì)被順便用來(lái)優(yōu)化I/O,客戶(hù)機(jī)的操作系統(tǒng)通過(guò)高度優(yōu)化的I/O協(xié)議,可以和VMM緊密結(jié)合達(dá)到近似于物理機(jī)的速度。
對(duì)于全虛擬化來(lái)說(shuō),從虛擬化支持的層次劃分,主要分為軟件輔助的虛擬化和硬件支持的虛擬化:
- 軟件輔助的虛擬化是指通過(guò)軟件的方法,讓客戶(hù)機(jī)的特權(quán)指令陷入異常,從而觸發(fā)宿主機(jī)進(jìn)行虛擬化處理。主要使用的技術(shù)是優(yōu)先級(jí)壓縮和二進(jìn)制代碼翻譯。
a) 優(yōu)先級(jí)壓縮是指讓客戶(hù)機(jī)運(yùn)行在Ring 1級(jí)別,由于處于非特權(quán)級(jí)別,所以客戶(hù)機(jī)的指令基本上都會(huì)觸發(fā)異常,然后宿主機(jī)進(jìn)行接管。
b) 但是有些指令并不能觸發(fā)異常,因此就需要二進(jìn)制代碼翻譯技術(shù)來(lái)對(duì)客戶(hù)機(jī)中無(wú)法觸發(fā)異常的指令進(jìn)行轉(zhuǎn)換,使之無(wú)法逃出宿主機(jī)的控制。
通過(guò)軟件級(jí)的全虛擬化,可以讓一臺(tái)x86的物理機(jī)運(yùn)行64位操作系統(tǒng)。更有勝者,通過(guò)IA64機(jī)型模擬古老的Mainframe虛擬機(jī),從而把Mainframe機(jī)器的系統(tǒng)遷移至新機(jī)型中。
- 硬件輔助的虛擬化主要是由于在技術(shù)層面上用軟件手段達(dá)到全虛擬化非常麻煩,而且效率較低,才由Intel等處理器廠商直接在芯片上提供了對(duì)虛擬化的支持。硬件直接可以對(duì)敏感指令進(jìn)行虛擬化執(zhí)行。比如Intel的VT-x技術(shù)。
從實(shí)現(xiàn)結(jié)構(gòu)來(lái)看,主要分為Hypervisor型虛擬,宿主模型虛擬,混合模型虛擬:
- Hypervisor虛擬是指,硬件資源之上沒(méi)有操作系統(tǒng),而是直接由VMM作為Hypervisor接管,Hypervisor負(fù)責(zé)管理所有資源和虛擬環(huán)境支持。這種結(jié)構(gòu)的主要問(wèn)題是,硬件設(shè)備多種多樣,VMM不可能把每種設(shè)備的驅(qū)動(dòng)都一一實(shí)現(xiàn),所以此模型支持有限的設(shè)備。目前主要的產(chǎn)品是VMware EX Server,是當(dāng)前最高端和成熟的虛擬化產(chǎn)品。
- 宿主模型,是在硬件資源之上有個(gè)普通的操作系統(tǒng),負(fù)責(zé)管理硬件設(shè)備,然后VMM作為一個(gè)應(yīng)用搭建在宿主OS上負(fù)責(zé)虛擬環(huán)境的支持,在VMM之上再加載客戶(hù)機(jī)。此方式由底層操作系統(tǒng)對(duì)設(shè)備進(jìn)行管理,因此VMM完全不用操心實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)。而它的主要缺點(diǎn)VMM對(duì)硬件資源的調(diào)用依賴(lài)宿主機(jī),因此效率和功能受宿主機(jī)影響較大。目前主要產(chǎn)品是VMware Server,Virtual PC/Server。
- 混合模型,是綜合了以上兩種實(shí)現(xiàn)模型的虛擬化技術(shù)。首先VMM直接管理硬件,但是它會(huì)讓出一部分對(duì)設(shè)備的控制權(quán),交給運(yùn)行在特權(quán)虛擬機(jī)中的特權(quán)操作系統(tǒng)來(lái)管理(稱(chēng)之為Domain 0)。VMM和Domain 0合作搭建起虛擬環(huán)境,在其上運(yùn)行客戶(hù)虛擬機(jī)(Domain N)。這個(gè)模型還是具有一些缺點(diǎn),由于在需要特權(quán)操作系統(tǒng)提供服務(wù)時(shí),就會(huì)出現(xiàn)上下文切換,這部分的開(kāi)銷(xiāo)會(huì)造成性能的下降。目前主要產(chǎn)品有Windows 2008, Xen。
|