Vmware與虛擬化技術(shù)_第1頁
Vmware與虛擬化技術(shù)_第2頁
Vmware與虛擬化技術(shù)_第3頁
Vmware與虛擬化技術(shù)_第4頁
Vmware與虛擬化技術(shù)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Vmware與虛擬化技術(shù)previewVmware的I/O虛擬化

Vmware

的CPU虛擬化

Vmware內(nèi)存虛擬化

Vmware簡(jiǎn)介

虛擬化技術(shù)概述

CompanyLogoVmm簡(jiǎn)介Vmm就是虛擬機(jī)監(jiān)視器(VirtualMachineMonitor),它是建立在虛擬機(jī)和硬件中間的一層監(jiān)控軟件,負(fù)責(zé)對(duì)硬件資源以及各個(gè)虛擬機(jī)之間進(jìn)行協(xié)調(diào),分配和管理。CompanyLogoVmm的發(fā)展歷程2005年1990年代1980-1990年代1960年代虛擬化技術(shù)重新流行發(fā)掘vmm新特性硬件價(jià)格降低,vmm不受重視vmm產(chǎn)生,復(fù)用硬件資源CompanyLogoVMM的特性1所有在VMM上運(yùn)行的程序必須像在原始硬件上運(yùn)行的效果一樣,要高效2大多數(shù)的指令必須直接在真實(shí)的處理器上運(yùn)行,而不需要解釋每條指令3VMM必須完全控制硬件,任何VM不能穿越VMM直接控制硬件CompanyLogoVMM三種模型根據(jù)VMM在物理系統(tǒng)中實(shí)現(xiàn)位置不同,主要分為三種監(jiān)控模式:就是說VMM完全安裝在裸機(jī)上,擁有最高控制權(quán),客戶os處于低特權(quán)級(jí)別,VMM可以干涉客戶os的任何行為。主機(jī)模式:虛擬機(jī)安裝在主機(jī)os上,這樣不用修改原來的操作系統(tǒng),并且主機(jī)os可以提供良好的設(shè)備驅(qū)動(dòng),但是這種方式性能比較低下。比如vmware就是使用了主機(jī)模式?;旌夏J剑航Y(jié)合了以上兩種模式的好處,性能比主機(jī)模式好,也可以利用原有os

的設(shè)備驅(qū)動(dòng),比如XEN就是混合模式的虛擬機(jī)的例子。CompanyLogo虛擬化技術(shù)分類虛擬化技術(shù)主要分為完全虛擬化和半虛擬化。完全虛擬化方法:不需要修改客戶os,可以同時(shí)支持不同的os。完全虛擬化方法的代表是vmware?,F(xiàn)在Inter的Vanderpool技術(shù),AMD的Pacifica技術(shù)已經(jīng)對(duì)完全虛擬化方法提供硬件支持。半虛擬化方法:需要修改客戶os來適應(yīng)新的體系結(jié)構(gòu),產(chǎn)生對(duì)現(xiàn)有os

的兼容問題,不過由于半虛擬化方法可以修改客戶機(jī)的體系結(jié)構(gòu),這樣總體性能還是可以提高。半虛擬化方法的代表是XEN。CompanyLogoVmware簡(jiǎn)介VMWare是一款很流行的運(yùn)行在IA-32平臺(tái)上的虛擬機(jī)軟件。其特點(diǎn)如下:vmm模型:屬于主機(jī)os模型,Vmware的虛擬機(jī)安裝在主機(jī)os上,由主機(jī)os來提供良好的設(shè)備驅(qū)動(dòng)。虛擬化方法:

Vmware采用完全虛擬化技術(shù),所以不需要修改原來的操作系統(tǒng),而且可以同時(shí)支持不同的操作系統(tǒng)。主機(jī)和vmm切換開銷大,速度比較慢。CompanyLogoVmware內(nèi)存虛擬技術(shù)VMWare主要采用的內(nèi)存虛擬技術(shù):Balloon技術(shù)基于內(nèi)容的頁共享技術(shù)空閑內(nèi)存繳稅技術(shù)(idlememorytax)動(dòng)態(tài)再分配策略CompanyLogoBalloon技術(shù)VMM控制每個(gè)vm得到多少內(nèi)存,也必須周期性的換出頁面到磁盤,來回收內(nèi)存。但客戶os可能比vmm有更好的調(diào)度算法。VMware的ESXserver使用了一種氣球“balloon”進(jìn)程。氣球(balloon)模塊作為內(nèi)核服務(wù)程序加載到guestos中,通過一個(gè)私有的信道與ESX服務(wù)器通信。如果Vmm要回收內(nèi)存,則詢問balloon進(jìn)程,對(duì)其加壓,使得氣球膨脹。在氣球膨脹過程中,客戶os感受到了自己內(nèi)存的壓力,很專業(yè)地選出適合換出的頁面,并且告訴balloon,這個(gè)balloon再告訴vmm換出哪些頁面。氣球放氣的過程與氣球充氣過程相反,guestos

給氣球放氣,通知Vmm要重新分配內(nèi)存。CompanyLogo基于內(nèi)容的頁共享技術(shù)

現(xiàn)代os和app都比較大。運(yùn)行多個(gè)vm,意味著要使用可觀的內(nèi)存來存儲(chǔ)不同vm中相似的冗余的多份代碼、數(shù)據(jù)的拷貝。vmware使用基于內(nèi)容的頁面共享來支持服務(wù)器。Vmm追蹤物理頁面的內(nèi)容,如果發(fā)現(xiàn)它們是相同的,那么vmm修改vm的影子頁表來指向一個(gè)唯一的拷貝。這樣Vmm就可以降低冗余度,節(jié)約出內(nèi)存。因?yàn)槭褂昧薱opyonwrite的頁面共享模式,VMM在相應(yīng)頁面內(nèi)容發(fā)生改變之前,才為每個(gè)VM拷貝一份。極大節(jié)約了物理內(nèi)存的使用。試想,一個(gè)x86計(jì)算機(jī)上運(yùn)行了30臺(tái)使用window2000的vm,但內(nèi)存里面卻只有一份windows內(nèi)核,將大大節(jié)約物理內(nèi)存。CompanyLogo空閑內(nèi)存繳稅技術(shù)ESX服務(wù)器通過引進(jìn)空閑內(nèi)存繳稅技術(shù)(idlememorytax)解決內(nèi)存管理。該技術(shù)基本思想就是不活動(dòng)的客戶程序的空閑頁面所收的稅比活動(dòng)的客戶程序的空閑頁要多,當(dāng)內(nèi)存感到壓力時(shí),優(yōu)先回收不活動(dòng)的客戶程序的頁。稅率規(guī)定了可能從客戶程序回收的空閑頁面的最大部分。CompanyLogo空閑內(nèi)存繳稅技術(shù)有一個(gè)公式來計(jì)算每個(gè)頁共享的比率這里的S是表示共享的頁,P是表示分配的頁,f是表示活動(dòng)的部分??臻e頁的開銷是,其中,稅率控制回收空閑內(nèi)存需要的策略。極端情況下,=0說明這個(gè)策略純粹基于共享的隔離。表示所有的客戶程序的空閑內(nèi)存都可以回收。CompanyLogo空閑內(nèi)存繳稅技術(shù)ESX服務(wù)器的空閑頁面稅率參數(shù)默認(rèn)配置為75%。這樣允許回收系統(tǒng)中大多數(shù)空閑內(nèi)存,而且也能提供一些緩沖,預(yù)防突發(fā)的大量請(qǐng)求分配內(nèi)存的狀況,屏蔽系統(tǒng)回收的延遲。CompanyLogo動(dòng)態(tài)再分配策略大多數(shù)操作系統(tǒng)想要保持一個(gè)最小的空閑內(nèi)存的數(shù)量。例如BSDUnix通常當(dāng)內(nèi)存小于5%時(shí)開始回收內(nèi)存,直到內(nèi)存達(dá)到7%才停止回收內(nèi)存。ESX服務(wù)器也是這樣實(shí)現(xiàn)的,但它使用了4級(jí)回收入口來反應(yīng)不同的回收狀態(tài):High:對(duì)應(yīng)6%,high狀態(tài)下,空閑內(nèi)存充足,沒有執(zhí)行回收的動(dòng)作。Soft:對(duì)應(yīng)4%,soft狀態(tài),系統(tǒng)使用氣球技術(shù)回收內(nèi)存,僅在氣球機(jī)制回收力度不夠才使用頁面調(diào)度。Hard:對(duì)應(yīng)2%,hard狀態(tài)下,系統(tǒng)主要依靠強(qiáng)制的頁面調(diào)度來回收頁面。Low:對(duì)應(yīng)1%,一旦空閑頁面的數(shù)量達(dá)到low標(biāo)準(zhǔn),系統(tǒng)通過頁面調(diào)度持續(xù)的對(duì)內(nèi)存進(jìn)行回收,并且阻塞所有正在執(zhí)行著的且超過它們內(nèi)存分配數(shù)量的VM。CompanyLogoVmware的CPU虛擬化直接執(zhí)行技術(shù):直接執(zhí)行技術(shù)中,vm的特權(quán)指令和非特權(quán)指令都在CPU的非特權(quán)模式下,而VMM在特權(quán)模式下運(yùn)行。當(dāng)vm試著執(zhí)行特權(quán)操作時(shí),CPU捕捉異常(trap)到vmm,并使vm中特權(quán)操作與vmm控制時(shí)一樣。這種方式讓vmm得到對(duì)CPU的最大控制。例子:vmm處理一條關(guān)中斷指令。如果讓客戶os可執(zhí)行關(guān)中斷是不安全的,如果這樣vmm就無法重新獲得CPU控制權(quán)。所以其做法是,vmm捕捉客戶的關(guān)中斷操作,并且記錄相應(yīng)的vm已經(jīng)關(guān)中斷。Vmm只是延時(shí)發(fā)送中斷結(jié)果,直到特定的vm開中斷為止。CompanyLogoVmware的CPU虛擬化二進(jìn)制翻譯:二進(jìn)制翻譯(BT)是從一種指令集到另一種指令集的自動(dòng)代碼轉(zhuǎn)換。二進(jìn)制翻譯可以分為動(dòng)態(tài)翻譯和靜態(tài)翻譯,可以僅翻譯用戶級(jí)代碼也可以進(jìn)行整系統(tǒng)翻譯。靜態(tài)翻譯是在脫機(jī)過程中進(jìn)行翻譯工作,然后在運(yùn)行時(shí)執(zhí)行翻譯過的代碼。動(dòng)態(tài)二進(jìn)制翻譯是在程序運(yùn)行期間把代碼片段從舊指令集翻譯到目標(biāo)指令集。CompanyLogoVmware的CPU虛擬化二進(jìn)制翻譯,輸入的是二進(jìn)制的代碼,翻譯出來的是二進(jìn)制指令的子集,翻譯有一部分是將特權(quán)指令轉(zhuǎn)換為非特權(quán)指令,BT在翻譯的同時(shí),還使用了一些虛擬的寄存器,供修改指令的時(shí)候使用,可以讓一些訪問特殊寄存器的指令來訪問虛擬寄存器。BT首先根據(jù)二進(jìn)制代碼生成IR(intermediaterepresentation)對(duì)象,然后將這些IR分為翻譯單元TU,12個(gè)指令一個(gè)單元,如果有控制流語句,比如跳轉(zhuǎn)語句等等也作為劃分的依據(jù)。接著就對(duì)這樣一個(gè)單位進(jìn)行翻譯,生成CCF(compiledcodefragment),BT翻譯出來的代碼放在TC(translationcache)中替代原來的代碼執(zhí)行。執(zhí)行相同的代碼,比如循環(huán)等,一段CCF可以重復(fù)使用。CompanyLogoVmware的CPU虛擬化Vmware的做法:直接執(zhí)行、快速二進(jìn)制翻譯結(jié)合:為了提供一種快速、兼容的x86虛擬化,Vmware研發(fā)出一種新的虛擬化技術(shù),這種技術(shù)將傳統(tǒng)的直接執(zhí)行、快速二進(jìn)制翻譯結(jié)合。在現(xiàn)代os中,運(yùn)行普通app程序的處理器模式都是可虛擬化的,于是可以使用直接執(zhí)行方式。一個(gè)二進(jìn)制翻譯器可以運(yùn)行不可虛擬化的特權(quán)模式,使用不可虛擬化的x86指令集合。這種vm可以與硬件匹配,也可以保持軟件兼容性。CompanyLogoVmware的CPU虛擬化VMware的二進(jìn)制譯碼源、目標(biāo)指令集集合相同,比較簡(jiǎn)單。在二進(jìn)制翻譯器的控制下運(yùn)行特權(quán)指令代碼。譯碼器把內(nèi)核碼翻譯成相似的塊,使得翻譯后的模塊直接在CPU上運(yùn)行,代替敏感的指令。二進(jìn)制翻譯系統(tǒng)把已經(jīng)翻譯的塊緩存到tracecache,這樣在后續(xù)執(zhí)行時(shí)就無需重復(fù)翻譯了。二進(jìn)制翻譯雖然要花費(fèi)代價(jià),但是其工作負(fù)荷可以忽略。譯碼器只運(yùn)行代碼的一個(gè)片段,當(dāng)tracecache熱身后,其執(zhí)行速度與直接執(zhí)行幾乎無異。二進(jìn)制翻譯可以減少trap捕捉帶來的開銷,是直接執(zhí)行的優(yōu)化方法。CompanyLogoVmware的I/O虛擬化面臨問題:現(xiàn)在的計(jì)算環(huán)境中有越來越多種類的I/O設(shè)備,I/O虛擬變得更難。X86環(huán)境支持不同廠商的不同程序接口,vmm需要與很多種類的設(shè)備通信,這個(gè)編寫工作很難。比如圖形子系統(tǒng)和現(xiàn)代服務(wù)器的網(wǎng)絡(luò)接口都對(duì)性能要求很高,這對(duì)虛擬化的效率要求就更高了。CompanyLogoVmware的I/O虛擬化Vmware的策略:VMWare針對(duì)這個(gè)問題把VMM的層次搭在一個(gè)操作系統(tǒng)之上,使用宿主機(jī)os結(jié)構(gòu),宿主機(jī)os一般是windows或者linux,一般I/O都有這些os

的驅(qū)動(dòng)。對(duì)于I/O的訪問就可以使用宿主操作系統(tǒng)中的驅(qū)動(dòng)。如果VM上的操作系統(tǒng)要讀取虛擬磁盤,VMM就將它轉(zhuǎn)化為宿主操作系統(tǒng)中讀取文件的工作,如果VM上的操作系統(tǒng)要對(duì)顯示設(shè)備進(jìn)行訪問,就由操作系統(tǒng)對(duì)于VM的虛擬顯示設(shè)備進(jìn)行操作。

CompanyLogoVmware的I/O虛擬化主機(jī)os模式的好處:容易安裝,就像裝個(gè)應(yīng)用程序一樣很容易從宿主機(jī)上得到對(duì)I/O設(shè)備的支持還可以使用宿主機(jī)上的調(diào)度,資源管理等服務(wù)主機(jī)os模式的缺點(diǎn):效率太低,虛擬機(jī)對(duì)I/O的訪問必須先傳給宿主機(jī),然后還要通過宿主機(jī)的軟件層。宿主機(jī)的資源管理通常不會(huì)提供操作隔離和服務(wù)保證

CompanyLogoVmware的I/O虛擬化VMM世界和主機(jī)世界:Vmware的主機(jī)vm模式把虛擬軟件分為2個(gè)部分,一部分是vmm,用于虛擬CPU,另外一部分是一個(gè)使用os進(jìn)行設(shè)備支持的app以及一個(gè)置于os內(nèi)部的VMdriver來作為app和os的中介。CompanyLogoVmware的I/O虛擬化VMM世界和主機(jī)世界CompanyLogoVmware的I/O虛擬化VMM世界和主機(jī)世界:Vmwareworkstation象普通程序一樣安裝在os中(宿主),運(yùn)行時(shí)候,vmapp部分使用vmdriver把自己加載到主os中,從而建立起直接運(yùn)行在硬件上的特權(quán)VMM。于是,物理處理器要么運(yùn)行在vmm世界,要么運(yùn)行在主機(jī)世界,而vmdriver控制2個(gè)世界的轉(zhuǎn)換。在vmm和主機(jī)世界之間切換,包括保存和重啟CPU上所有的用戶和系統(tǒng)狀態(tài)。在這種體系結(jié)構(gòu)中,當(dāng)客戶os進(jìn)行I/O操作時(shí),VMM截取這個(gè)操作,并且切換到主機(jī)世界,而不是直接訪問本地硬件。在主機(jī)世界,vmapp會(huì)代替vm使用適當(dāng)?shù)南到y(tǒng)調(diào)用以實(shí)現(xiàn)I/O操作。比如,客戶os請(qǐng)求磁盤扇區(qū)的操作,可能轉(zhuǎn)換為主機(jī)os中的read()調(diào)用來獲取相應(yīng)數(shù)據(jù)。CompanyLogoVmware的I/O虛擬化VmDriver

:VMWare并不完全在應(yīng)用程序空間運(yùn)行,它安裝一個(gè)操作系統(tǒng)驅(qū)動(dòng)VMDriver,這樣可以很容易地訪問設(shè)備。Vmware的Vm安裝在主機(jī)os上,VMdriver作為驅(qū)動(dòng)保證它能更快訪問設(shè)備。在網(wǎng)絡(luò)接口的實(shí)現(xiàn),VMDriver將物理網(wǎng)卡置為混雜模式,Vmware通過VmDriver創(chuàng)建一種虛擬以太網(wǎng)橋,收取所有的網(wǎng)絡(luò)包,VmDriver分析所有的包,并且分發(fā)給每個(gè)相應(yīng)的虛擬機(jī)。Vmdriver在虛擬網(wǎng)橋中可以實(shí)現(xiàn)NAT(網(wǎng)絡(luò)地址翻譯),這樣每個(gè)vm都以為自己有獨(dú)立的IP。CompanyLogoVmware的I/O虛擬化虛擬化I/O設(shè)備為了虛擬化I/O設(shè)備,vmm必須截獲所有的客戶os的I/O操作。在PC機(jī)上,這些訪問是通過特權(quán)的IA-32IN和OUT指令完成的。這些指令被VMM捕捉,并且在vmm或者vmapp中被相關(guān)軟件模擬。任何與物理I/O硬件交互的行為都交給vmapp來處理,vmm也可能處理那些不與硬件交互的訪問。要提供完全的硬件虛擬比較困難,所以VMWare提供一個(gè)通用的系統(tǒng)虛擬,PS/2鍵盤,PS/2鼠標(biāo),軟驅(qū),IDE控制器,ATAPI光驅(qū),Soundblaster

聲卡,串口,并口,一個(gè)標(biāo)準(zhǔn)顯卡和一些網(wǎng)卡。提供一個(gè)通用的硬件虛擬大大簡(jiǎn)化了VMWare的實(shí)現(xiàn)。少量的虛擬設(shè)備可以減輕I/O虛擬化的工作量。在主機(jī)體系結(jié)構(gòu)下虛擬化I/O設(shè)備的開銷主要來自vmm和主機(jī)世界的切換,另外還來自處理與硬件通信的特權(quán)指令。對(duì)于持續(xù)高吞吐量和低延遲的設(shè)備,這些開銷非常顯著。而對(duì)于鍵盤等設(shè)備,基本沒有影響。CompanyLogoVmware的I/O虛擬化虛擬網(wǎng)卡:虛擬網(wǎng)卡在客戶os看來是功能齊全的PCI以太網(wǎng)控制器,有它自己的MAC地址。虛擬的網(wǎng)卡用2種方式與主機(jī)相連,一是它可以被橋接到與物理網(wǎng)卡相同的物理網(wǎng)絡(luò),或者它可以被連接到一個(gè)建立在主機(jī)上的虛擬網(wǎng)絡(luò)。這2種情況下的連接都是通過VMNetdriver(被加載到主機(jī)os里面的一種驅(qū)動(dòng))實(shí)現(xiàn)的。嚴(yán)格來說,被橋接到物理網(wǎng)卡的虛擬網(wǎng)卡其實(shí)是真實(shí)的以太網(wǎng)橋。它的包都帶有自己的MAC地址,被發(fā)送。VMNetdriver把被橋接的物理網(wǎng)卡設(shè)置為混合模式,這

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論