虚拟化管理软件比较(XenServer,OracleVM,CloudStack等)(1)授权协议、许可证管理、购买价格等方面的比较授权协议许可证管理商业模式Eucalyptus社区版采用GPLv3授权协议企业版使用自定义的商业授权协议社区版不需要安装许可证企业版需要在云控制器(CLC)节点上安装许可证社区版免费使用企业版按处理器核心总数收费,用户购买的许可证针对特定版本永久有效。OpenStackApache2.0授权协议不需要许可证免费使用OpenNebulaApache2.0授权协议不需要许可证社区版免费使用企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。企业版按物理服务器总数收费,每台物理服务器器的服务价格为250欧元每年。OpenQRM社区版使用GPLv2授权协议企业版使用自定义的商业授权协议不需要许可证社区版免费使用企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。基本、标准和高级服务的价格分别为480、960、1920欧元每月。XenServerCitrixXenServer系列产品均使用自定义的商业授权协议基于XenServer的XenCloudPlatform使用不管是XenServer还是XenCloudPlatform都需要在每台服务器安装许可证许可证每年更新XenServer免费版本和开源版本的XenCloudPlatform可以免费使用XenServer高级版、企业版和白金版按物理服务器数量收费,分别是1000、2500和5000美元。购买的许可证针对特定版本永久GPLv2授权协议一次有效OracleVMOracleVMServer是基于Xen开发的,使用GPLv2协议发布,从Oracle的网站可以下载到源代码,但是Oracle并不宣传这一点。OracleVMManager使用自定义的商业授权协议。OracleVMVirtualBox的二进制版本使用自定义的商业授权协议,源代码使用GPLv2授权协议。不需要许可证免费使用,可以购买技术支持。技术支持的费用为每台物理服务器8184人民币每年。CloudStack社区版采用GPLv3授权协议企业版使用自定义的商业授权协议社区版不需要安装许可证企业版需要在管理服务器上安装许可证社区版免费使用企业版提供增强功能和技术支持,收费模式不详。ConVirt社区版使用GPLv2授权协议企业版使用自定义的商业授权协议社区版不需要安装许可证企业版需要在管理服务器上安装许可证社区版免费使用企业版提供增强功能和技术支持,按物理服务器数量收费,每个节点费用1090美元。购买的许可证针对特定版本永久有效。(2)项目历史与运营团队、社区规模和活跃程度、沟通交流等方面的比较项目历史与运营团队社区规模和活跃程度沟通交流Eucalyptus最初是UCSB的HPC研究项目,2009年初成立公司来支持该项目的商业化运营。现任CEO是曾担任MySQLCEO的MartenMickos,现任工在同类开放源代码项目当中,Eucalyptus的社区规模最大,活跃程度也最高。主要原因是该项目起源于大学研究项目,次要原因是管理团队对社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。程部门SVP的TimCramerc曾担任Sun公司NetBeans和OpenSolaris项目的执行总监。整个管理团队对开放源代码项目的管理和运营方面具有丰富的经验。开放源代码理念的高度认同。Ubuntu10.04服务器版选择Eucalyptus作为UEC的基础构架,大大地促进了Eucalyptu的推广。Eucalyptus在北京和深圳设有办事处,在中国有工程师提供支持团队。OpenStackOpenStack是服务器托管公司RackSpace与NASA共同发起的开放源代码项目。在开放源代码项目的管理和运营方面,RackSpace和NASA显然缺乏足够的经验。针对OpenStack项目的批评集中在(1)RackSpace对项目有过于强烈的控制欲,(2)OpenStack项目的运作对于社区成员来说基本上是不透明的,(3)OpenStack项目对同类开放源代码项目的攻击性过強。社区规模较小,主要参与者为支持/参与该项目的公司人员。有几个公开的邮件列表,流量很小。由于该项目比较新,在网络上可以参考的安装与配置方面的文章不多。Ubuntu11.04服务器版同时支持Eucalyptus和OpenStack作为UEC的基础构架,将有助于OpenStack的推广。通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。商务方面的邮件沟通,没有得到回应。OpenNebula2005年启动的研究性项目,2008年初发布第一个开放源代码版本,2010年初大力推进开源社区的建设。社区规模较小,主要参与者为支持/参与该项目的公司人员,以及少量的用户。有几个公开的邮件列表,流量比OpenStack项目的流量稍大。在网络上搜索到一些中文版安装和配置方面的文章,基本上是以讹传讹,缺乏可操作性。英文版的相关文章也不多,可操作的更少。通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。OpenQRM起源于集群管理方面的软件,2006年公开源代码,2008年免费发布,目前版本为4.8。项目的运营团队较小,似乎只有MattRechenburg一个人。有一些零星的用户,基本上没有形成社区。虽然功能还在不断更新,但是用户文档的日期是2008年的。相关论坛的活跃程度比OpenStack和OpenNebula更差。在论坛发布的问题,大约有50%左右没有得到回应。通过电子邮件进行商务沟通,反应迅速,在24小时以内得到回应。XenServerCitrix公司的产品,与Xen项目的发展基本同步。围绕XenCloudPlatform有一些开放源代码的项目,用于替代XenCentor提供基于桌面或者是浏览器的管理功能。初期商务沟通的速度比较快。OracleVMOracle公司的产品,用户量较小。OracleVM仅仅是有一定数量的用户,但是没有形成社区。在网络上缺少与初期商务沟通的速度比较快。在技术方面的沟通,OracleOracle用户生态系统中的一部分,不是Oracle的关键业务。Oracle相关的讨论与交流。OracleVM团队有一个博客网站,但是最近两篇文章的日期分别是2010年11月和2008年1月。产品下载的速度很慢。在国内没有相应的技术人员提供支持。CloudStack源于2008年成立的VMOps公司,2010年五月启用cloud.com域名,2010年6月共同启动OpenStack项目。用户数量较少,论坛不是很活跃。官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。网络上可以搜索到一些可操作的安装和配置文档(得益于CloudStack的安装和配置比较简单)。商务沟通比较困难,通过社区论坛和电子邮件提出的问题都没有得到回应。ConVirt起源于2006年发起的XenMan项目,与Xen项目的发展基本同步。目前的版本为ConVirt2.0。现任CEO和工程部门EVP均来自Oracle。用户规模与Eucalyptus相当,论坛的活跃程度很高。官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。在网络上搜索到的中英文的安装配置教程也基本可用。商务沟通非常顺畅,社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。(3)综合评估总的来说,虚拟化管理软件的用户还不是很多。大部分虚拟化管理软件的社区规模较小,活跃程度也不高。除了Eucalyptus积极地鼓励社区用户参与项目的开发与测试之外,其他项目选择开放源代码只是一种营销策略。如果排除技术和价格方面的因素,最值得选择的软件无疑是Eucalyptus和ConVirt。这两个项目拥有最大和最活跃的用户社区,其开发/运营团队与潜在客户之间的沟通最为顺畅。XenServer也是一个值得考虑的对象,但是XenServer社区版要求对每台物理服务器都要每年更新一次许可证。对于拥有大量物理服务器的公司来说,管理和维护成千上百个许可证将是一个令人头疼的问题。架构篇:(1)系统构架比较系统构架EucalyptusEucalyptus是一个与AmazonEC2兼容的IaaS系统。Eucalyptus包括云控制器(CLC)、Walrus、集群控制器(CC)、存储控制器(SC)和节点控制器(NC)。CLC是整个Eucalyptu系统的核心,负责高层次的资源调度,例如向CC请求计算资源。Walrus是一个与AmazonS3类似的存储服务,主要用于存储虚拟机映像和用户数据。CC是一个集群的前端,负责协调一个集群内的计算资源,并且管理集群内的网络流量。SC是一个与AmazonEBS类似的存储块设备服务,可以用来存储业务数据。NC是最终的计算节点,通过调用操作系统层的虚拟化技术来启动和关闭虚拟机。在同一个集群(CC)内的所有计算节点(NC)必须在同一个子网内。在一个集群(CC)内通常需要部署一台存储服务器(SC),为该集群内的计算节点提供数据存储服务。Eucalyptus通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行一个eucalyptus-nc的服务。该服务在集群控制器(CC)上注册后,云控制器(CLC)即可通过集群控制器(CLC)将需要运行的虚拟机映像文件(EMI)拷贝到该计算节点上运行。Eucalyptus将虚拟机映像文件存储在Walrus上。当用户启动一个虚拟机实例的时候,Eucalyptus首先将相应的虚拟机映像(EMI)从Walrus拷贝到将要运行该实例的计算节点(NC)上。当用户关闭(或者是由于意外而重启)一个虚拟机实例的时候,对虚拟机所做的修改并不会被写回到Walrus上原来的虚拟机映像(EMI)上,所有对该虚拟机的修改都会丢失。如果用户需要保存修改过的虚拟机,就需要利用工具(euca2ools)将该虚拟机实例保存为新的虚拟机映像(EMI)。如果用户需要保存数据,则需要利用存储服务器(SC)所提供的弹性块设备来完成。OpenStackOpenStack是一个与AmazonEC2兼容的IaaS系统。OpenStack包括OpenStackCompute和OpenStackObjectStorage两个部分。OpenStackCompute又包含Web前端、计算服务、存储服务、身份认证服务、存储块设备(卷)服务、网络服务、任务调度等多个模块。OpenStackCompute的不同模块之间不共享任何信息,通过消息传递进行通讯。因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。OpenStackObjectStore可以利用通用服务器搭建可扩展的海量数据仓库,并且通过冗余来保证数据的安全性。同一份数据的在多台服务器上都有副本,将出现故障的服务器从集群中撤除不会影响数据的完整性,加入新的服务器后系统会自动地在新的服务器上为相应的文件创建新的副本。从功能上讲,OpenStackObjectStore同时具备Eucalyptus中的Walrus服务和弹性块设备(SC)服务。不过OpenStackObjectStore不是一个文件系统,不能够保证数据的实时性。从这个方面来考虑,OpenStackObjectStore更适合用于存储需要长期保存的静态数据,例如操作系统映像文件和多媒体数据。OpenStack通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行nova-network服务和nova-compute服务。这些服务启动之后,就可以通过消息队列来与云控制器进行交互。OpenNebulaOpenNebula的构架包括三个部分:驱动层、核心层、工具层。驱动层直接与操作系统打交道,负责虚拟机的创建、启动和关闭,为虚拟机分配存储,监控物理