Xen介紹

 

Xen是一個虛擬機監視器(Virtual machine monitor),針對X86系列計算機設計,它能夠支持多個客戶計算機的同時運行,並且能夠達到較好的一個性能水平和資源隔離。Xen是一個開放源代碼軟件,在GNU General Public License 下發布。

基本功能:

Xen通過對LinuxNetBSDSolaris內核進行一些簡單修改,來提高系統虛擬化後的性能,經過修改後的內核就是Linux With Xen的一個操作系統,可以直接作爲一個操作系統來使用,也就是說Xen是直接運行於硬件之上的一個操作系統(Xen技術中所稱的domain 0dom0)),其他的被虛擬化的操作系統(domainU)運行於硬件之上的第二層(第一層是Xen-Linux,第二層就是客戶操作系統)。

可以被虛擬化的操作系統包括UNIX-like系列(經過修改可以作爲客戶操作系統),對於Microsoft Windows操作系統可以不經修改運行於Xen V3.0以上的版本,但是需要CPU支持IntelVT技術或者AMDV技術

技術特點:

       半虛擬化(Paravirtualization)或叫做超虛擬化技術,該技術需要客戶操作系統做一些修改。這種技術意味着客戶操作系統被修改之後,使用特殊的系統調用ABI,而不是調用原有的接口。通過這種超虛擬化技術,Xen能夠達到高性能。

       在硬件支持的情況下,允許不經修改的客戶操作系統運行。IntelVT技術和AMDV技術。

可控性:

功能特點:

虛擬機的性能更接近真實硬件環境)

在真實物理環境的平臺和虛擬平臺間自由切換)

在每個客戶虛擬機支持到 32個虛擬CPU,通過 VCPU熱插拔)

支持PAE指令集的x86/32, x86/64平臺

通過Intel 虛擬支持VT的支持來用虛擬原始操作系統(未經修改的)支持(包括Microsoft Windows

優秀的硬件支持.支持幾乎所有的Linux設備驅動

應用範圍:

服務器整合:在虛擬機範圍內,在一臺物理主機上安裝多個服務器, 用於演示及故障隔絕;

無硬件依賴:允許應用程序和操作系統對新硬件的移值測試;

多操作系統配置:以開發和測試爲目的,同時運行多個操作系統;

內核開發:在虛擬機的沙盒中,做內核的測試和調試,無需爲了測試而單獨架設一臺獨立的機器;

集羣運算:和單獨的管理每個物理主機相比較,VM級管理更加靈活,在負載均衡方面,更易於控制,和隔離;

爲客戶操作系統提供硬件技術支持:可以開發新的操作系統, 以得益於現存操作系統的廣泛硬件支持,比如Linux

侷限:

是否開源:

      

備註:

       http://jailtime.org/這個網站上提供了很多Linux操作系統的壓縮包,可以直接下載用於Xen的虛擬操作,這些壓縮包中已經添加了內核和一些基本的軟件包。

       Linux發行版Ubuntu8.10Server版中,最新加入了關於虛擬化技術,可以通過VM-Builder來很迅速的建立一個虛擬環境。

       如果使用IntelVT技術的CPUXen可以虛擬不經任何修改的操作系統,例如Windows


 

 

Xen VMM是一個劍橋大學的開源項目,它可以創建多個虛擬機。這些虛擬的客戶操作系統是一個修改過的Linux kernel2.4或者2.6,或者是一個修改過的NetBSDFreeBSD。運行於其上的應用程序保持原樣,不需要改變就可用。Sun公司同樣也正在開始基於Xen的項目--Solaris-on-Xen port.

全虛擬化是通過一些硬件模擬器,這其中的一個最爲流行的開源項目就是Bochs IA-32 Emulator另一個就是qemu.而對於硬件模擬器的一個明顯的劣勢就是它們的性能。

Xen項目(半虛擬化)所依賴的思想並不是新的。它可以達到較高的性能。但是通過處理器的支持,Xen可以不對操作系統進行修改就虛擬化。例如:intelVT技術以及AMDPacifica處理器。

20058月,XenSource一個開發基於Xen的虛擬化解決方案的商業公司,對外宣佈,利用IntelVT技術已經可以對windows進行虛擬化。

在這個領域中,Vmware是一個商業公司開發ESX Server,但是它並沒有基於Xen項目進行開發。Vmware2005年的8月宣稱它將開放它的ESX Server的源代碼,VMware Community Source

一個Vmware明顯的有點就是它並不需要對於客戶操作系統進行修改。VMWare的解決方案大概會比Xen慢一些,因爲它使用影子頁表,然而Xen使用的是直接和影子頁表。

Xen同樣對Intel的新技術IA-64留有開發接口,對於其他類型處理器的支持正在開發過程中。

 

 

1.       Xen採用由IBM VM/370發起的“whole machine”虛擬化技術,但是做了一定的修改,Xen並沒有完全的將底層機器進行虛擬化,而只是將客戶計算機進行部分的修改來與Xen的核心管理部件進行交互,因爲將一個操作系統移植到一個新的硬件平臺只需要修改的是依賴於硬件的代碼,其用戶級的API是不需要變化的。

除過導出虛擬化的CPU,內存,網絡以及塊設備,Xen還向外暴露一組控制接口,這些接口控制這些虛擬化過的資源是如何在不同的運行操作系統直接分配的。這組控制接口嚴格限制在特定的domain下,既dom0也就是Xen本身。

2.       虛擬架構:

在一個Xen/x86系統中,只有hypervisor超級管理程序運行在最高特權級(ring 0)。它能夠操作物理內存,負責對各個客戶操作系統分配內存。

在一個32位的x86系統中,客戶操作系統使用ring 1,ring 2 或者ring 3。這些分配嚴格限制了客戶操作系統可能訪問到Xen的地址空間。期望的是大多數的客戶操作系統都能夠運行在ring1下,而將其應用程序運行在ring 3下。

64位的操作系統下,不可能將超級管理程序與不可信的運行在ring1ring2下的客戶代碼相隔離。所以客戶操作只能被嚴格限制運行在ring3下。而客戶操作系統的核心是通過上下文轉換來與用戶應用程序隔離的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章