從VT-x到VT-d Intel虛擬化技術(shù)發(fā)展藍(lán)圖 |
更新時(shí)間:2007-12-26 9:53:26
(
編輯:映君
)
|
內(nèi)容導(dǎo)航:
從VT-x到VT-d Intel虛擬化技術(shù)發(fā)展藍(lán)圖
純軟件虛擬化主要的問題是性能和隔離性。Full Virtualization完全虛擬化技術(shù)可以提供較好的客戶操作系統(tǒng)獨(dú)立性,不過其性能不高,在不同的應(yīng)用下,可以消耗掉主機(jī)10%~30%的資源。而OS Virtualization可以提供良好的性能,然而各個客戶操作系統(tǒng)之間的獨(dú)立性并不強(qiáng)。無論是何種軟件方法,隔離性都是由Hypervisor軟件提供的,過多的隔離必然會導(dǎo)致性能的下降。
這些問題主要跟x86設(shè)計(jì)時(shí)就沒有考慮虛擬化有關(guān)。我們先來看看x86處理器的Privilege特權(quán)等級設(shè)計(jì)。
x86架構(gòu)為了保護(hù)指令的運(yùn)行,提供了指令的4個不同Privilege特權(quán)級別,術(shù)語稱為Ring,從Ring 0~Ring 3。Ring 0的優(yōu)先級最高,Ring 3最低。各個級別對可以運(yùn)行的指令有所限制,例如,GDT,IDT,LDT,TSS等這些指令就只能運(yùn)行于Privilege 0,也就是Ring 0。要注意Ring/Privilege級別和我們通常認(rèn)知的進(jìn)程在操作系統(tǒng)中的優(yōu)先級并不同。
操作系統(tǒng)必須要運(yùn)行一些Privilege 0的特權(quán)指令,因此Ring 0是被用于運(yùn)行操作系統(tǒng)內(nèi)核,Ring 1和Ring 2是用于操作系統(tǒng)服務(wù),Ring 3則是用于應(yīng)用程序。然而實(shí)際上并沒有必要用完4個不同的等級,一般的操作系統(tǒng)實(shí)現(xiàn)都僅僅使用了兩個等級,即Ring 0和Ring 3,如圖所示:
也就是說,在一個常規(guī)的x86操作系統(tǒng)中,系統(tǒng)內(nèi)核必須運(yùn)行于Ring 0,而VMM軟件以及其管理下的Guest OS卻不能運(yùn)行于Ring 0——因?yàn)槟菢泳蜔o法對所有虛擬機(jī)進(jìn)行有效的管理,就像以往的協(xié)同式多任務(wù)操作系統(tǒng)(如,Windows 3.1)無法保證系統(tǒng)的穩(wěn)健運(yùn)行一樣。在沒有處理器輔助的虛擬化情況下,挑戰(zhàn)就是采用Ring 0之外的等級來運(yùn)行VMM (Virtual Machine Monitor,虛擬機(jī)監(jiān)視器)或Hypervisor,以及Guest OS。
現(xiàn)在流行的解決方法是Ring Deprivileging(暫時(shí)譯為特權(quán)等級下降),并具有兩種選擇:客戶OS運(yùn)行于Privilege 1(0/1/3模型),或者Privilege 3(0/3/3模型)。
無論是哪一種模型,客戶OS都無法運(yùn)行于Privilege 0,這樣,如GDT,IDT,LDT,TSS這些特權(quán)指令就必須通過模擬的方式來運(yùn)行,這會帶來很明顯的性能問題。特別是在負(fù)荷沉重、這些指令被大量執(zhí)行的時(shí)候。
同時(shí),這些特權(quán)指令是真正的“特權(quán)”,隔離不當(dāng)可以嚴(yán)重威脅到其他客戶OS,甚至主機(jī)OS。Ring Deprivileging技術(shù)使用IA32架構(gòu)的Segment Limit(限制分段)和Paging(分頁)來隔離VMM和Guest OS,不幸的是EM64T的64bit模式并不支持Segment Limit模式,要想運(yùn)行64bit操作系統(tǒng),就必須使用Paging模式。
對于虛擬化而言,使用Paging模式的一個致命之處是它不區(qū)分Privileg 0/1/2模式,因此客戶機(jī)運(yùn)行于Privileg 3就成為了必然(0/3/3模型),這樣Paging模式才可以將主機(jī)OS和客戶OS隔離開來,然而在同一個Privileg模式下的不同應(yīng)用程序(如,不同的虛擬機(jī))是無法受到Privileg機(jī)構(gòu)保護(hù)的,這就是目前IA32帶來的隔離性問題,這個問題被稱為Ring Compression。
這個問題的實(shí)際表現(xiàn)是:VMware在不支持Intel VT的IA32架構(gòu)CPU上無法虛擬64-bit客戶操作系統(tǒng),因?yàn)闊o法在客戶OS之間安全地隔離。
更多相關(guān):
投影機(jī)
|
文章來源:中國投影網(wǎng)
|
|
|
|