小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

開(kāi)源,很好!

概要

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

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

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



Xen Hypervisor

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


Domain 0

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

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



Domain U

運(yùn)行在Xen Hypervisor上的所有半虛擬化(paravirtualized)虛擬機(jī)被稱為“Domain U PV Guests”,其上運(yùn)行著被修改過(guò)內(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)核知道它自己不能直接訪問(wèn)物理硬件,因?yàn)樗烙衅渌奶摂M機(jī)也運(yùn)行在同一個(gè)環(huán)境中。而Domain U HVM Guests的內(nèi)核不知道他正在和其他虛擬機(jī)共享一個(gè)處理環(huán)境,它認(rèn)為它運(yùn)轉(zhuǎn)在物理硬件上。

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



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

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



域(Domain)管理和控制

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

Xend

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



Xm

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

Xenstored

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

Libxenctrl

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



Qemu-dm

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

Xen虛擬化固件

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

Xen操作

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

Domain 0與Domain U的通信

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

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

見(jiàn)下圖。



術(shù)語(yǔ)表

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/

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多