SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Xen 工作原理

 日期:2012-3-5

 版本:1.0

 译者:杨朝中
目录
执行摘要 ................................................................................................................................... 3


Xen 虚拟环境组件 .................................................................................................................... 3

   Xen Hypervisor ...................................................................................................................... 4

   Domain 0 ............................................................................................................................... 4

   Domain U ............................................................................................................................... 5

   Domain Management and Control........................................................................................ 7

       Xend ................................................................................................................................... 8

       Xm ...................................................................................................................................... 8

       Xenstored .......................................................................................................................... 8

       Libxencrl ............................................................................................................................ 8

       Qemu-dm........................................................................................................................... 9

       Xen Virtual Firmware ....................................................................................................... 10

Xen Operation ......................................................................................................................... 10

   Domain 0 to Domain U Communication ............................................................................. 10

Xen PCI Passthru ...................................................................................................................... 11

Glossary ................................................................................................................................... 12
执行摘要


本文档涵盖了 Xen Hypervisor 的高层架构概要视图,及其用于支持完整虚拟环境

的相关工具和应用。该架构文档基于 Xen 3.4 发行版,仅仅介绍了 Xen 的整体架

构。更多的完整架构描述,请参考 http://wiki.xensource.com/xenwiki/Books。




Xen 虚拟环境组件


Xen 虚拟环境由若干协同工作的组件组成,从用户角度看,其包括:
Xen Hypervisor
Domain0 Guest
    Domain Management and Control(Xen DM&C)
DomainU Guest(Dom U)
    PV Guest
    HVM Guest

这些组件的基本组织如下图:
Xen Hypervisor


Xen Hypervisor 是一个基本的软件抽象层,其位于硬件之上,操作系统之下。它

负责 cpu 的调度,并为每个运行于硬件之上的虚拟机划分内存空间。监视器(Xen

hypervisor)为虚拟机提供硬件抽象,与此同时,由于各个虚拟机分享共同的运

行环境,监视器还需要控制虚拟机的运行。监视器对网络、外存设备、视频、或

者其他可以在计算机系统中见到的 I/O 功能一无所知。




Domain 0


Domain 0 是一个虚拟机。它是修改过的 linux 内核,其运行在 Xen hypervisor 之

上,拥有访问物理 I/O 资源的特殊权限,并且和其他虚拟机(Domain U:PV and HVM

Guests)进行通信。需要指出一点,Domain 0 是唯一的。Xen 的完整虚拟环境的构

建要求 Domain 0 在其他虚拟机能够启动之前运行起来。


在 Domain 0 中,包含两个驱动:Network Backend Driver 和 Block Backend Driver。

这两个驱动可以支持来自于 Domain U 的网络与本地磁盘访问请求。Network
Backend Driver 与本地网络硬件直接通信,以此处理来自于 Domain U 所有虚拟机

访问网络设备的请求。Block Backend Driver 与本地存储设备进行通信,以此完成

来自于 Domain U 的磁盘数据读写请求。




Domain U


DomainU 没有直接访问物理硬件的权限,但 Domain 0 有。此外,DomainU 通常

被看作是没有权限的(DomainU 中的“U”来自于英文单词 unprivileged)。所有运

行在 Xen hypervisor 之上的平行虚拟化机器都被看作是 Domain U PV Guests。同

时,其操作系统为修改过的 linux,比如 Solaris,FreeBSD,以及其他 UNIX 操作系

统。所有运行于 Xen hypervisor 之上的完全虚拟化机器都被看作是 Domain U HVM

Guests。同时,其操作系统为标准的 windows 或者其他未作修改的操作系统。


Domain U PV Guest 虚拟机能够知晓自己没有直接访问硬件的权限,也能知道其
他虚拟机也运行在同一个物理机器上。与此相反的是,Domain U HVM 虚拟机并

不知道它正和其他虚拟机在同一个物理机器上分享处理器,也不知道其他虚拟机

正在运行。


Domain U PV Guest 虚拟机包含两个驱动:PV NetworkDriver 和 PV Block Driver,

其用于处理网络和磁盘访问。




Domain U HVM Guest 虚拟机虽然没有 PV drivers, Domain 0 却为它们启动
                                      但

了一个特殊的 Qemu-dm 镜像。Qemu-dm 支持 Domain U HVM Guest 对网络和

磁盘的访问请求。




Domain U HVM Guest 在初始化时必须尽可能地添加一个软件 Xen virtual

firmware,该软件用于模拟操作系统启动之前所需的 BIOS。更多有关 Xen virtual

firmware 的信息请参考后续章节。
Domain Management and Control


开源社区把一系列 linux 守护进程划分为域管理和控制工具。这些守护进程存在

于 Domain 0 虚拟机,它们用于支持整个虚拟环境的管理和控制。下面的图表展

示了 Domain 0 中的守护进程。通过这个图表,可以对整个架构有更清晰的理解。
Xend


Xend 守护进程是一个 Python 应用程序,它被看作 Xen 虚拟环境的系统管理器。

Xend 利用 Libxenctrl 获得对 Xen hypervisor 的访问请求。所有需要被 Xend 处理的

请求都通过一个 Xm 工具的 XML RPC 接口被发送到 Xend。



Xm


Xm 是一个命令行工具,它获取用户输入,并把这些输入的命令通过 XML RPC 传

输到 Xend。



Xenstored


Xenstored 守护进程维护一个信息注册表,这些信息涉及内存、Domain 0 与所有

其他 Domain U Guests 之间的事件通道链。Domain 0 虚拟机利用这个注册表来设

置与其他虚拟机之间的设备通道。
              (更多的细节信息,请参看 Domain 0 to Domain

U Communication 章节)



Libxencrl


Libxenctrl 是一个 C 程序库,它使得 Xend 可以通过 Domain 0 访问 Xen hypervisor。

privcmd 是 Domain 0 中有一个特殊的驱动,它将 Xend 的访问请求转发给

hypervisor。
Qemu-dm


每个运行在 Xen 虚拟环境中得 HVM Guest 虚拟机需要它们自己的 Qemu 守护进

程。这个工具处理所有来自于 Domain U HVM Guest 虚拟机的网络与磁盘访问请

求,使得完全虚拟化在 Xen 系统环境中得以实现。Qemu 需要访问网络和 I/O 设

备,所有它必须处于 Xen hypervisor 之外。正因为如此,Qemu 处于 Domain 0 虚

拟机中。


Stub-dm 是一个新工具。它使得 Xen 未来的版本不需要为么一个 Domain U HVM

运行 Qemu,而是为每个 Domain U HVM 提供一个可用的服务程序集。这个特性

在 Xen 3.2 版本中还不可使用,但目前已经是 Xen-unstable 版本的一部分。此外,

Xen 3.3 版本将会发布该特性。
Xen Virtual Firmware


Xen Virtual Firmware 是一个被嵌入到 Domain U HVM Guest 中得虚拟 BIOS,它使

操作系统接收其正常引导过程所需要的标准启动指令,以得到一个 PC 兼容的软

件环境。




Xen Operation


本章描述了并行虚拟化的 Domain U 虚拟机如何通过 Xen hypervisor 和 Domain 0

虚拟机完成与外部网络或存储设备的通信。




Domain 0 to Domain U Communication


较早一段时期, hypervisor 并不支持网络和磁盘访问请求。
       Xen                       因此,Domain U PV

Guest 必须通过 Xen hypervisor 与 Domain 0 通信以完成网络或磁盘访问请求。下

面的例子描述了 Domain U PV Guest 如何往本地磁盘写数据。


Domain U PV Guest 虚拟机中的 PV block driver 接收往磁盘写数据的请求,然后通

过 Xen hypervisor 将数据存放到本地内存中的某个适当的区域。需要指出的是,

该内存区域由该 Domain U PV Guest 虚拟机与 Domain 0 共享。在 Xen hypervisor

中,存在异步域间中断,位于 Domain 0 和 Domain U PV Guest 之间的事件通道允

许 Domain 0 和 Domain U PV Guest 可以通过该异步域间中断完成通信。Domain 0

会收到一个来自 Xen hypervisor 的中断请求,该中断请求会导致 PV Block Backend

Driver 访问本地系统内存并从 Domain U PV Guest 虚拟机的共享内存中读取适当
的数据块。然后,共享内存中的数据将被写到本地硬盘的某个特定位置。


下图中,Domain 0 和 Domain U PV Guest 之间的事件通道链接简要地展示了系统

工作原理。实际上,事件通道使用在 Xenstored 中注册的特殊中断处理程序,运

行在 Xen hypervisor 之上。这些特殊中断处理程序允许 Domain 0 和 Domain U PV

Guest 通过本地内存快速地共享信息。


下面的图标展示了之前所描述的系统业务。




Xen PCI Passthru


为了提高整体性能,减轻 Domain 0 的负担,Xen 设计了 PCI Passthru 这样一个新

特性。PCI Passthru 允许 Domain U Guest 拥有直接访问本地硬件的权限,而不是
通过 Domain 0 来访问硬件。下图描述了这个特性是如何工作的:




Domain U Guest 拥有直接同特殊硬件对话的权利,而不是之前那种使用 Frontend

和 Backend drivers 的方法。




Glossary

C: http://www.cprogramming.com/; a computer programming language

Daemons: http://en.wikipedia.org/wiki/Daemon_(computer_software); a program
running in the background rather than under direct control of a user

Driver: http://en.wikipedia.org/wiki/Device_driver; program allowing software to
interact with hardware

Full Virtualization: http://en.wikipedia.org/wiki/Full_virtualization; a virtual machine
not aware of its virtualization

Interrupt: http://en.wikipedia.org/wiki/Interrupt; signal from hardware to software
requesting a specific action in software

Kernel: http://en.wikipedia.org/wiki/Linux_kernel; the central component of a
computer operating system

Paravirtualized: http://en.wikipedia.org/wiki/Paravirtualization; virtual machine
running on a hypervisor that is aware of it being virtualized]
Python: http://www.python.org/; a dynamic object oriented programming language

ROM BIOS: http://en.wikipedia.org/wiki/BIOS; software instructions run on a
machine when turned on

XML PRC: http://www.xmlrpc.com/; method for an application to leverage another
application using HTTP for the remote procedure call and XML as the encoding

Mais conteúdo relacionado

Destaque

Xerrada informativa alumnes 4t eso
Xerrada informativa alumnes 4t esoXerrada informativa alumnes 4t eso
Xerrada informativa alumnes 4t esoinsargentona
 
Xerox and Autostore
Xerox and AutostoreXerox and Autostore
Xerox and AutostoreNSI LA
 
Xiao chi - Chinese Street Food CHIN300
Xiao chi - Chinese Street Food CHIN300 Xiao chi - Chinese Street Food CHIN300
Xiao chi - Chinese Street Food CHIN300 Yolanda Ma
 
Xl Au Contoh Lookup Gambar
Xl Au  Contoh Lookup GambarXl Au  Contoh Lookup Gambar
Xl Au Contoh Lookup Gambaraurino djamaris
 
Xoodax price protection2016
Xoodax price protection2016Xoodax price protection2016
Xoodax price protection2016xoodax
 
Xmas.2014.blog
Xmas.2014.blogXmas.2014.blog
Xmas.2014.blogJohn Wible
 
Xmas App Marketing Tips
Xmas App Marketing TipsXmas App Marketing Tips
Xmas App Marketing TipsComboApp, Inc
 
Xii bab 5 semester 2
Xii bab 5 semester 2Xii bab 5 semester 2
Xii bab 5 semester 2arman02091996
 
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynote
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynoteGerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynote
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynoteXeroAccounting
 
XDC Indonesia Company Profile 2014
XDC Indonesia Company Profile 2014XDC Indonesia Company Profile 2014
XDC Indonesia Company Profile 2014Stefanny Octavia
 

Destaque (17)

Xerrada informativa alumnes 4t eso
Xerrada informativa alumnes 4t esoXerrada informativa alumnes 4t eso
Xerrada informativa alumnes 4t eso
 
Xerrades escoles bressol
Xerrades escoles bressolXerrades escoles bressol
Xerrades escoles bressol
 
Xilografiapreu
XilografiapreuXilografiapreu
Xilografiapreu
 
Xlw b-auto-tensile-tester
Xlw b-auto-tensile-testerXlw b-auto-tensile-tester
Xlw b-auto-tensile-tester
 
Xerox and Autostore
Xerox and AutostoreXerox and Autostore
Xerox and Autostore
 
Xiao chi - Chinese Street Food CHIN300
Xiao chi - Chinese Street Food CHIN300 Xiao chi - Chinese Street Food CHIN300
Xiao chi - Chinese Street Food CHIN300
 
Xl Au Contoh Lookup Gambar
Xl Au  Contoh Lookup GambarXl Au  Contoh Lookup Gambar
Xl Au Contoh Lookup Gambar
 
XML Namespaces
XML NamespacesXML Namespaces
XML Namespaces
 
LR World X mas highlights 2014
LR World  X mas highlights 2014LR World  X mas highlights 2014
LR World X mas highlights 2014
 
Xenus dn
Xenus dnXenus dn
Xenus dn
 
Xoodax price protection2016
Xoodax price protection2016Xoodax price protection2016
Xoodax price protection2016
 
Xmas.2014.blog
Xmas.2014.blogXmas.2014.blog
Xmas.2014.blog
 
Xmas App Marketing Tips
Xmas App Marketing TipsXmas App Marketing Tips
Xmas App Marketing Tips
 
Xii bab 5 semester 2
Xii bab 5 semester 2Xii bab 5 semester 2
Xii bab 5 semester 2
 
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynote
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynoteGerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynote
Gerhard Vorster, Headwinds – Disruption is Real • Xerocon 2014 keynote
 
XDC Indonesia Company Profile 2014
XDC Indonesia Company Profile 2014XDC Indonesia Company Profile 2014
XDC Indonesia Company Profile 2014
 
Xet duyet nguyên lieu Quy trình xét duyệt đơn hàng nhập khẩu nguyên liệu làm ...
Xet duyet nguyên lieu Quy trình xét duyệt đơn hàng nhập khẩu nguyên liệu làm ...Xet duyet nguyên lieu Quy trình xét duyệt đơn hàng nhập khẩu nguyên liệu làm ...
Xet duyet nguyên lieu Quy trình xét duyệt đơn hàng nhập khẩu nguyên liệu làm ...
 

Semelhante a Xen工作原理

Bind9 chs
Bind9 chsBind9 chs
Bind9 chsTom Lee
 
soyo manual 8100 Vt6103 Ok
soyo manual 8100 Vt6103 Oksoyo manual 8100 Vt6103 Ok
soyo manual 8100 Vt6103 Okguest69f195
 
关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报博 孟
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversionYUCHENG HU
 
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制裝機安 Angelo
 
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...裝機安 Angelo
 
Php可调试团队开发环境配置
Php可调试团队开发环境配置Php可调试团队开发环境配置
Php可调试团队开发环境配置xinqi yang
 
Php可调试团队开发环境配置
Php可调试团队开发环境配置Php可调试团队开发环境配置
Php可调试团队开发环境配置wangkangluo1
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除5045033
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略Da Zhao
 
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...sugeladi
 
Private Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisPrivate Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisChris Hsiang
 
需求VMWARE架構下就是要建兩邊可以嗎?
需求VMWARE架構下就是要建兩邊可以嗎?需求VMWARE架構下就是要建兩邊可以嗎?
需求VMWARE架構下就是要建兩邊可以嗎?裝機安 Angelo
 
Xen Summit Asia2009 Gplhost Dtc Xen Zh
Xen Summit Asia2009 Gplhost Dtc Xen ZhXen Summit Asia2009 Gplhost Dtc Xen Zh
Xen Summit Asia2009 Gplhost Dtc Xen ZhThe Linux Foundation
 
Web性能测试指标参考v0.2
Web性能测试指标参考v0.2Web性能测试指标参考v0.2
Web性能测试指标参考v0.2beiyu95
 
Moodle 2.3 图文安装教程
Moodle 2.3 图文安装教程Moodle 2.3 图文安装教程
Moodle 2.3 图文安装教程YUCHENG HU
 
Dell EMC PowerStore: PowerStore Manager 概述
Dell EMC PowerStore: PowerStore Manager 概述Dell EMC PowerStore: PowerStore Manager 概述
Dell EMC PowerStore: PowerStore Manager 概述裝機安 Angelo
 

Semelhante a Xen工作原理 (20)

Bind9 chs
Bind9 chsBind9 chs
Bind9 chs
 
93 dn 2
93 dn 293 dn 2
93 dn 2
 
soyo manual 8100 Vt6103 Ok
soyo manual 8100 Vt6103 Oksoyo manual 8100 Vt6103 Ok
soyo manual 8100 Vt6103 Ok
 
关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报关于服务器虚拟化的测试汇报
关于服务器虚拟化的测试汇报
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversion
 
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制
【VM保護備份專題】Dell Power Protect Data Manager (PPDM) 詳解TSDM機制
 
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
HPE SimpliVity install mgmt guide 201907-01 (Taiwan-Chinese) ;HPE SimpliVity ...
 
Php可调试团队开发环境配置
Php可调试团队开发环境配置Php可调试团队开发环境配置
Php可调试团队开发环境配置
 
Php可调试团队开发环境配置
Php可调试团队开发环境配置Php可调试团队开发环境配置
Php可调试团队开发环境配置
 
深入研究 Windows 系統服務 效能調校與故障排除
深入研究 Windows 系統服務    效能調校與故障排除深入研究 Windows 系統服務    效能調校與故障排除
深入研究 Windows 系統服務 效能調校與故障排除
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
Lamp安全全攻略
Lamp安全全攻略Lamp安全全攻略
Lamp安全全攻略
 
Create AD
Create ADCreate AD
Create AD
 
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...
首先要感謝讀者長久以來的支持與愛護!這一系列書籍仍然採用我一貫的 ...
 
Private Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud AnalysisPrivate Cloud vs Public Cloud Analysis
Private Cloud vs Public Cloud Analysis
 
需求VMWARE架構下就是要建兩邊可以嗎?
需求VMWARE架構下就是要建兩邊可以嗎?需求VMWARE架構下就是要建兩邊可以嗎?
需求VMWARE架構下就是要建兩邊可以嗎?
 
Xen Summit Asia2009 Gplhost Dtc Xen Zh
Xen Summit Asia2009 Gplhost Dtc Xen ZhXen Summit Asia2009 Gplhost Dtc Xen Zh
Xen Summit Asia2009 Gplhost Dtc Xen Zh
 
Web性能测试指标参考v0.2
Web性能测试指标参考v0.2Web性能测试指标参考v0.2
Web性能测试指标参考v0.2
 
Moodle 2.3 图文安装教程
Moodle 2.3 图文安装教程Moodle 2.3 图文安装教程
Moodle 2.3 图文安装教程
 
Dell EMC PowerStore: PowerStore Manager 概述
Dell EMC PowerStore: PowerStore Manager 概述Dell EMC PowerStore: PowerStore Manager 概述
Dell EMC PowerStore: PowerStore Manager 概述
 

Xen工作原理

  • 1. Xen 工作原理 日期:2012-3-5 版本:1.0 译者:杨朝中
  • 2. 目录 执行摘要 ................................................................................................................................... 3 Xen 虚拟环境组件 .................................................................................................................... 3 Xen Hypervisor ...................................................................................................................... 4 Domain 0 ............................................................................................................................... 4 Domain U ............................................................................................................................... 5 Domain Management and Control........................................................................................ 7 Xend ................................................................................................................................... 8 Xm ...................................................................................................................................... 8 Xenstored .......................................................................................................................... 8 Libxencrl ............................................................................................................................ 8 Qemu-dm........................................................................................................................... 9 Xen Virtual Firmware ....................................................................................................... 10 Xen Operation ......................................................................................................................... 10 Domain 0 to Domain U Communication ............................................................................. 10 Xen PCI Passthru ...................................................................................................................... 11 Glossary ................................................................................................................................... 12
  • 3. 执行摘要 本文档涵盖了 Xen Hypervisor 的高层架构概要视图,及其用于支持完整虚拟环境 的相关工具和应用。该架构文档基于 Xen 3.4 发行版,仅仅介绍了 Xen 的整体架 构。更多的完整架构描述,请参考 http://wiki.xensource.com/xenwiki/Books。 Xen 虚拟环境组件 Xen 虚拟环境由若干协同工作的组件组成,从用户角度看,其包括: Xen Hypervisor Domain0 Guest Domain Management and Control(Xen DM&C) DomainU Guest(Dom U) PV Guest HVM Guest 这些组件的基本组织如下图:
  • 4. Xen Hypervisor Xen Hypervisor 是一个基本的软件抽象层,其位于硬件之上,操作系统之下。它 负责 cpu 的调度,并为每个运行于硬件之上的虚拟机划分内存空间。监视器(Xen hypervisor)为虚拟机提供硬件抽象,与此同时,由于各个虚拟机分享共同的运 行环境,监视器还需要控制虚拟机的运行。监视器对网络、外存设备、视频、或 者其他可以在计算机系统中见到的 I/O 功能一无所知。 Domain 0 Domain 0 是一个虚拟机。它是修改过的 linux 内核,其运行在 Xen hypervisor 之 上,拥有访问物理 I/O 资源的特殊权限,并且和其他虚拟机(Domain U:PV and HVM Guests)进行通信。需要指出一点,Domain 0 是唯一的。Xen 的完整虚拟环境的构 建要求 Domain 0 在其他虚拟机能够启动之前运行起来。 在 Domain 0 中,包含两个驱动:Network Backend Driver 和 Block Backend Driver。 这两个驱动可以支持来自于 Domain U 的网络与本地磁盘访问请求。Network
  • 5. Backend Driver 与本地网络硬件直接通信,以此处理来自于 Domain U 所有虚拟机 访问网络设备的请求。Block Backend Driver 与本地存储设备进行通信,以此完成 来自于 Domain U 的磁盘数据读写请求。 Domain U DomainU 没有直接访问物理硬件的权限,但 Domain 0 有。此外,DomainU 通常 被看作是没有权限的(DomainU 中的“U”来自于英文单词 unprivileged)。所有运 行在 Xen hypervisor 之上的平行虚拟化机器都被看作是 Domain U PV Guests。同 时,其操作系统为修改过的 linux,比如 Solaris,FreeBSD,以及其他 UNIX 操作系 统。所有运行于 Xen hypervisor 之上的完全虚拟化机器都被看作是 Domain U HVM Guests。同时,其操作系统为标准的 windows 或者其他未作修改的操作系统。 Domain U PV Guest 虚拟机能够知晓自己没有直接访问硬件的权限,也能知道其
  • 6. 他虚拟机也运行在同一个物理机器上。与此相反的是,Domain U HVM 虚拟机并 不知道它正和其他虚拟机在同一个物理机器上分享处理器,也不知道其他虚拟机 正在运行。 Domain U PV Guest 虚拟机包含两个驱动:PV NetworkDriver 和 PV Block Driver, 其用于处理网络和磁盘访问。 Domain U HVM Guest 虚拟机虽然没有 PV drivers, Domain 0 却为它们启动 但 了一个特殊的 Qemu-dm 镜像。Qemu-dm 支持 Domain U HVM Guest 对网络和 磁盘的访问请求。 Domain U HVM Guest 在初始化时必须尽可能地添加一个软件 Xen virtual firmware,该软件用于模拟操作系统启动之前所需的 BIOS。更多有关 Xen virtual firmware 的信息请参考后续章节。
  • 7. Domain Management and Control 开源社区把一系列 linux 守护进程划分为域管理和控制工具。这些守护进程存在 于 Domain 0 虚拟机,它们用于支持整个虚拟环境的管理和控制。下面的图表展 示了 Domain 0 中的守护进程。通过这个图表,可以对整个架构有更清晰的理解。
  • 8. Xend Xend 守护进程是一个 Python 应用程序,它被看作 Xen 虚拟环境的系统管理器。 Xend 利用 Libxenctrl 获得对 Xen hypervisor 的访问请求。所有需要被 Xend 处理的 请求都通过一个 Xm 工具的 XML RPC 接口被发送到 Xend。 Xm Xm 是一个命令行工具,它获取用户输入,并把这些输入的命令通过 XML RPC 传 输到 Xend。 Xenstored Xenstored 守护进程维护一个信息注册表,这些信息涉及内存、Domain 0 与所有 其他 Domain U Guests 之间的事件通道链。Domain 0 虚拟机利用这个注册表来设 置与其他虚拟机之间的设备通道。 (更多的细节信息,请参看 Domain 0 to Domain U Communication 章节) Libxencrl Libxenctrl 是一个 C 程序库,它使得 Xend 可以通过 Domain 0 访问 Xen hypervisor。 privcmd 是 Domain 0 中有一个特殊的驱动,它将 Xend 的访问请求转发给 hypervisor。
  • 9. Qemu-dm 每个运行在 Xen 虚拟环境中得 HVM Guest 虚拟机需要它们自己的 Qemu 守护进 程。这个工具处理所有来自于 Domain U HVM Guest 虚拟机的网络与磁盘访问请 求,使得完全虚拟化在 Xen 系统环境中得以实现。Qemu 需要访问网络和 I/O 设 备,所有它必须处于 Xen hypervisor 之外。正因为如此,Qemu 处于 Domain 0 虚 拟机中。 Stub-dm 是一个新工具。它使得 Xen 未来的版本不需要为么一个 Domain U HVM 运行 Qemu,而是为每个 Domain U HVM 提供一个可用的服务程序集。这个特性 在 Xen 3.2 版本中还不可使用,但目前已经是 Xen-unstable 版本的一部分。此外, Xen 3.3 版本将会发布该特性。
  • 10. Xen Virtual Firmware Xen Virtual Firmware 是一个被嵌入到 Domain U HVM Guest 中得虚拟 BIOS,它使 操作系统接收其正常引导过程所需要的标准启动指令,以得到一个 PC 兼容的软 件环境。 Xen Operation 本章描述了并行虚拟化的 Domain U 虚拟机如何通过 Xen hypervisor 和 Domain 0 虚拟机完成与外部网络或存储设备的通信。 Domain 0 to Domain U Communication 较早一段时期, hypervisor 并不支持网络和磁盘访问请求。 Xen 因此,Domain U PV Guest 必须通过 Xen hypervisor 与 Domain 0 通信以完成网络或磁盘访问请求。下 面的例子描述了 Domain U PV Guest 如何往本地磁盘写数据。 Domain U PV Guest 虚拟机中的 PV block driver 接收往磁盘写数据的请求,然后通 过 Xen hypervisor 将数据存放到本地内存中的某个适当的区域。需要指出的是, 该内存区域由该 Domain U PV Guest 虚拟机与 Domain 0 共享。在 Xen hypervisor 中,存在异步域间中断,位于 Domain 0 和 Domain U PV Guest 之间的事件通道允 许 Domain 0 和 Domain U PV Guest 可以通过该异步域间中断完成通信。Domain 0 会收到一个来自 Xen hypervisor 的中断请求,该中断请求会导致 PV Block Backend Driver 访问本地系统内存并从 Domain U PV Guest 虚拟机的共享内存中读取适当
  • 11. 的数据块。然后,共享内存中的数据将被写到本地硬盘的某个特定位置。 下图中,Domain 0 和 Domain U PV Guest 之间的事件通道链接简要地展示了系统 工作原理。实际上,事件通道使用在 Xenstored 中注册的特殊中断处理程序,运 行在 Xen hypervisor 之上。这些特殊中断处理程序允许 Domain 0 和 Domain U PV Guest 通过本地内存快速地共享信息。 下面的图标展示了之前所描述的系统业务。 Xen PCI Passthru 为了提高整体性能,减轻 Domain 0 的负担,Xen 设计了 PCI Passthru 这样一个新 特性。PCI Passthru 允许 Domain U Guest 拥有直接访问本地硬件的权限,而不是
  • 12. 通过 Domain 0 来访问硬件。下图描述了这个特性是如何工作的: Domain U Guest 拥有直接同特殊硬件对话的权利,而不是之前那种使用 Frontend 和 Backend drivers 的方法。 Glossary C: http://www.cprogramming.com/; a computer programming language Daemons: http://en.wikipedia.org/wiki/Daemon_(computer_software); a program running in the background rather than under direct control of a user Driver: http://en.wikipedia.org/wiki/Device_driver; program allowing software to interact with hardware Full Virtualization: http://en.wikipedia.org/wiki/Full_virtualization; a virtual machine not aware of its virtualization Interrupt: http://en.wikipedia.org/wiki/Interrupt; signal from hardware to software requesting a specific action in software Kernel: http://en.wikipedia.org/wiki/Linux_kernel; the central component of a computer operating system Paravirtualized: http://en.wikipedia.org/wiki/Paravirtualization; virtual machine running on a hypervisor that is aware of it being virtualized]
  • 13. Python: http://www.python.org/; a dynamic object oriented programming language ROM BIOS: http://en.wikipedia.org/wiki/BIOS; software instructions run on a machine when turned on XML PRC: http://www.xmlrpc.com/; method for an application to leverage another application using HTTP for the remote procedure call and XML as the encoding