虚拟化 频道

X86虚拟化之Citrix XenServer

  【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主界面

0
相关文章