Virtualization:Xen and xVM Server


作者:蒋海鸥
学校:华中科技大学


近年来随着计算机硬件的高速发展,虚拟化技术已经成为计算机业的焦点之一。虚拟化技术从实现途径上来说,由两种典型的派别:泛虚拟化(para-virtualization)和完全虚拟化(HVM)。前者通过修改客户操作系统来配合虚拟化的环境,从而达到较高的性能,但也付出了兼容性和维护性方面的限制,而Xen就是泛虚拟化技术的杰出代表;而完全虚拟化技术常常需要得到处理器级别的硬件支持(如Intel VTAMD-V处理器),或者通过对客户机执行代码进行动态二进制代码转换,然后可以无需修改的直接运行一个已有的操作系统,使得虚拟化技术的应用更加容易。完全虚拟化的代表产品有VMware, VirtualPC, QEMU等。事实上,当前一些主流的虚拟化产品都同时支持这两种模式。下图为nativepara-virtualizationHVM三种情况运行级别的对比:

 

 

三种情况运行级别的对比

 

 

根据虚拟机管理程序在系统中所处的位置,虚拟化技术又可以分为如下几种,如下图如示:

 

三种虚拟化体系结构


   Xen作为虚拟机技术的前沿代表,在同一台物理计算机上,使用户不仅可以同时搭建几个不同Linux系统的服务器,而且如果拥有一台先进的支持硬件虚拟技术(VT)的计算机,还可以利用Xen同时运行多个WindowsSun xVM Server正是Sun基于Xen开发的一个数据中心级别的企业级的hypervisor产品,可以支持WindowsLinuxSolaris等不同操作系统,并支持Sun以及其他公司的x86/x64系统架构,允许用户在一台机器上虚拟多个操作系统,以对服务器进行整合。此外,Sun xVM Server还有一套完善的监控和管理机制。

 

 

1. 什么是VMM(hypervisor)

虚拟软件的核心是一个虚拟机监视器VMMvirtual machine monitor),有时也被称作“hypervisor”。一个hypervisor是一个非常底层的虚拟化程序,可以让多个OS共享一个单一的硬件处理器——无论是不同类型的操作系统,还是同一操作系统的多个实例(instance)。表面上看来,每个操作系统独占处理器、内存及 其他资源。但实际上是由hypervisor控制着真实的处理器等资源,并根据需求轮流向操作系统分配资源。由于一个操作系统经常是用于运行某个或某组特定的应用,而使用hypervisor可以在单一服务器上运行多个操作系统及应用,因此可以全面地减少硬件成本。

 

 

2. 什么是Xen

Xen 是由剑桥大学开发的一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序 ”,是为x86架构的机器而设计的。Xen 可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少.


什么是虚拟机呢?可能大家知道VMWARE吧,是的,Xen就是类似这样的程序,比如我们可以在Fedora 上虚拟安装和使用SlackwareDebianGentoo ... ... 等发行版。因为Xen是基于内核的,相对VMWARE 来说,它占用的系统资源也就是VMWARE的百分之几左右。Xen是不是更有优势呢?只有您实践了才知道。

 

 

Xen 3.0体系结构


 

   基于Xen的操作系统,有多个层,最底层和最高特权层是 Xen程序本身。Xen 可以管理多个客户操作系统,每个操作系统都能在一个安全的虚拟机中实现。在Xen的术语中,DomainXen控制,以高效的利用CPU的物理资源。每个客户操作系统可以管理它自身的应用。这种管理包括每个程序在规定时间内的响应到执行,是通过Xen调度到虚拟机中实现。

Xen启动运行后,第一个虚拟的操作系统,就是Xen本身,我们通过xm list,会发现有一个Domain 0的虚拟机。Domain 0 目前主要由Linux来充当,是其它虚拟主机的管理者和控制者,可以构建其它的更多的Domain(称为DomU) ,并管理虚拟设备。它还能执行管理任务,比如虚拟机的体眠、唤醒和迁移其它虚拟机。一个被称为xend的服务器进程通过domain 0来管理系统,Xend 负责管理众多的虚拟主机,并且提供进入这些系统的控制台。命令经一个命令行的工具通过一个HTTP的接口被传送到xend


 

3. xVM Server

xVM Server是基于Xen开发的,可以支持WindowsLinuxSolaris等不同操作系统,但有特权的Domain 0是由Solaris充当的。所以,xVM Server能充分利用Solaris的一些优秀特性,如ZFSDtrace、可预测性自我恢复等。xVM ServerXen最大的区别就是它强大的监控和管理机制,可以通过一个AJAX制作的Web管理工具对各虚拟机进行远程管理,同时它也能被xVM Ops Center等虚拟化管理产品进行管理,这也使得xVM Server在竞争激烈的虚拟化市场中拥有不错的前景。