Vmware與虛擬化技術_第1頁
Vmware與虛擬化技術_第2頁
Vmware與虛擬化技術_第3頁
Vmware與虛擬化技術_第4頁
Vmware與虛擬化技術_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Vmware與虛擬化技術previewVmware的I/O虛擬化

Vmware

的CPU虛擬化

Vmware內存虛擬化

Vmware簡介

虛擬化技術概述

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

的設備驅動,比如XEN就是混合模式的虛擬機的例子。CompanyLogo虛擬化技術分類虛擬化技術主要分為完全虛擬化和半虛擬化。完全虛擬化方法:不需要修改客戶os,可以同時支持不同的os。完全虛擬化方法的代表是vmware。現在Inter的Vanderpool技術,AMD的Pacifica技術已經對完全虛擬化方法提供硬件支持。半虛擬化方法:需要修改客戶os來適應新的體系結構,產生對現有os

的兼容問題,不過由于半虛擬化方法可以修改客戶機的體系結構,這樣總體性能還是可以提高。半虛擬化方法的代表是XEN。CompanyLogoVmware簡介VMWare是一款很流行的運行在IA-32平臺上的虛擬機軟件。其特點如下:vmm模型:屬于主機os模型,Vmware的虛擬機安裝在主機os上,由主機os來提供良好的設備驅動。虛擬化方法:

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

給氣球放氣,通知Vmm要重新分配內存。CompanyLogo基于內容的頁共享技術

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

的驅動。對于I/O的訪問就可以使用宿主操作系統中的驅動。如果VM上的操作系統要讀取虛擬磁盤,VMM就將它轉化為宿主操作系統中讀取文件的工作,如果VM上的操作系統要對顯示設備進行訪問,就由操作系統對于VM的虛擬顯示設備進行操作。

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

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

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

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

溫馨提示

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

評論

0/150

提交評論