?

淺談虛擬化工作原理

2009-12-17 08:40虛擬化
網絡與信息 2009年12期
關鍵詞:底層指令虛擬化

虛擬化概念很早就已出現。簡單來說,虛擬化就是使用某些程序,并使其看起來類似于其他程序的過程。

將這個概念應用到計算機系統中可以讓不同用戶看到不同的單個系統(例如:一臺計算機可以同時運行Linux和Microsoft Win-dows)。這通常稱為全虛擬化(full virtualization)。

虛擬化也可以使用更加復雜的格式,其中單個計算機看上去具有多個架構(對于一個用戶來說,它是一個標準的X86平臺:對于另外一個用戶來說,它是IBM Power PC平臺)。這種虛擬化形式通常被稱為硬件仿真。

最后,更加簡單的一種虛擬化是操作系統虛擬化,其中一臺計算機可以運行相同類型的多個操作系統。這種虛擬化可以將一個操作系統的多個服務器隔離開來(這意味著全都必須使用相同類型和版本的操作系統)。

一、虛擬化的工作原理

虛擬化解決方案的底部是要進行虛擬化的機器。這臺機器可能直接支持虛擬化,也可能不會直接支持虛擬化,那么就需要系統管理程序層的支持。系統管理程序,或稱為VMM,可以看作是平臺硬件和操作系統的抽象化。在某些情況中,這個系統管理程序就是一個操作系統。此時,它就稱為主機操作系統。

系統管理程序之上是客戶機操作系統,也稱為虛擬機(vM)。這些VM都是一些相互隔離的操作系統,將底層硬件平臺視為自己所有。但是實際上,是系統管理程序為它們制造了這種假象。

目前使用虛擬化解決方案的問題是:并非所有硬件都可以很好地支持虛擬化。較老的x86處理器根據執行范圍對特定指令會產生不同結果。這就產生了一個問題,因為系統管理程序應該只能在一個最受保護的范圍中執行。由于這個原因,諸如VMWare之類的虛擬化解決方案會提前掃描要執行的代碼,從而將這些指令替換為一些陷阱指令(trap tnstruction),這樣系統管理程序就可以正確地處理它們。Xen可以支持一種協作的虛擬化方法,它不需要任何修改,因為客戶機知道自己正在進行虛擬化,并已經進行了修改。KVM會簡單地忽略這個問題,如果您希望進行虛擬化,就強制必須在更新的硬件上運行。

二、虛擬化的類型

實現虛擬化的方法不止一種。實際上,有幾種方法都可以通過不同層次的抽象來實現相同的結果。本文將介紹Linux中常用的幾種虛擬化方法,以及它們相應的優缺點。業界有時會使用不同的術語來描述相同的虛擬化方法。本文中使用的是最常用的術語,同時給出了其他術語以供參考。1硬件仿真毫無疑問,最復雜的虛擬化實現技術就是硬件仿真。在這種方法中,可以在宿主系統上創建一個硬件VM來仿真所想要的硬件

正如您所能預見的一樣,使用硬件仿真的主要問題是速度會非常慢。由于每條指令都必須在底層硬件上進行仿真,因此速度減慢100倍的情況也并不稀奇。若要實現高度保真的仿真,包括周期精度、所仿真的CPU管道以及緩存行為,實際速度差距甚至可能會達到1000倍之多。

硬件仿真也有自己的優點。例如:使用硬件仿真,您可以在一個ARM處理器主機上運行為PowerPC設計的操作系統,而不需要任何修改。您甚至可以運行多個虛擬機,每個虛擬機仿真一個不同的處理器。2完全虛擬化完全虛擬化(full virtualization),也稱為原始虛擬化,是另外一種虛擬化方法。這種模型使用一個虛擬機,它在客戶操作系統和原始硬件之間進行協調?!皡f調”在這里是一個關鍵,因為VMM在客戶操作系統和裸硬件之間提供協調。特定受保護的指令必須被捕獲下來并在hypervisor中進行處理,因為這些底層硬件并不由操作系統所擁有。而是由操作系統通過hypervisor共享。

雖然完全虛擬化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因為中間經過了hypervisor的協調過程。完全虛擬化的最大優點是操作系統無需任何修改就可以直接運行。唯一的限制是操作系統必須要支持底層硬件(例如PowerPC)。

3超虛擬化

超虛擬化(paravirtualizatlon)是另外一種流行的虛擬化技術,它與完全虛擬化有一些類似。這種方法使用了一個hypervisor來實現對底層硬件的共享訪問,還將與虛擬化有關的代碼集成到了操作系統本身中。這種方法不再需要重新編譯或捕獲特權指令,因為操作系統本身在虛擬化進程中會相互緊密協作。

正如前面介紹的一樣,超虛擬化技術需要為hypervisor修改客戶操作系統,這是它的一個缺點。但是超虛擬化提供了與未經虛擬化的系統相接近的性能。與完全虛擬化類似,超虛擬化技術可以同時支持多個不同的操作系統。4操作系統級的虛擬化我們要介紹的最后一種技術是操作系統級的虛擬化,它使用的技術與前面所介紹的有所不同。這種技術在操作系統本身之上實現服務器的虛擬化。這種方法支持單個操作系統,并可以將獨立的服務器相互簡單地隔離開來。

操作系統級的虛擬化要求對操作系統的內核進行一些修改,但是其優點是可以獲得原始性能。

猜你喜歡
底層指令虛擬化
一樣,不一樣
《單一形狀固定循環指令G90車外圓仿真》教案設計
農民建筑工
新機研制中總裝裝配指令策劃研究
寫給厭學的你:不讀書,換來的是一生的底層!家長也讀讀!
“底層文學”向何處去?
略論“底層”
用戶怎樣選擇虛擬化解決方案
太空第一人
別再誤會客戶端虛擬化了
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合