日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Xen體系結(jié)構(gòu)

 linchq 2010-07-19
在研究和學(xué)習(xí)虛擬化技術(shù)的過程中看了很多文檔,很多是翻譯成中文的,對那些無私的為大家服務(wù)的貢獻(xiàn)者很是敬佩,同時也觸發(fā)了我為大家做些貢獻(xiàn)的愿望。事實上翻譯和整理的過程也是自己進(jìn)一步學(xué)習(xí)的過程。由于自己的水平有限,翻譯過程中的錯誤歡迎大家批評指正。

開源,很好!

概要

本文檔描述的是Xen hypervisor的宏觀體系結(jié)構(gòu)、輔助工具以及構(gòu)建一個完整虛擬化環(huán)境所需的應(yīng)用程序。本文的綜合介紹了基于Xen3.2(2008年1月)的Xen體系結(jié)構(gòu),更詳盡的描述請參考Xen books。

Xen組成要素
一個Xen虛擬化環(huán)境由以下相互配合的元素構(gòu)成:

Xen Hypervisor
Domain 0
Domain管理和控制工具
Domain U PV客戶系統(tǒng)
Domain U HVM客戶系統(tǒng)
下面的圖形是對這些要素基本組織的描述



Xen Hypervisor

Xen Hypervisor是一個介于硬件和操作系統(tǒng)之間的軟件層,它負(fù)責(zé)在各虛擬機(jī)之間進(jìn)行CPU調(diào)度和內(nèi)存分配(partitioning)。Xen Hypervisor不僅抽象出硬件層,同時控制虛擬機(jī)的執(zhí)行,因為這些虛擬機(jī)共享同一個處理環(huán)境。Xen Hypervisor不會處理網(wǎng)絡(luò)、存儲設(shè)備、視頻以及其他I/O。


Domain 0

Domain 0是一個修改過的Linux kernel,是唯一運(yùn)行在Xen Hypervisor之上的虛擬機(jī),它擁有訪問物理I/O資源的權(quán)限,同時和系統(tǒng)上運(yùn)行的其他虛擬機(jī)進(jìn)行交互。Domain 0需要在其它Domain啟動之前啟動。

Domain 0中包含兩個驅(qū)動:Network Backend Driver和Block Backend Driver,分別負(fù)責(zé)處理來自Domain U的網(wǎng)絡(luò)和本地磁盤請求。Network Backend Driver直接和本地網(wǎng)絡(luò)硬件進(jìn)行通信以處理所有來自Domain U上客戶操作系統(tǒng)的網(wǎng)絡(luò)請求。Block Backend Driver和本地存儲設(shè)備進(jìn)行通信以處理來自Domain U的讀寫請求。



Domain U

運(yùn)行在Xen Hypervisor上的所有半虛擬化(paravirtualized)虛擬機(jī)被稱為“Domain U PV Guests”,其上運(yùn)行著被修改過內(nèi)核的操作系統(tǒng),如Linux、Solaris、FreeBSD等其它UNIX操作系統(tǒng)。所有的全虛擬化虛擬機(jī)被稱為“Domain U HVM Guests”,其上運(yùn)行著不用修改內(nèi)核的操作系統(tǒng),如Windows等。

Domain U PV Guests的內(nèi)核知道它自己不能直接訪問物理硬件,因為他知道有其他的虛擬機(jī)也運(yùn)行在同一個環(huán)境中。而Domain U HVM Guests的內(nèi)核不知道他正在和其他虛擬機(jī)共享一個處理環(huán)境,它認(rèn)為它運(yùn)轉(zhuǎn)在物理硬件上。

Domain U PV Guests包含兩個驅(qū)動:“PV Network Driver”和“PV Block Driver”。



Domain U HVM Guests虛擬機(jī)內(nèi)沒有PV Driver,而是在Domain 0里為每一個HVM Guest啟動一個特殊守護(hù)進(jìn)程:Qemu-dm,由Qemu-dm負(fù)責(zé)客戶操作系統(tǒng)的網(wǎng)絡(luò)和磁盤請求。

Domain U HVM Guests必須進(jìn)行初始化為某類機(jī)器,所以要在Domain U上附加一個軟件:Xen虛擬固件,來模擬BIOS。關(guān)于Xen虛擬化固件的更多信息請參考后面的內(nèi)容。



域(Domain)管理和控制

開源社區(qū)提供了一系列的域管理和控制工具(Linux守護(hù)程序)。這些服務(wù)運(yùn)行在Domain 0,他們支持所有對虛擬化環(huán)境的管理和控制,下面的幾個圖中為了更清楚的說明將這些守護(hù)進(jìn)程畫在了Domain 0的外部。

Xend

Xend是一個python應(yīng)用程序,它是Xen虛擬化環(huán)境的系統(tǒng)管理工具。它通過對libxenctrl庫的調(diào)用實現(xiàn)對Xen Hypervisor的請求。Xend處理的所有請求都是通過Xm工具提供的XML RPC接口提交的,見下圖。



Xm

Xm是一個命令行工具,它接受用戶的輸入并把指令通過XML RPC傳輸給Xend。

Xenstored

Xenstored維護(hù)一個信息檔案,包括內(nèi)存和建立在Domain 0與Domain U之間的事件通道。Domain 0通過改變這個檔案來設(shè)置和其他虛擬機(jī)的設(shè)備通道。(具體信息請參考Domain 0和Domain U的通信)

Libxenctrl

Libxenctrl是一個C語言的庫,它為Xend提供與Xen Hypervisor通信的能力。privcmd是Domain 0中的一個特殊驅(qū)動,它負(fù)責(zé)提交請求到hypervisor。



Qemu-dm

每一個運(yùn)行在Xen虛擬化環(huán)境下的HVM客戶系統(tǒng)都有他自己的Qemu守護(hù)進(jìn)程。該進(jìn)程處理來自HVM客戶系統(tǒng)的所有網(wǎng)絡(luò)和磁盤請求,以支持Xen虛擬化環(huán)境下的全虛擬化。Qemu必須存在于Xen hypervisor之外,因為它需要訪問網(wǎng)絡(luò)和I/O設(shè)備,所以他運(yùn)行在Domain 0 。
現(xiàn)在已經(jīng)有一個新的工具來代替Qemu對HVM客戶系統(tǒng)的支持,這就是Stub-dm。它是為Xen的將來版本開發(fā)的,Xen3.2還不具備該特性,可能發(fā)布在Xen3.3中。

Xen虛擬化固件

Xen虛擬化固件是一個虛擬的BIOS,它被加載到每一個Domain U HVM Guest以提供標(biāo)準(zhǔn)的啟動指令,保證客戶操作系統(tǒng)在正常啟動過程中能得到標(biāo)準(zhǔn)的PC兼容的軟件環(huán)境。

Xen操作

這部分描述一個半虛擬化的Domain U如何通過Xen hypervisor、Domain 0 與外部的網(wǎng)絡(luò)以及存儲進(jìn)行通信的。

Domain 0與Domain U的通信

前面講到過,Xen Hypervisor不會支持網(wǎng)絡(luò)和磁盤請求的,因此一個PV客戶系統(tǒng)必須通過和Xen Hypervisor、Domain 0通信,來實現(xiàn)網(wǎng)絡(luò)和磁盤請求。下面這個例子描述了PV客戶系統(tǒng)如何將一個數(shù)據(jù)寫到本地硬盤。

PV客戶系統(tǒng)的開設(shè)備驅(qū)動程序接收到一個寫請求,并且通過Xen Hypervisor寫數(shù)據(jù)到適當(dāng)?shù)谋镜貎?nèi)存中,該內(nèi)存是和Domain 0共享的。在Domain 0 和Domain U之間存在一個事件通道(event channel),通過該通道二者進(jìn)行異步的域間中斷通信。Domain 0會接收到一個來自Xen Hypervisor的中斷,觸發(fā)PV Block Backend Driver訪問上述的內(nèi)存,讀取來自PV客戶系統(tǒng)的數(shù)據(jù),然后將這些數(shù)據(jù)寫入硬件磁盤。
下圖中事件通道表示為連接Domain 0與Domain U的一個區(qū)域,這是系統(tǒng)工作流的一個簡化。事實上事件通道運(yùn)行在Xen Hypervisor,通過Xenstored中的特定中斷實現(xiàn),提供Domain 0與Domain U之間的快速共享內(nèi)存。

見下圖。



術(shù)語表

C: http://www./; a computer programming language
Daemons: http://en./wiki/Daemon_(computer_software); a program running in the background rather than under direct control of a user
Driver: http://en./wiki/Device_driver; program allowing software to interact with hardware
Full Virtualization: http://en./wiki/Full_virtualization; a virtual machine not aware of its virtualization
Interrupt: http://en./wiki/Interrupt; signal from hardware to software requesting a specific action in software
Kernel: http://en./wiki/Linux_kernel; the central component of a computer operating system
Paravirtualized: http://en./wiki/Paravirtualization; virtual machine running on a hypervisor that is aware of it being virtualized]
Python: http://www./; a dynamic object oriented programming language
ROM BIOS: http://en./wiki/BIOS; software instructions run on a machine when turned on
XML PRC: http://www./; method for an application to leverage another application using HTTP for the remote procedure call and XML as the encoding

譯者:BiaBear
博客:http://www./386879

原文地址:http:///news/2009/12/01/%E7%BF%BB%E8%AF%91%EF%BC%9Axen%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多