Xen是半虛擬化,須要修改操做系統內核。Vmware是徹底虛擬化。ios
XEN的系統架構:網絡
Xen Hypervisor:架構
(1) 負責在各個虛擬機之間進行CPU調度和內存分配。dom
(2) 抽象出虛擬機的硬件,並控制各個VM的執行。異步
(3) Xen Hypervisor不會處理網絡、存儲、視頻及其餘I/O。函數
Guest Domains/Virtual Machines/Domain U:工具
非特權domain,在Xen中運行的一個虛擬機實例,不直接訪問硬件。VM相互隔離,運行本身的操做系統和應用。Xen 的guest徹底從硬件隔離,沒有特權來訪問硬件或IO。性能
客戶機類型:操作系統
(1) Domain U PV Guests:運行在 Xen Hypervisor上的全部半虛擬化虛擬機。VM上運行的是被修改內核的操做系統。Eg:Linux。命令行
PV Guest有兩個驅動:PV網絡驅動、PV Block驅動。
(2) Domain U HVM Guest:全部的徹底虛擬化虛擬機或硬件輔助的虛擬化(Intel VT)。Eg:Windows。Xen 使用Qemu來仿真PC硬件。全虛擬化客戶機不須要任何內核支持。全虛擬化客戶機要比半虛擬化客戶機慢,由於須要仿真。
在Domain 0中爲每一個HVM客戶機啓動一個特殊的守護進程——Qemu-dm。Qemu-dm支持HVM客戶機對於網絡和磁盤訪問請求。
(3) PVH(PV in an HVM Container):
PV客戶機爲boot和I/O使用PV驅動,使用HW虛擬化擴展。??
Domain 0:
(1) 擁有訪問物理I/O資源的權限;
(2) 和系統上運行的其餘VM交互;
(3) 須要在其餘domain啓動以前啓動。
Domain 0有兩個驅動:
(1)Network Backend Driver:處理來自網絡的請求。處理全部來自於DomainU虛擬機的請求的本地聯網硬件。
(2)Block Backend Driver:處理本地磁盤請求。處理基於Domain U需求的本地存儲磁盤讀寫數據。
Domain的管理和控制:
有一系列用於虛擬環境管理和控制的守護進程(daemons)在domain0虛擬機中。
1.Xend:
Xend守護進程是一個Python應用,Xen環境的系統管理器。支持libxenctrl庫,來提出Xen Hypervisor的請求。全部的請求被處理,由XM工具經過一個XML RPC接口,由Xend提交給Domain0。(All requests processed by the Xend are delivered to it via an XML RPC interface by the Xm tool)
2.Xm:一個命令行工具,用戶給用戶輸入,而且由XML PRC傳到Xend。
3.Xenstored:
在domain0和全部Domain U客戶機之間維護一個包含內存和事件通道連接的記錄。
4.Libxeenctrl:是一個提供給Xend的經過Domain0與Xen Hypervisor通訊能力的C庫。
5.Qemu-dm:
每一個HVM客戶機運行在一個須要它本身Qemu守護進程的Xen環境。在一個全虛擬化機器的Xen環境中,這個工具用來處理全部的來自於Domain U HVM客戶的網絡和磁盤請求。Qemu須要訪問網絡和I/O,所以必須存在於Xen Hypervisor外,創建於Domain0中。
新版Xen中,有個新的工具——Stub-dm,爲每一個Domain U HVM客戶機刪除了Qemu,取而代之,它爲每一個Domain U HVM客戶提供一組服務。
6.Xen虛擬固件:
是一個虛擬的BIOS,插入到每一個domain U HVM客戶機中,保證操做系統接收全部標準啓動指令,在一般的引導啓動期間提供一個標準的PC兼容軟件環境。
Toolstack和控制檯:
Toolstack:Domain 0包括一個控制棧,容許用戶管理虛擬機建立、銷燬和配置。Toolstack經過命令行控制檯、圖形接口或cloud orchestration stack(如openstack或cloudstack)做爲接口驅動。
Xen運行帶有不少不一樣的toolstack,每一個toolstack利用一個運行不一樣工具的API。
Xen操做:
半虛擬化狀況下,Domaiin U經過Xen Hypervisor和Domain0與外部網絡或存儲通訊,以完成一個網絡或磁盤請求。
(1) 事件通道:是一個在Domain0到Domain U PV客戶機的直接鏈路。
(2) 事件通道經過註冊在Xenstored中的帶有特殊中斷的Xen Hypervisor運行,Domain 0和Domain U PV客戶機二者訪問本地內存來快速共享信息。
改善全部的性能,而且下降負載; PCI Passthru,容許Domain U客戶機直接訪問本地硬件,沒使用Domain U進行硬件訪問。