一、Xen 起源
Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个Open Source项目,目前稳定版本为Xen3.0,主要目的是为了建立更多的虚拟机器。XenSource 的创始人Ian Pratt表示,Xen在2002年前诞生于英国的剑桥大学,这家新创公司有意把Xen虚拟功能变成标准的计算机功能。「我们第一部是在Linux系统上普及化。」他说。Xen这类能将一台计算机划分为多个不同分割区的方法依赖一种被称为虚拟化(virtualization)的概念,它们使软件能够仿真真实的硬件来作执行。在VMware中,这一基础被称作是虚拟机器(virtual machine)。 VMware和Xen之间的差异点在于:前者完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen则使用了被称为「paravirtualization」的技术,Pratt表示,它的效能更快,但需要对操作系统进行适当的修改。不过较高阶的软件并不需经过修正,VMware 和Xen 之间的差异点在于:VMware 完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen则使用了被称为「Paravirtualizatio」的技术,它的效能更快。
2005年12月Xen开发组发布了Xen3.0,这是第一款支持芯片辅助技术的免费hypervisor软件。有了VT-x或AMD-V的硬件支持,Xen3.0能支持任何没修改过的操作系统。XEN 3.0所采用的虚拟技术为半虚拟化(Paravirtualization),与VMware所采用的完全虚拟化的差异,在于对底层硬件的控制效率接近实机操作,包括中断控制(IRQ)等,以及等同于实体处理器的运作效能,但也因此对硬件的支持度并不高。由于半虚拟化(Paravirtualization)技术需要对操作系统进行适当的修改,所以目前Xen 只能够在一些Linux-based 的系统上运作,也陆续受到一些信息大厂的支持,Xen并不是第一个提出半虚拟化的软件,但执行Xen 时,消秏系统资源非常少,大约占3%,所以Xen可算是技术上的突破。半虚拟化必须修改系统的内核,不过如果处理器能支持虚拟化,所就内核就无需异动了,例如Intel 的VT 和AMD的Pacifica 处理器都将包括这种支持。AMD 的CPU 只有Opteron 支持AMD-V 技术,而INTEL则有Intel Core2 Duo 及Xeon 系列才支持VT 技术。
二、Xen支持的操作系统
主机操作系统即(Host Operating System)在物理计算机(宿主机)上运行的操作系统,在它之上运行虚拟机软件。客户操作系统 (Guest Operating System)运行在虚拟机中的操作系统。注意,在此它不等于桌面操作系统(Desktop Operating System)和客户端操作系统(ClientOperating System),因为虚拟机中的客户操作系统可以是服务器操作系统。表1是 Xen 3.0支持的主机操作系统和客户操作系统。
表1 Xen 3.0支持的主机操作系统和客户操作系统
Xen Enterprise 3.2明显扩大了支持范围,新增了对Windows2000的支持。另外,可以使用对称多处理(Symmetric Multiprocessing ,SMP)技术支持Windows Server2003和Windows XP操作系统,使得Exchange和SQL Server可以运行地更好。客户操作的支持还增加了RedHat的企业版Linux服务器RHEL 5和Novell的SUSE Linux企业服务器10SP1。另外Linux的两个最成功的商业版,红帽企业版Linux 5.0和Novell的Suse Linux10.0企业服务器版都集成了Xen。
三、Xen的原理和体系结构
虚拟化CPU对guestOS(客户操作系统)提出了几个要求。因为hypervisor插在操作系统的下层违背了惯常的关于操作系统在整个系统中特权最高的假设。为了保护hypervisor不会受到操作系统不正确行为的影响(即domain不受另一个domain的影响),guestOS就必须被改造为能够运行在较低的特权级上。很多处理器体系结构只是提供了两个特权级。在这些情况下,guestOS和应用程序共享较低的特权级。同时,guest OS运行在单独的地址空间中以保护自己不会受到应用程序执行的影响。guestOS通过hypervisor设定虚拟的特权级和改变当前的地址空间来间接地和应用之间进行控制传递。另外,如果处理器的TLB支持地址空间标记,那么也就可以避免TLB刷新带来的高昂代价。在x86架构上有效地实现特权级的虚拟化是可能的,因为x86架构在硬件上支持四个不同的特权级。x86架构的特权级往往用圈(ring)来表示,从ring 0(最高特权)到ring 3(最低特权)。操作系统的代码运行在ring0这个特权级上,因为再没有其它的ring能够执行那些特权指令。ring3通常用于执行应用代码。就我们所知,自OS/2起到现在的各个知名的x86 架构上的操作系统都还没有利用ring 1和ring2这两个特权级的。那么,任何遵循这个通常的安排的操作系统就都可以移植到Xen上来。这个移植过程只需要做一些改动使操作系统改为运行在ring1特权级上。这就防止了guest OS会直接执行特权指令,也保证了操作系统与运行在ring 3上的应用程序之间相隔离的安全性。图1是Xen和Ring 关系图。图2 是Xen的体系结构。
图1是Xen 和Ring 关系图
图2 Xen的体系结构
在完全虚拟化环境下需要仿真现有的硬件设备,而Xen不同于此。Xen给出了一套清楚、简单的设备抽象。这就使得我们能够设计一个接口以有效地满足我们对保护性和隔离性的需求。为了做到这一点,I/O和各个domain之间的数据传递都是要经过Xen的,可以使用的方法有共享内存,异步缓冲区描述符环等。这些方法能够在Xen有效地执行确认检查的同时,为在系统中的竖直方向上传递缓冲区信息提供了一个高性能的通信机制。图3是Xen的网络接口结构。图4 是逻辑网络接口连接dom1和dom0示意图。
图3 Xen的网络接口结构
讲到Xen,不能不提Xensource公司,它由原Xen项目组主要成员创立,坐落在美国硅谷的PaloAlto市。Xensource是一个典型的将学校研究成果转化为生产力的创业型企业。2006年11月,XenSource对外发布了他的第一个正式产品XenEnterprise。XenEnterprise基于Xen 3.0.3。在此之前,Red Hat在他的Fedora Core4.0和Fedora Core 5.0中已经集成了Xen,Novell在SUSE Linux 10.1和SLES10中也已经集成了Xen。同时Redhat他的企业版Linux中即RHEL5.0中也集成Xen。
图4 逻辑网络接口连接dom1和dom0示意图
表-2是xen家族产品参数
另外全球应用程序供应基础架构领导厂商 CitrixSystems完成收购企业级虚拟化基础架构解决方案领导商 XenSource 。透过这项合并, Citrix成为业界最完整的虚拟化技术供应商,提供业界唯一完整涵盖应用系统、服务器及桌面虚拟化技术的端对端应用供应 基础架构。根据 Citrix预估,该市场在未来四年将成长至近 50 亿美元的规模。随着 XenSource 的加入, Citrix 推出 Citrix XenServer及 Citrix XenDesktop 两款全新的虚拟化解决方案,分别专攻服务器及桌面虚拟化市场,也配合 Citrix原有的应用系统虚拟化产品,打造出业界最完整的端对端虚拟化产品。 总结:Xen的超虚拟化(paravirtualization)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这种方法使用了一个 hypervisor来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这种方法不再需要重新编译或捕获特权指令,因为操作系统本身在虚拟化进程中会相互紧密协作。通常通过虚拟化(Virtualization)将同一硬件上的应用程序和系统彼此隔离开来。从硬件模拟到完全硬件虚拟化,Linux支持很多种不同形式的虚拟化。在不断增加的虚拟化技术列表中,Xen 是近来最引人注目的技术之一,它由剑桥大学开发。Xen值得您关注,因为它具有空前的性能与安全性。
Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个Open Source项目,目前稳定版本为Xen3.0,主要目的是为了建立更多的虚拟机器。XenSource 的创始人Ian Pratt表示,Xen在2002年前诞生于英国的剑桥大学,这家新创公司有意把Xen虚拟功能变成标准的计算机功能。「我们第一部是在Linux系统上普及化。」他说。Xen这类能将一台计算机划分为多个不同分割区的方法依赖一种被称为虚拟化(virtualization)的概念,它们使软件能够仿真真实的硬件来作执行。在VMware中,这一基础被称作是虚拟机器(virtual machine)。 VMware和Xen之间的差异点在于:前者完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen则使用了被称为「paravirtualization」的技术,Pratt表示,它的效能更快,但需要对操作系统进行适当的修改。不过较高阶的软件并不需经过修正,VMware 和Xen 之间的差异点在于:VMware 完全仿真计算机,因此理论上操作系统可不需更动就直接在虚拟机器上执行;Xen则使用了被称为「Paravirtualizatio」的技术,它的效能更快。
2005年12月Xen开发组发布了Xen3.0,这是第一款支持芯片辅助技术的免费hypervisor软件。有了VT-x或AMD-V的硬件支持,Xen3.0能支持任何没修改过的操作系统。XEN 3.0所采用的虚拟技术为半虚拟化(Paravirtualization),与VMware所采用的完全虚拟化的差异,在于对底层硬件的控制效率接近实机操作,包括中断控制(IRQ)等,以及等同于实体处理器的运作效能,但也因此对硬件的支持度并不高。由于半虚拟化(Paravirtualization)技术需要对操作系统进行适当的修改,所以目前Xen 只能够在一些Linux-based 的系统上运作,也陆续受到一些信息大厂的支持,Xen并不是第一个提出半虚拟化的软件,但执行Xen 时,消秏系统资源非常少,大约占3%,所以Xen可算是技术上的突破。半虚拟化必须修改系统的内核,不过如果处理器能支持虚拟化,所就内核就无需异动了,例如Intel 的VT 和AMD的Pacifica 处理器都将包括这种支持。AMD 的CPU 只有Opteron 支持AMD-V 技术,而INTEL则有Intel Core2 Duo 及Xeon 系列才支持VT 技术。
二、Xen支持的操作系统
主机操作系统即(Host Operating System)在物理计算机(宿主机)上运行的操作系统,在它之上运行虚拟机软件。客户操作系统 (Guest Operating System)运行在虚拟机中的操作系统。注意,在此它不等于桌面操作系统(Desktop Operating System)和客户端操作系统(ClientOperating System),因为虚拟机中的客户操作系统可以是服务器操作系统。表1是 Xen 3.0支持的主机操作系统和客户操作系统。
表1 Xen 3.0支持的主机操作系统和客户操作系统
Xen Enterprise 3.2明显扩大了支持范围,新增了对Windows2000的支持。另外,可以使用对称多处理(Symmetric Multiprocessing ,SMP)技术支持Windows Server2003和Windows XP操作系统,使得Exchange和SQL Server可以运行地更好。客户操作的支持还增加了RedHat的企业版Linux服务器RHEL 5和Novell的SUSE Linux企业服务器10SP1。另外Linux的两个最成功的商业版,红帽企业版Linux 5.0和Novell的Suse Linux10.0企业服务器版都集成了Xen。
三、Xen的原理和体系结构
虚拟化CPU对guestOS(客户操作系统)提出了几个要求。因为hypervisor插在操作系统的下层违背了惯常的关于操作系统在整个系统中特权最高的假设。为了保护hypervisor不会受到操作系统不正确行为的影响(即domain不受另一个domain的影响),guestOS就必须被改造为能够运行在较低的特权级上。很多处理器体系结构只是提供了两个特权级。在这些情况下,guestOS和应用程序共享较低的特权级。同时,guest OS运行在单独的地址空间中以保护自己不会受到应用程序执行的影响。guestOS通过hypervisor设定虚拟的特权级和改变当前的地址空间来间接地和应用之间进行控制传递。另外,如果处理器的TLB支持地址空间标记,那么也就可以避免TLB刷新带来的高昂代价。在x86架构上有效地实现特权级的虚拟化是可能的,因为x86架构在硬件上支持四个不同的特权级。x86架构的特权级往往用圈(ring)来表示,从ring 0(最高特权)到ring 3(最低特权)。操作系统的代码运行在ring0这个特权级上,因为再没有其它的ring能够执行那些特权指令。ring3通常用于执行应用代码。就我们所知,自OS/2起到现在的各个知名的x86 架构上的操作系统都还没有利用ring 1和ring2这两个特权级的。那么,任何遵循这个通常的安排的操作系统就都可以移植到Xen上来。这个移植过程只需要做一些改动使操作系统改为运行在ring1特权级上。这就防止了guest OS会直接执行特权指令,也保证了操作系统与运行在ring 3上的应用程序之间相隔离的安全性。图1是Xen和Ring 关系图。图2 是Xen的体系结构。
图1是Xen 和Ring 关系图
图2 Xen的体系结构
在完全虚拟化环境下需要仿真现有的硬件设备,而Xen不同于此。Xen给出了一套清楚、简单的设备抽象。这就使得我们能够设计一个接口以有效地满足我们对保护性和隔离性的需求。为了做到这一点,I/O和各个domain之间的数据传递都是要经过Xen的,可以使用的方法有共享内存,异步缓冲区描述符环等。这些方法能够在Xen有效地执行确认检查的同时,为在系统中的竖直方向上传递缓冲区信息提供了一个高性能的通信机制。图3是Xen的网络接口结构。图4 是逻辑网络接口连接dom1和dom0示意图。
图3 Xen的网络接口结构
讲到Xen,不能不提Xensource公司,它由原Xen项目组主要成员创立,坐落在美国硅谷的PaloAlto市。Xensource是一个典型的将学校研究成果转化为生产力的创业型企业。2006年11月,XenSource对外发布了他的第一个正式产品XenEnterprise。XenEnterprise基于Xen 3.0.3。在此之前,Red Hat在他的Fedora Core4.0和Fedora Core 5.0中已经集成了Xen,Novell在SUSE Linux 10.1和SLES10中也已经集成了Xen。同时Redhat他的企业版Linux中即RHEL5.0中也集成Xen。
图4 逻辑网络接口连接dom1和dom0示意图
表-2是xen家族产品参数
性能参数 | XenEnterprise XenServer Multi-OS | Windows XenExpress Virtualization | Virtualization On-Ramp to Xen |
物理内存 | 无限制 | 8GB 最大 | 4GB最大 |
物理CPU | 最大32 路 | 最大2 路 | 最大2 路 |
共享存储器 | ISCSI、SAN | 不支持 | 不支持 |
Windows 客户机类型 | Windows Server 2003, Windows Server 2003 R2,Windows XP SP2, Windows 2000 SP4 | Windows Server 2003, Windows Server 2003 R2,Windows XP SP2, Windows 2000 SP4 | Windows Server 2003, Windows Server 2003 R2,Windows XP SP2, Windows 2000 SP4 |
Linux 客户机类型 | RHEL 3.6–5.0 RHEL 3.6–5.0 SLES 9.2–10.1 SLES 9.2–10.1 Debian Sarge Debian Sarge 其它标准虚拟主机(HVM) | 不支持 | RHEL 3.6–5.0 SLES 9.2–10.1 SLES 9.2–10.1 Debian Sarge Debian Sarge 其它标准虚拟主机(HVM) |
动态移植 | 支持 | 不支持 | 不支持 |
Qos支持 | 支持 | 不支持 | 不支持 |
用户定位 | OEM用户 | Windows IT Pro | IT研究人员 |
Vlan支持 | 支持 | 不支持 | 不支持 |
64-bit 客户机支持 | 不支持 | 不支持 | 不支持 |
管理特性 | 一个管理终端可以多个Xen host | 一个管理终端可以多个Xen host | 一个管理终端可以一个Xen host |
费用 | 每客户端需 $1,000 USD | 每客户端需 $1,00 USD | 免费 |