Xen体系结构之二

Xm

Xm是一个命令行工具,它接受用户的输入并把指令通过XML RPC传输给Xend

Xenstored

Xenstored维护一个信息档案,包括内存和建立在Domain 0Domain U之间的事件通道。Domain 0通过改变这个档案来设置和其他虚拟机的设备通道。(具体信息请参考Domain 0Domain U的通信)

Libxenctrl

Libxenctrl是一个C语言的库,它为Xend提供与Xen Hypervisor通信的能力。privcmdDomain 0中的一个特殊驱动,它负责提交请求到hypervisor

Xen体系结构之二

Qemu-dm

每一个运行在Xen虚拟化环境下的HVM客户系统都有他自己的Qemu守护进程。该进程处理来自HVM客户系统的所有网络和磁盘请求,以支持Xen虚拟化环境下的全虚拟化。Qemu必须存在于Xen hypervisor之外,因为它需要访问网络和I/O设备,所以他运行在Domain 0

现在已经有一个新的工具来代替QemuHVM客户系统的支持,这就是Stub-dm。它是为Xen的将来版本开发的,Xen3.2还不具备该特性,可能发布在Xen3.3中。

Xen虚拟化固件

Xen虚拟化固件是一个虚拟的BIOS,它被加载到每一个Domain U HVM Guest以提供标准的启动指令,保证客户操作系统在正常启动过程中能得到标准的PC兼容的软件环境。

Xen操作

这部分描述一个半虚拟化的Domain U如何通过Xen hypervisorDomain 0 与外部的网络以及存储进行通信的。

Domain 0Domain U的通信

前面讲到过,Xen Hypervisor不会支持网络和磁盘请求的,因此一个PV客户系统必须通过和Xen HypervisorDomain 0通信,来实现网络和磁盘请求。下面这个例子描述了PV客户系统如何将一个数据写到本地硬盘。

PV客户系统的开设备驱动程序接收到一个写请求,并且通过Xen Hypervisor写数据到适当的本地内存中,该内存是和Domain 0共享的。在Domain 0 Domain U之间存在一个事件通道(event channel),通过该通道二者进行异步的域间中断通信。Domain 0会接收到一个来自Xen Hypervisor的中断,触发PV Block Backend Driver访问上述的内存,读取来自PV客户系统的数据,然后将这些数据写入硬件磁盘。

下图中事件通道表示为连接Domain 0Domain U的一个区域,这是系统工作流的一个简化。事实上事件通道运行在Xen Hypervisor,通过Xenstored中的特定中断实现,提供Domain 0Domain U之间的快速共享内存。

见下图。

Xen体系结构之二

术语表

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

你可能感兴趣的:(Xen体系结构之二)