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通过本地内存快速的共享信息。


### XEN 架构概述 Xen 是一种开源的虚拟机监控器(Hypervisor),最初设计用于解决 x86 架构上的虚拟化问题。它的主要目标是在单个物理机器上允许多个操作系统实例高效共存,同时保持良好的隔离性性能[^4]。 #### Xen 的基本架构 Xen 架构分为两层:底层是 Hypervisor 层,负责管理调度硬件资源;上层则是 Domain 层,包含多个虚拟机实例(称为 Domains)。其中,Domain0 是一个特殊的虚拟机,拥有对硬件设备的直接访问权限,并承担管理其他虚拟机的任务。其余的虚拟机被称为 DomainU,它们通过 Domain0 或者 Xen 提供的接口间接访问硬件资源。 #### 工作原理 Xen 采用了半虚拟化技术(Paravirtualization)以及全虚拟化技术(Full Virtualization)相结合的方式支持不同类型的客户操作系统。 - **半虚拟化**:在这种模式下,客户操作系统需要经过修改才能运行于 Xen 上。这种方式减少了因模拟特权指令而导致的开销,从而提高了性能[^4]。 - **全虚拟化**:对于未被修改过的操作系统(如 Windows),Xen 利用了硬件辅助虚拟化特性(Intel VT-x AMD-V)来实现完全兼容的支持[^3]。 #### 主要特点 1. **高效的资源共享机制** - Xen 设计了一套精巧的消息传递协议共享页表机制,使得各个域之间可以安全有效地交换数据,同时最小化上下文切换带来的额外负担。 2. **强大的隔离能力** - 每个 domain 都有自己的独立地址空间,即使某个 domain 出现崩溃也不会影响到其他 domains 正常运作[^3]。 3. **灵活的网络配置选项** - 支持桥接、NAT等多种联网方式,便于构建复杂的虚拟网络拓扑结构[^3]。 4. **广泛的社区支持与商业解决方案** - 尽管 Xen 开始作为一个研究项目诞生,但它现在已经成长为一个成熟的工业级产品,得到了众多厂商技术爱好者的青睐。 ```bash # 安装 xen-tools 工具包以便创建新的 guest VMs sudo apt-get install xen-utils-common python-xenapi xe-toolstack-install ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值