【IT168 专稿】Xen管理程序(hypervisor)是一款出色的开源程序,由XenSource带头,与Xen社区协作开发,IBM是最活跃的贡献者。最初它是剑桥大学计算机实验室的一个x86虚拟化研究项目,但Xen很快就超出了研究范畴,并成立了一个独立的公司XenSource,由其进行协调开发,在创立了开源项目的同时还发布了Xen商业版本。
Citrix系统公司在2007年10月22日收购了XenSource,现在XenSource每年的收入超过了1千万美元,Xen的发展速度实在是太快了,Citrix每年发布两个新版本,现在最新的版本是2009年6月发布的5.5,v6将在2009年11月发布。
虽然Xen现在是属于XenSource的,由于它本身是开源软件,因此存在相当多的分支版本,有些是由其它厂商发布的,最常见的版本有:
1、Xen(由XenSource发布的开源版本)
2、由以下公司发布的商业版本:
? Citrix系统公司发布的Citrix XenServer
? Virtual Iron/Oracle发布的Oracle VM
? Sun公司发布的Sun xVM
Xen强大的功能征服了许多Linux厂商,许多Linux发行版默认采用的hypervisor就是Xen,但有些厂商(最著名的就是Red Hat)最近转移到了KVM hypervisor,KVM也是一个非常优秀的开源hypervisor。
自从2006年XenSource与微软建立了密切关系后,它们联合推动虚拟化行业标准,本次合作扩大了微软和Xen客户机的互操作性。
在编写本文时,XenServer 5.5是使用得最多的版本,预计2010年将会发布V6。
技术特性
Xen是一个开源的裸机或本地hypervisor,由XenSource基于GPL2协议发布,在它的早期版本中,Xen hypervisor引入了半虚拟化的概念(针对x86平台),这个功能最初出现在上世纪70年代IBM的System/360-67上,半虚拟化需修改客户机操作系统,要让它知道hypervisor在它的底层。
自Xen Server 3.0发布后,硬件厂商开始在硬件级支持虚拟化,如英特尔的VTx和AMD的AMD-V,这些技术主要是集成到现代x86/x64处理器中了,但是在指令集方面有很大的差异,因此靠Xen实现了对硬件的抽象,这样就不用修改主机了,硬件虚拟化技术简化了宿主主机的部署,如果没有这种技术,要修改操作系统(如Windows)内核支持半虚拟化可能是个大问题。
微软Hyper-V和Xen Server的架构设计非常类似,最大的不同是,在Xen中,Dom0(运行虚拟机监视器和管理I/O的特权域)是一个经过优化的Linux内核,而微软使用的是Windows Server 2008作为其父分区(Parent Partition)(与Xen中的Dom0类似),正是由于有这些相似点,Citrix Essentials包才可以在Hyper-V和Citrix Xen Server之间实现虚拟机迁移。
Citrix Xen Server 5.5
按照每年发布2次的节奏,Citrix在2009年6月发布了Xen Server v5.5,本次发布带来了大量的优化和改进,最值得注意的是管理和存储架构的更新,Citrix收购XenSource后,通过加快发布速度赢得了不少市场认可,同时Citrix也将来自开源社区的最新技术研究成果加入到上游Xen内核中(未来版本),这是一个快速占领市场的有效做法。
Citrix Xen Server提供了一个极具竞争力的虚拟化解决方案,Xen Server 5.5最显著的一个疏忽是过量分配内存资源的能力,内存过量分配(内存膨胀)可以使整合度更高,特别是虚拟桌面方面,如果没有过量分配内存资源的能力,Citrix XenServer就不能达到其它类似产品的整合率,如VMware的vSphere,Red Hat的KVM,Citrix将会在下一个版本中增加内存过量分配功能。并入到目前开源Xen hypervisor的Xen内核3.4具有下列新特性(希望所有新特性都能在下一个版本中见到):
? 设备穿透增强,特别是对客户端设备的支持(更多支持包含在XCI项目中);
? RAS功能:CPU和内存脱机;
? 电源管理:增强的频率/电力控制,支持深度睡眠,调度程序和计时器经过优化,峰值时消耗的电力更少;
? 支持Hyper-V启发接口。
另外,VM故障容错功能允许在两台物理主机上运行一个虚拟机实例,其中一个处于隐藏状态,两者步调保持一致,如果主主机发生故障,辅助主机上的虚拟机实例就开始接管,虚拟机完全不用停机,因此对最终用户是没有任何影响的,这个技术首先是在VMware的vSphere中引入的。
许可
Citrix XenServer许可计划简单有吸引力,核心hypervisor和管理控制台都是免费的,可以从Citrix网站下载,如果需要更高级的功能,可以购买一两个“Essentials”包,这些扩展包大大增强了XenServer的功能,如下表所示。
“Essentials”包是按每服务器进行授权的,而不是按处理器或处理器核心,因此在向上扩展方面有很大的吸引力,如IBM的eX4和即将发布的eX5系统。
Citrix XenServer 5.5 | 价格 | |
Hypervisor | Citrix XenServer | 免费 |
管理控制台 | Citrix XenServer | 免费 |
Citrix XenServer Essentials包,企业版,预定一年的优惠 | $2750 | |
Citrix Essentials优先支持 | $1500 | |
年度续约Citrix Essentials包预定优惠 | $325 | |
共计3年以上 | $4900 |
*以上价格来自Citrix/VMware网站2009年7月23日的报价,以美元作为单元。
Citrix XenServer版本
Citrix已经发布了三个不同版本的XenServer,核心组件都是免费的,附加功能包括两个Essentials包,组织可以调整它们的许可,随时增加想要的包。
特性 | XenServer(免费版) | Essentials for XenServer企业版 | Essentials for XenServer平台版 |
原生64位Xen hypervisor,支持无限制的Windows和Linux客户机VMs和CPU | √ | √ | √ |
XenServer管理控制台 | √ | √ | √ |
XenMotion实时迁移 | √ | √ | √ |
历史性能报告,通过E-Mail发送性能和错误警告 | X | √ | √ |
高可用 | X | √ | √ |
集成StorageLink存储管理 | X | √ | √ |
使用Workflow Studio安排工作流 | X | √ | √ |
动态提供服务(仅虚拟机) | X | √ | √ |
动态提供服务(物理机和虚拟机) | X | X | √ |
自动化实验管理 | X | X | √ |
升级管理 | X | X | √ |
Citrix Xen产品堆栈
Xen hypervisor
Xen hypervisor是XenServer的核心,它运行在最低特权层,它位于操作系统下方,直接与硬件打交道,因此算是硬件抽象层,它负责为运行在物理主机上的各个虚拟机调度CPU和内存分区,hypervisor不仅抽象了虚拟机硬件,还控制着虚拟机的执行,因为虚拟机之间要共享相同的处理环境。
在hypervisor上面运行一个或多个客户机操作系统,在安装时就创建了第一个客户机VM,也就是著名的Dom0,这个VM有特权管理访问hypervisor,并且可以直接访问物理硬件,它的主要作用是保护hypervisor的管理接口。
最近的变化大大地改进了Xen hypervisor,包括本地运行半虚拟化Windows Server 2008作为一个XenServer客户机的能力,正如本章前面所提到的,Hyper-V和XenServer的架构类似,微软和Citrix之间的合作让一个开启Xen的Linux客户机运行在Hyper-V上成为可能,需要用到本地Xen hypercall访问虚拟功能,微软提供的软件组件调用hypercall适配器将XenServer hypercall转换成Hyper-V hypercall,因此Linux客户机可以运行在全内核半虚拟化支持下,在Citrix Essentials的Hyper-V版本中支持XenMotion,可以在XenServer和Hyper-V之间实现实时迁移。
Citrix XenServer v5.5使用的是Xen 3.3内核,它为Xen Hypervisor带来了许多增强:
? Hypervisor中的电源管理(P&C状态);
? 硬件辅助分页增强:2MB页面支持,具有更好的TLB局域性;
? CPUID功能级:允许跨不同CPU类型的系统安全域迁移;
? PVSCSI驱动,直接访问半虚拟化客户机;
? 完整的x86实址方式仿真英特尔VT上的HVM客户机:支持更多的传统客户机操作系统。
当Citrix发布下一个XenServer版本时,希望采用新的3.4版Xen内核。
正如前面提到的,更多增强已经在Xen内核的未来版本中存在的。
在计划的Xen 4.0内核中包括以下特性:
? RDMA实时迁移支持;
? Linux 2.6.30或更高版本的Dom0内核;
? Marvell 6480硬盘Dom0支持;
? 为PV客户机穿透USB控制器/设备;
? 故障容错 – Remus和Kemari项目;
? DomUs级的监控,限制和网络通信控制;
? 国际化/Unicode支持;
? 象真实交换机那样配置虚拟桥(如控制VLAN,端口状态);
? 每NIC接口VLAN标记;
? 虚拟以太网交换机;
? 通过UEFI(pUEFI)和虚拟UEFI支持物理Xen启动/安装;
? 限制VM的I/O;
? 动态内存管理;
? PCI CGA穿透;
? 完整的AMD IOMMU支持;
? 在线调整DomU磁盘的大小;
? 交叉编译Xen和模块化构建。
Citrix XenServer 5.5需求
Citrix XenServer 5.5对宿主主机有以下要求,但对于开源版本,超出这些限制的配置可能也是可以支持的。
组件 | 要求 |
CPU | 一颗或多颗64位x86 CPU,最低1.5GHz,推荐2GHz或更快的多核CPU,如果要支持VM运行Windows,需要一颗或多颗英特尔VT或AMD-V 64位基于x86的系统。(最多可支持32 CPU核心) |
内存 | 最低1GB,推荐2GB或更多内存(最大支持128GB) |
磁盘 | 最低16GB磁盘空间,推荐60GB磁盘空间 |
网络 | 100Mbps或更快的网络,推荐1000Mbps(最多支持6块网卡) |
Citrix XenServer 5.5支持当前核心x86操作系统,但它绝大部分是Windows市场,如果需要支持半虚拟化Linux客户机操作系统,必须安装Linux支持包,它支持Linux运行在dom0,如果不安装这个包,所有操作系统都必须运行在硬件辅助模式下,在安装时你会经过如下图所示的一步,安装程序会提示你是否要安装可选的Linux包。
图 1 安装Linux Pack的确认界面
如果在这一步你选择不安装Linux包,也可以在以后需要时安装,只需要运行Linux Pack安装CD中的install.sh即可。
下表列出了Citrix XenServer支持的操作系统清单,其实很多未列出的操作系统也可以作为客户机运行。
支持的客户机操作系统
支持的Linux客户机操作系统 | 支持的Windows客户机操作系统 | |
32位 | Red Hat Enterprise Linux3.5,3.6,3.7,4.1,4.2,4.3,4.4,4.5,4.6,4.7,5.0,5.1,5.2 CentOS 4.1,4.2,4.3,4.4,4.5,4.6,4.7,5.0,5.1,5.2 Oracle Enterprise Linux 5.0,5.1,5.2 Novell SUSE Linux Enterprise Server 9SP2,9SP3,9SP4,10SP1 Debian sarge(3.1),etch(4.0) | Windows Server 2008 Windows Server 2003 Web,标准,企业和数据中心版SP0/SP1/SP2/R2 Windows Small Business Server 2003 SP0/SP1/SP2/R2 Windows XP SP2,SP3 Windows 2000 SP4 Windows Vista原版及SP1 |
64位 | Red Hat Enterprise Linux 5.0,5.1,5.2 CentOS 5.0,5.1,5.2 Oracle Enterprise Linux 5.0,5.1,5.2 Novell SUSE Enterprise Linux 10 SP1,10SP | Windows Server 2008 Windows Server 2003标准,企业和数据中心版 SP |
XenCenter
XenCenter是为Citrix XenServer设计的多服务器管理控制台,它可以管理所有XenServer资源池、宿主主机和虚拟机,并集成了存储管理功能,与其它虚拟管理服务器不一样,XenCenter是一个轻量级的Windows应用程序,它可以运行在任何桌面,所有被管理服务器的配置和性能数据被复制到一个资源池中,消除了潜在的单点故障,如果管理资源池的服务器出了故障,其它服务器可以立即接管,免费版本的XenServer需要手工操作,而购买了Essentials包的XenServer则是自动的,XenCenter可以以图表格式显示性能信息,非常简单直观。
使用XenMotion可以在资源池成员之间实时在线迁移虚拟机,因此IT维护人员可以在不中断用户访问虚拟机的情况下更新和管理服务器,也就没有所谓的计划内停机时间了,虚拟机存储在共享存储上,可以随时迁移,最令人羡慕的是这个功能是免费的。
Citrix XenServer的最低系统要求如下:
? 基于x86的系统;
? Windows 2000,Windows XP,Windows Server 2003,Windows Server 2008或Windows Vista;
? .Net Framework 2.0或更高版本;
? CPU速度:最低750MHz,推荐1GHz或更快的处理器;
? 内存:最低512MB;
? 磁盘空间:最低100MB;
? 网卡。
图 2 XenCenter主界面