久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

解讀三種虛擬化之路連載二:虛擬化實(shí)現(xiàn)

 panic moon 2012-03-12
1.  CPU虛擬化
根據(jù)原來(lái)的設(shè)計(jì),x86上的操作系統(tǒng)需要直接運(yùn)行在裸機(jī)上,,因此默認(rèn)擁有和控制所有的硬件。如圖4所示,,x86架構(gòu)提供了四種特權(quán)級(jí)別Ring 0,、123,,通過(guò)這四種級(jí)別來(lái)控制和管理對(duì)硬件的訪問(wèn),。通常,用戶級(jí)的應(yīng)用一般運(yùn)行在Ring 3級(jí)別,,操作系統(tǒng)需要直接訪問(wèn)內(nèi)存和硬件,,需要在Ring 0執(zhí)行它的特權(quán)指令。為了虛擬x86架構(gòu),,需要在操作系統(tǒng)下面運(yùn)行虛擬化層,,由虛擬化層來(lái)創(chuàng)建和管理虛擬機(jī),進(jìn)行共享資源分配,。而有些敏感指令不能很好的進(jìn)行虛擬化,,它們?cè)?/span>Ring 0以外級(jí)別執(zhí)行時(shí),會(huì)出現(xiàn)不同的結(jié)果,。如何在運(yùn)行時(shí)捕獲和翻譯這些敏感指令成為x86虛擬化的一大挑戰(zhàn),,使得x86架構(gòu)虛擬化最初是不可能的。
4. x86架構(gòu)虛擬化前的特權(quán)級(jí)別
VMware1998年成功克服了這個(gè)難點(diǎn),,開(kāi)發(fā)出了BT技術(shù),,從而將操作系統(tǒng)移到Ring 3的用戶模式運(yùn)行,,而VMM運(yùn)行在Ring 0級(jí)別實(shí)現(xiàn)隔離和性能提升。盡管VMware通過(guò)BT技術(shù)實(shí)現(xiàn)的全虛擬化已經(jīng)成為默認(rèn)的業(yè)界標(biāo)準(zhǔn),,超過(guò)2萬(wàn)家的VMware用戶都在這種技術(shù)的支持下可靠,、高效運(yùn)行,但整個(gè)業(yè)界還沒(méi)有統(tǒng)一定義的行業(yè)標(biāo)準(zhǔn),,因此每家公司都在自由發(fā)揮,,來(lái)試圖解決這個(gè)技術(shù)難點(diǎn),不同的方案都有自己的優(yōu)勢(shì)和劣勢(shì),。
到今天為止,,有三種典型的技術(shù)來(lái)解決x86虛擬化的難題:
*      通過(guò)BT實(shí)現(xiàn)的全虛擬化
*      操作系統(tǒng)幫助下的虛擬化,也叫半虛擬化
*      硬件幫助的虛擬化
 
a.    技術(shù)1 – 通過(guò)BT實(shí)現(xiàn)的全虛擬化
VMware可以通過(guò)BT和直接執(zhí)行技術(shù)的結(jié)合來(lái)實(shí)現(xiàn)任何x86操作系統(tǒng)的虛擬化,。如圖5所示,,BT可以翻譯核心指令來(lái)代替那些不能虛擬化的指令,通過(guò)翻譯后的指令直接訪問(wèn)虛擬硬件,。同時(shí),,所有用戶級(jí)指令還是可以直接在CPU上執(zhí)行來(lái)確保虛擬化的性能。每個(gè)VMM為每個(gè)虛擬機(jī)提供完整的硬件支持服務(wù),,包括虛擬BIOS,、虛擬設(shè)備和虛擬內(nèi)存管理。
5. BT實(shí)現(xiàn)x86架構(gòu)虛擬化
BT和直接執(zhí)行技術(shù)的結(jié)合實(shí)現(xiàn)了全虛擬化,,此時(shí)客戶操作系統(tǒng)可以通過(guò)虛擬化層從物理硬件上完全抽取出來(lái),,客戶操作系統(tǒng)感知不到是否發(fā)生了虛擬化,完全不需要進(jìn)行修改,。全虛擬化是迄今為止唯一不需要硬件或操作系統(tǒng)協(xié)助來(lái)進(jìn)行敏感和特權(quán)指令虛擬化的技術(shù),,Hypervisor可以翻譯所有的操作系統(tǒng)特權(quán)指令,并保存在緩存里備用,,而用戶級(jí)的指令完全可以全速直接執(zhí)行,。
全虛擬化提供了最好的虛擬機(jī)隔離和安全性,簡(jiǎn)化了客戶操作系統(tǒng)遷移和移植能力,。VMware ESX Server就是通過(guò)全虛擬化技術(shù)來(lái)實(shí)現(xiàn)的最好案例,。
b.    技術(shù)2 – 半虛擬化
該文中我們將Para-Virtualization翻譯為半虛擬化。Para是來(lái)自希臘語(yǔ)的英語(yǔ)前綴,,意指“和”,、“在邊上”、“一道”等,。因此,“半虛擬化”指得是客戶操作系統(tǒng)和hypervisor之間的通訊如何提高性能和有效性,。如圖6所示,,半虛擬化需要修改操作系統(tǒng)內(nèi)核,,替換掉不能虛擬化的指令,通過(guò)超級(jí)調(diào)用(hypercall)直接和底層的虛擬化層hypervisor來(lái)通訊,,hypervisor同時(shí)也提供了超級(jí)調(diào)用接口來(lái)滿足其他關(guān)鍵內(nèi)核操作,,比如內(nèi)存管理、中斷和時(shí)間保持,。
6. 操作系統(tǒng)協(xié)助的x86架構(gòu)虛擬化
半虛擬化和全虛擬化不同,,全虛擬化不需要修改上面的操作系統(tǒng),敏感的操作系統(tǒng)指令直接通過(guò)BT進(jìn)行處理,。半虛擬化的價(jià)值在于降低了虛擬化的損耗,,但是半虛擬化的性能優(yōu)勢(shì)很大程度上依賴(lài)于運(yùn)行的負(fù)載。由于半虛擬化不支持未修改的操作系統(tǒng)(例如: Windows 2000/XP),,它的兼容性和可移植性差,。在實(shí)際的生產(chǎn)環(huán)境中,半虛擬化也會(huì)導(dǎo)致操作系統(tǒng)支持和維護(hù)的艱難,,因?yàn)榘胩摂M化往往要深入修改操作系統(tǒng)內(nèi)核,。開(kāi)源的Xen項(xiàng)目是半虛擬化的代表,它可以通過(guò)修改Linux的內(nèi)核來(lái)實(shí)現(xiàn)CPU和內(nèi)存的虛擬化,,通過(guò)定制的操作系統(tǒng)驅(qū)動(dòng)來(lái)實(shí)現(xiàn)I/O的虛擬化,。
為了實(shí)現(xiàn)全虛擬化,需要構(gòu)建復(fù)雜的BT技術(shù),,這往往比直接修改客戶操作系統(tǒng)來(lái)啟用半虛擬化更艱難,。VMware實(shí)際上已經(jīng)在產(chǎn)品中使用了半虛擬化的一些技術(shù),來(lái)構(gòu)建VMware Tools和優(yōu)化虛擬設(shè)備驅(qū)動(dòng),。VMware tools服務(wù)為VMM Hypervisor提供了 一個(gè)后門(mén)服務(wù),,用來(lái)同步時(shí)間、記錄日志和客戶操作系統(tǒng)關(guān)機(jī)等,。Vmxnet是半虛擬化的I/O設(shè)備驅(qū)動(dòng)程序,,它可以和hypervisor共享數(shù)據(jù)結(jié)構(gòu)。這些半虛擬化技術(shù)的應(yīng)用改善了設(shè)備的兼容能力,,提高了數(shù)據(jù)吞吐速率,,降低了CPU利用率。需要重點(diǎn)澄清的是:VMware tools 服務(wù)和vmxnet設(shè)備驅(qū)動(dòng)并不是CPU半虛擬化解決方案,,它們緊緊對(duì)客戶操作系統(tǒng)進(jìn)行了微小的,、非關(guān)鍵的修改,并不需要修改客戶操作系統(tǒng)內(nèi)核,。
面向未來(lái),,VMware也在幫助開(kāi)發(fā)虛擬化版的Linux來(lái)支持半虛擬化技術(shù)的進(jìn)步,更進(jìn)一步的細(xì)節(jié),,我們將在后面進(jìn)行探討,。
c.    技術(shù)3 – 硬件輔助虛擬化
硬件廠商面對(duì)虛擬化都相當(dāng)熱情,,他們都投入了大量的精力來(lái)開(kāi)發(fā)新的特性來(lái)簡(jiǎn)化虛擬化技術(shù)的應(yīng)用。第一代的虛擬化增強(qiáng)包括Intel Virtualization Technology (VT-x)AMDAMD-V,,這兩種技術(shù)都為CPU增加了新的執(zhí)行模式root模式,,可以讓VMM運(yùn)行在root模式下,而root模式位于Ring 0的下面,。如圖7所示,,特權(quán)和敏感指令自動(dòng)在hypervisor上執(zhí)行,從而無(wú)需BT或半虛擬化技術(shù),??蛻舨僮飨到y(tǒng)的狀態(tài)保存在VT-xVirtual Machine Control Structure,虛擬機(jī)控制結(jié)構(gòu))中或AMD-v(Virtual Machine Control Block,,虛擬機(jī)控制塊),。支持Intel VTAMD-VCPU2006年開(kāi)始推向市場(chǎng),因此只有新的系統(tǒng)包含了這些硬件輔助的虛擬化功能,。
 
7.硬件輔助的x86架構(gòu)虛擬化
由于hypervisor到客戶操作系統(tǒng)轉(zhuǎn)換的損耗和嚴(yán)格的編程模式要求,,第一代的硬件輔助虛擬化性能并不理想,VMwareBT技術(shù)很多時(shí)候性能更好,。第一代硬件輔助虛擬化為編程留了很小的空間,,降低了軟件的靈活性,增加了hypervisor到客戶操作系統(tǒng)轉(zhuǎn)換的損耗,,正式基于此,,VMware僅僅在很少的情況下利用了第一代的硬件輔助虛擬化,比如,,在Intel平臺(tái)上支持64位操作系統(tǒng)的時(shí)候,,VMware使用了IntelVT-x
2.  內(nèi)存虛擬化
除了CPU虛 擬化,,下一個(gè)關(guān)鍵是內(nèi)存虛擬化,,通過(guò)內(nèi)存虛擬化共享物理系統(tǒng)內(nèi)存,動(dòng)態(tài)分配給虛擬機(jī),。虛擬機(jī)的內(nèi)存虛擬化很象現(xiàn)在的操作系統(tǒng)支持的虛擬內(nèi)存方式,,應(yīng)用程序 看到鄰近的內(nèi)存地址空間,這個(gè)地址空間無(wú)需和下面的物理機(jī)器內(nèi)存直接對(duì)應(yīng),,操作系統(tǒng)保持著虛擬頁(yè)到物理頁(yè)的映射?,F(xiàn)在所有的x86 CPU都包括了一個(gè)稱(chēng)為內(nèi)存管理的模塊MMUMemory Management Unit)和TLB(Translation Lookaside Buffer),通過(guò)MMUTLB來(lái)優(yōu)化虛擬內(nèi)存的性能,。
8. 內(nèi)存虛擬化
為了在一臺(tái)機(jī)器上運(yùn)行多個(gè)虛擬機(jī),,需要增加一個(gè)新的內(nèi)存虛擬化層,也就是說(shuō),必須虛擬MMU來(lái)支持客戶操作系統(tǒng),??蛻舨僮飨到y(tǒng)繼續(xù)控制虛擬地址到客戶內(nèi)存物理地址的映射,但是客戶操作系統(tǒng)不能直接訪問(wèn)實(shí)際機(jī)器內(nèi)存,。VMM負(fù)責(zé)映射客戶物理內(nèi)存到實(shí)際機(jī)器內(nèi)存,它通過(guò)影子頁(yè)表來(lái)加速映射,。如圖8所示,,VMM使用TLB硬件來(lái)映射虛擬內(nèi)存直接到機(jī)器內(nèi)存,從而避免了每次訪問(wèn)進(jìn)行兩次翻譯,。當(dāng)客戶操作系統(tǒng)更改了虛擬內(nèi)存到物理內(nèi)存的映射表,,VMM也會(huì)更新影子頁(yè)表來(lái)啟動(dòng)直接查詢。MMU虛擬化引入了虛擬化損耗,,第二代的硬件輔助虛擬化將支持內(nèi)存的虛擬化輔助,,從而大大降低因此而帶來(lái)的虛擬化損耗,讓內(nèi)存虛擬化更高效,。
3.  設(shè)備和I/O虛擬化
最后一個(gè)模塊是設(shè)備和I/O虛擬化,,也就是如何管理和路由物理設(shè)備和虛擬設(shè)備之間的I/O請(qǐng)求。
9. 設(shè)備和I/O虛擬化
基于軟件的I/O虛擬化和管理為設(shè)備管理帶來(lái)了新的特性和功能,,讓設(shè)備的管理更容易,。就拿網(wǎng)絡(luò)為例,通過(guò)虛擬網(wǎng)卡和交換機(jī)可以在一臺(tái)物理機(jī)上不同虛擬機(jī)之間建立虛擬網(wǎng)絡(luò),,而這不會(huì)在物理網(wǎng)絡(luò)上產(chǎn)生任何的流量,;網(wǎng)卡teaming允許多個(gè)物理網(wǎng)卡綁定成一個(gè)虛擬機(jī)網(wǎng)卡,提供了很好的容錯(cuò)能力,,同時(shí)保持了同一MAC地址,。I/O虛擬化的關(guān)鍵是保持虛擬化優(yōu)勢(shì)的同時(shí),盡量降低虛擬化給CPU造成的負(fù)擔(dān),。
Hypervisor虛擬化物理硬件,,為每臺(tái)虛擬機(jī)提供一套標(biāo)準(zhǔn)的虛擬設(shè)備,如圖9所示,。這些虛擬設(shè)備高效模擬常見(jiàn)的物理硬件,,將虛擬機(jī)的請(qǐng)求發(fā)送到物理硬件。該硬件標(biāo)準(zhǔn)化的過(guò)程也讓虛擬機(jī)標(biāo)準(zhǔn)化,,讓虛擬機(jī)更容易在各種平臺(tái)上自由移動(dòng),,而無(wú)需關(guān)心下面實(shí)際的物理硬件類(lèi)型。
4.  目前幾種x86虛擬化技術(shù)對(duì)比總結(jié)
VMware目前利用了以上三種的虛擬化技術(shù),,或者用在生產(chǎn)上,,或者用在開(kāi)發(fā)實(shí)驗(yàn)室,在性能和功能之間找到平衡。下表是三種虛擬路線的總結(jié)比較,,可以看到它們的優(yōu)劣,,從而可以取長(zhǎng)補(bǔ)短,對(duì)三種虛擬化路線進(jìn)行科學(xué)選擇,。
 
利用BT的全虛擬化
硬件輔助虛擬化
操作系統(tǒng)協(xié)助/半虛擬化
實(shí)現(xiàn)技術(shù)
BT和直接執(zhí)行
遇到特權(quán)指令轉(zhuǎn)到root模式執(zhí)行
Hypercall
客戶操作系統(tǒng)修改/兼容性
無(wú)需修改客戶操作系統(tǒng),,最佳兼容性
無(wú)需修改客戶操作系統(tǒng),最佳兼容性
客戶操作系統(tǒng)需要修改來(lái)支持hypercall,,因此它不能運(yùn)行在物理硬件本身或其他的hypervisor,,兼容性差,不支持Windows
性能
一般
目前很多情況下比BT性能差,,隨著時(shí)間推移會(huì)逐步改善
某些情況下好
應(yīng)用廠商
VMware/Microsoft/Parallels
VMware/Microsoft/Parallels/Xen
VMware/Xen
客戶操作系統(tǒng)獨(dú)立于hypervisor?
XenLinux只能運(yùn)行在Xenhypervisor
VMI-Linux可以支持各種hypervisor

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多