Xen架構介紹

參考:

1

http://wiki.xensource.com/xenwiki/XenArchitecture?action=AttachFile&do=get&target=Xen+Architecture_Q1+2008.pdf

 

該文檔對Xen Hypervisor(管理程序)和其相關的工具以及所有支撐一個虛擬化環境所必需的應用程序做了一個較高層的,對於架構的綜述。

Xen Components

一個Xen虛擬環境包括幾個重要組成部分:

Xen Hypervisor

Domain 0

Domain Management and ControlXen DM&C

Domain UDom UPV Guest

Domain UDom UHVM Guest

下圖描述了這幾部分之間的關係:



 Xen Hypervisor

Xen hypervisor是對這個軟件的最基本、最底層的抽象層。它主要負責針對運行在該硬件設備之上的多個虛擬機的CPU輪轉,內存劃分的工作。Hypervisor不僅僅對底層硬件設備進行了抽象,而且同時控制着虛擬機的執行。它不負責聯網、外存、顯示以及任何其他IO功能。

Domain 0

Domain 0一個修改過的Linxu kernel,一個運行在Xen hypervisor之上的獨特的虛擬機,它可以控制物理IO資源,並且同時與其他運行於該平臺上的虛擬機進行交互Domain UPV and HVM Guests)。所有的Xen虛擬環境都需要一個運行着的Domain 0來啓動其他的虛擬機。

Domain 0包括了兩個驅動,來支持來自於其他虛擬機的網絡和本地磁盤請求。(見下圖);Network Backend DriverBlock Backend DriverNB Driver直接與本地網絡硬件進行交互,來處理所有來自於Domain U的虛擬機請求。BB Driver直接與本地磁盤進行交互,基於Domain U的請求來從驅動器讀寫數據。



 Domain U

所有的運行於Xen hypervisor之上的半虛擬機(Paravirtualization),都叫做Domain U PV Guests,他們(PV Guests)運行的是修改後的Linux OSSolaris FreeBSD和其他UNIX OS。所有運行於Xen hypervisor之上的全虛擬機都是叫做Domain U HVM Guests,並且可以運行標準的Windows或者任何沒有修改過的操作系統。

Domain U PV Guests知道不能直接訪問硬件,並且知道在本地機器上運行的其他虛擬機。Domain U HVM Guests不知道它在分享處理器時間以及其他虛擬機的存在。

PV Guest包含有兩個針對網絡和磁盤訪問的驅動,PV Network DriverPV Block Driver



 HVM Guest沒有PV驅動安裝在虛擬機上,但是針對每一個啓動的HVM Guest都有一個特殊的daemon---- Qemu-dmQemu-dm支持HVM Guests進行網絡互聯和磁盤訪問請求。

HVM Guests必須初始化,以便於軟件能夠添加到HVM GuestsXen Virtual firmware來模擬BIOS來啓動操作系統。(??The Domain U HVM Guest must initialize as it would on a typical machine so software is added to the Domain U HVM GuestXen virtual firmware, to simulate the BIOS an operating system would expect on startup.)。



 域管理和控制

很多的Linux daemons都被開源社區定義爲域管理和控制的。這些服務支持對整個虛擬環境的管理和控制,存在於Domain 0的虛擬機中。

Xend

Xend daemon是一個python程序,它被認爲是Xen環境的系統管理員。它利用libxenctrl庫來發起對Xen hypervisor的請求。所有由Xend所處理的請求都是通過一個XML RPC接口,這些RPC請求來自於Xm工具。



 

Xm

一個命令行工具,它獲取用戶輸入,通過XML RPC傳遞給Xend

Xenstored

Xenstored daemon 維護一個註冊信息,這些信息包括了內存和事件管道(event channel),其將Domain 0 與所有其他的Domain U連接起來。Domain 0 虛擬機利用這個註冊信息來設置與其他虛擬機的通信管道。

Libxenctrl

Libxenctrl是一個C函數庫,它提供給XendXen hypervisor進行交互的能力,通過Domain 0.Domain 0 中的一個特殊驅動,privcmd將這些請求發送給hypervisor

 

 

 Qemu-dm

每一個HVM Guest都需要一個Qemu daemon。這個工具處理所有從HVM Guest發出的聯網和磁盤請求Qemu必須存在於Xen hypervisor的外面,因爲它需要訪問網絡和IO,因此它存在於Domain 0

Xen Virtual Firmware

Xen Virtual Firmware是一個虛擬的BIOS,它被插入到每一個Domain U HVM Guest中,來確保操作系統收到所有標準的啓動指令。

Xen Operation

Domain 0 Domain U交互

Xen hypervisor是不支持網絡或者平請求的,因此一個Domain U PV Guest必須通過xen hypervisorDomain 0通信來完成一個網絡或磁盤請求。

下圖中的事件管道是Domain 0 Domain U之間的一個直接連接。事實上,事件管道貫穿Xen hypervisor,並且已經在Xenstored註冊了具體的中斷,允許Domain 0 Domain UPV Guest通過本地內存快速的共享信息。


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