admin 管理员组

文章数量: 887175


2024年1月15日发(作者:郑州冷弯z型钢)

虚拟化管理软件比较(XenServer, Oracle VM,CloudStack等)(1)授权协议、许可证管理、购买价格等方面的比较

授权协议 许可证管理

社区版不需要安装 商业模式

社区版免费使用

许可证

社区版采用GPLv3授权协议

Eucalyptus

企业版使用自定义的商企业版需要在云控制器(CLC)节点上安装许可证

企业版按处理器核心总数收费,用户购买的许可证针对特定版本永久有效。

免费使用

社区版免费使用

业授权协议

OpenStack

Apache 2.0授权协议

不需要许可证

企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以OpenNebula

Apache 2.0授权协议

不需要许可证

订阅的模式提供服务。

企业版按物理服务器总数收费,每台物理服务器器的服务价格为250欧元每年。

社区版免费使用

社区版使用GPLv2授权协议

OpenQRM

企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能企业版使用自定义的商不需要许可证

业授权协议

够更容易的安装、配置和管理,以订阅的模式提供服务。基本、标准和高级服务的价格分别为480、960、1920欧元每月。

Citrix XenServer系列产品均使用自定义的商业授权协议

XenServer

不管是XenServer还是Xen Cloud

Platform都需要在每台服务器安装许XenServer免费版本和开源版本的Xen Cloud Platform可以免费使用

XenServer高级版、企业版和白基于XenServer的Xen

Cloud Platform使用可证

金版按物理服务器数量收费,分别是1000、2500和5000美元。许可证每年更新购买的许可证针对特定版本永久

GPLv2授权协议

Oracle VM Server是基于Xen开发的,使用GPLv2协议发布,从Oracle的网站可以下载到源代码,但是一次 有效

Oracle并不宣传这一点。

Oracle VM Manager使Oracle VM

用自定义的商业授权协议。

Oracle VM VirtualBox的二进制版本使用自定义的商业授权协议,源代码使用GPLv2授权协议。

免费使用,可以购买技术支持。技术支不需要许可证

持的费用为每台物理服务器8184人民币每年。

社区版不需要安装许可证

社区版免费使用企业版提供增强功能和CloudStack

企业版使用自定义的商业授企业版需要在管技术支持,收费模式不详。

权协议

社区版采用GPLv3授权协议理服务器上安装许可证

社区版不需要安装社区版免费使用

许可证

社区版使用GPLv2授权协议

企业版提供增强功能和技术支持,ConVirt

企业版使用自定义的商企业版需要在管按物理服务器数量收费,每个节点业授权协议

理服务器上安装费用1090美元。购买的许可证针许可证

对特定版本永久有效。

(2)项目历史与运营团队、社区规模和活跃程度、沟通交流等方面的比较

项目历史与运营团队 社区规模和活跃程度 沟通交流

最初是UCSB的HPC研究项在同类开放源代码项目当中,社区发表在论坛上的问题通目,2009年初成立公司来支Eucalyptus的社区规模最CEO是曾担任MySQL CEO因是该项目起源于大学研究常在48小时内得到回应,通问题通常在24小时内得到回Eucalyptus

持该项目的商业化运营。现任大,活跃程度也最高。主要原过技术支持电子邮件提出的的Marten Mickos,现任工项目,次要原因是管理团队对应。

程部门SVP的Tim Cramerc开放源代码理念的高度认同。曾担任 Sun公司NetBeansUbuntu 10.04服务器版选Eucalyptus在北京和深和OpenSolaris项目的执行择Eucalyptus作为UEC的总监。整个管理团队对开放源基础构架,大大地促进了代码项目的管理和运营方面具有丰富的经验。

OpenStack是服务器托管公司RackSpace与NASA共同发起的开放源代码项目。在开放源代码项目的管理和运营方面,RackSpace和NASA显然缺乏足够的经验。针对OpenStack

OpenStack项目的批评集中在(1)RackSpace对项目有过于强烈的控制欲,(2)OpenStack项目的运作对于社区成员来说基本上是不透明的,(3)OpenStack项目对同类开放源代码项目的攻击性过強。

社区规模较小,主要参与者为支持/参与该项目的公司人员,以及少量的用户。有几个通过邮件列表进行技术方面2008年初发布第一个开放源OpenStack项目的流量稍的沟通,通常在48小时内得OpenNebula

代码版本,2010年初大力推大。在网络上搜索到一些中文到回应。

进开源社区的建设。 版安装和配置方面的文章,基本上是以讹传讹,缺乏可操作性。英文版的相关文章也不多,可操作的更少。

起源于集群管理方面的软件,2006年公开源代码,2008有一些零星的用户,基本上没年免费发布,目前版本为4.8。

有形成社区。虽然功能还在不OpenQRM

断更新,但是用户文档的日期在论坛发布的问题,大约有50%左右没有得到回应。通过电子邮件进行商务沟通,反应迅速,在24小时以内得到回应。

2005年启动的研究性项目,公开的邮件列表,流量比社区规模较小,主要参与者为支持/参与该项目的公司人员。有几个公开的邮件列表,流量很小。由于该项目比较新,在网络上可以参考的安装与配置方面的文章不多。Ubuntu 11.04服务器版同时支持Eucalyptus和OpenStack作为UEC的基础构架,将有助于OpenStack的推广。

通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。商务方面的邮件沟通,没有得到回应。

Eucalyptu的推广。

圳设有办事处,在中国有工程师提供支持团队。

项目的运营团队较小,似是2008年的。相关论坛的活乎只有Matt

Rechenburg一个人。

跃程度比OpenStack和OpenNebula更差。

围绕Xen Cloud Platform有XenServer

Citrix公司的产品,与Xen项一些开放源代码的项目,用于目的发展基本同步。

替代XenCentor提供基于桌初期商务沟通的速度比较快。

面或者是浏览器的管理功能。

Oracle VM

Oracle公司的产品,用户量有一定数量的用户,但是没有初期商务沟通的速度比较快。较小。Oracle VM仅仅是形成社区。在网络上缺少与在技术方面的沟通,Oracle

Oracle用户生态系统中的一Oracle相关的讨论与交流。在国内没有相应的技术人员部分,不是Oracle的关键业Oracle VM团队有一个博客提供支持。

务。 网站,但是最近两篇文章的日期分别是2010年11月和2008年1 月。产品下载的速度很慢。

用户数量较少,论坛不是很活源于2008年成立的VMOps公司,2010年五月启用跃。官方文档非常完备,按照文档操作至少能够顺利地完商务沟通比较困难,通过社区成安装和配置过程。网络上可论坛和电子邮件提出的问题CloudStack

域名,2010年6

以搜索到一些可操作的安装都没有得到回应。

月共同启动OpenStack项和配置文档(得益于目。

CloudStack的安装和配置比较简单)。

起源于2006年发起的XenMan项目,与Xen项目ConVirt

的发展基本同步。目前的版本为ConVirt 2.0。现任CEO和工程部门EVP均来自Oracle。

用户规模与Eucalyptus相当,论坛的活跃程度很高。官商务沟通非常顺畅,社区发表方文档非常完备,按照文档操在论坛上的问题通常在48小作至少能够顺利地完成安装的中英文的安装配置教程也基本可用。

时内得到回应,通过技术支持24小时内得到回应。

和配置过程。在网络上搜索到电子邮件提出的问题通常在

(3)综合评估

总的来说,虚拟化管理软件的用户还不是很多。大部分虚拟化管理软件的社区规模较小,活跃程度也不高。除了Eucalyptus积极地鼓励社区用户参与项目的开发与测试之外,其他项目选择开放源代码只是一种营销策略。如果排除技术和价格方面的因素,最值得选择的软件无疑是Eucalyptus和ConVirt。这两个项目拥有最大和最活跃的用户社区,其开发/运营团队与潜在客户之间的沟通最为顺畅。XenServer也是一个值得考虑的对象,但是XenServer社区版要求对每台物理服务器都要每年更新一次许可证。对于拥有大量物理服务器的公司来说,管理和维护成千上百个许可证将是一个令人头疼的问题。

架构篇:

(1)系统构架比较

系统构架

Eucalyptus是一个与Amazon EC2兼容的IaaS系统。Eucalyptus包括云控制器(CLC)、Eucalyptus

Walrus、集群控制器(CC)、存储控制器(SC)和节点控制器(NC)。CLC是整个Eucalyptu系统的核心,负责高层次的资源调度,例如向CC请求计算资源。Walrus是 一个与Amazon

S3类似的存储服务,主要用于存储虚拟机映像和用户数据。CC是一个集群的前端,负责

协调一个集群内的计算资源,并且管理集群内的网络流量。SC是一个与Amazon EBS类似的存储块设备服务,可以用来存储业务数据。NC是最终的计算节点,通过调用操作系统层的虚拟化技术来启动和关闭虚拟机。在同一个集群(CC)内的所有计算节点(NC)必须在同一个子网内。 在一个集群(CC)内通常需要部署一台存储服务器(SC),为该集群内的计算节点提供数据存储服务。

Eucalyptus通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行一个eucalyptus-nc的服务。该服务在集群控制器(CC)上注册后,云控制器(CLC)即可通过集群控制器(CLC)将需要运行的虚拟机映像文件(EMI)拷贝到该计算节点上运行。

Eucalyptus将虚拟机映像文件存储在Walrus上。当用户启动一个虚拟机实例的时候,Eucalyptus首先将相应的虚拟机映像(EMI)从Walrus拷贝到将要运行该实例的计算节点(NC)上。当用户关闭(或者是由于意外而重启)一个虚拟机实例的时候,对虚拟机所做的修改并不会被写回到Walrus上原来的虚拟机映像(EMI)上,所有对该虚拟机的修改都会丢失。如果用户需要保存修改过的虚拟机,就需要利用工具(euca2ools)将该虚拟机实例保存为新的虚拟机映像(EMI)。如果用户需要保存数据,则需要利用存储服务器(SC)所提供的弹性块设备来完成。

OpenStack

OpenStack是一个与Amazon EC2兼容的IaaS系统。OpenStack包括OpenStack

Compute和OpenStack Object Storage两个部分。

OpenStack Compute又包含Web前端、计算服务、存储服务、身份认证服务、存储块设备(卷)服务、网络服务、任务调度等多个模块。OpenStack

Compute的不同模块之间不共享任何信息,通过消息传递进行通讯。因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。

OpenStack Object Store可以利用通用服务器搭建可扩展的海量数据仓库,并且通过冗余来保证数据的安全性。同一份数据的在多台服务器上都有副本,将出现故障的服务器从集群中撤除不会影响数据的完整性,加入新的服务器后系统会自动地在新的服务器上为相应的文件创建新的副本。从功能上讲,OpenStack Object Store同时具备Eucalyptus中的Walrus服务和弹性块设备(SC)服务。不过OpenStack Object Store不是一个文件系统,不能够保证数据的实时性。从这个方面来考虑,OpenStack Object Store更适合用于存储需要长期保存的静态数据,例如操作系统映像文件和多媒体数据。

OpenStack通过Agent的方式来管理计算资源。在每一个计算节点上,都需要运行nova-network服务和nova-compute服务。这些服务启动之后,就可以通过消息队列来与云控制器进行交互。

OpenNebula的构架包括三个部分:驱动层、核心层、工具层。驱动层直接与操作系统打交道,负责虚拟机的创建、启动和关闭,为虚拟机分配存储,监控OpenNebula

物理机和虚拟机的运行状况。核心层负责对虚拟机、存储设备、虚拟网络等进行管理。工具层通过命令行界面/浏览器界面方式提供用户交互接口,通过API方式提供程序调用接口。

OpenNebula使用共享存储设备(例如NFS)来提供虚拟机映像服务,使得每一个计算节点都能够访问到相同的虚拟机映像资源。当用户需要启动或者是关闭某个虚拟机时,OpenNebula通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。这种模式也称为无代理模式,由于不需要在计算节点上安装额外的软件(或者服务),系统的复杂度也相对降低了。

OpenQRM

OpenQRM是为了管理混合虚拟化环境而开发的一个虚拟化管理框架,包括基础层(框架层)和插件。基础层(框架)的作用是管理不同的插件,而对虚拟资

源的管理(计算资源,存储资源,映像资源)都是通过插件来实现的。OpenQRM的框架类似于Java语言中的Interface,定义了一系列虚拟机资源生命周期管理的方法,例如创建、启动、关闭虚拟机等等。在个框架的基础上,OpenQRM针对不同的虚拟化平台(Xen、KVM)实现了不同的插件,用来管理不同的物理和虚拟资源。当出现新的资源需要支持的时候,只需要为OpenQRM编写新的插件,就可以无缝地整合到原来的环境中去。

OpenQRM插件也是使用无代理模式工作的。当需要管理的目标节点提供SSH登录方式时,OpenQRM插件通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,OpenQRM插件通过目标节点所提供的远程调用接口实现对目标平台的管理。

OpenQRM是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口

XenServer是对Xen虚拟化技术的进一步封装,在Dom0上提供一系列命令行和远程调用XenServer

接口,独立的管理软件XenCenter通过远程调用这些接口来管理多台物理服务器。XenSever在标准Xen实现之上所实现的远程调用接口类似于其他虚拟化管理平台中所实现的Agent,因此XenServer是通过Agent方式工作的。由于只考虑对Xen虚拟化技术的支持,XenServer的构架相对简单。

XenServer是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。管理软件XenCenter是运行在Windows操作系统上的,对于需要随时随地访问管理功能的系统管理员来说有点不便。目前有一些第三方提供的开放源代码的基于浏览器的XenServer管理工具,但是都还处于比较早期的阶段。

Oracle VM包括Oracle VM Server和Oracle VM Manager两个部分。Oracle VM Server在支持Xen的Oracle Linux上(Dom0)运行一个与Xen交互的Agent,该Agent为Oracle VM Manager提供了远程调用接口。Oracle

Oracle VM

VM Manager通过一个Java应用程序来对多台Oracle VM Server上的虚拟资源进行管理和调度,同时提供基于浏览器的管理界面。由于只考虑对Xen虚拟化技术的支持,Oracle VM Server / Manager的构架相对简单。

Oracle VM是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。

值得注意的是,Oracle VM Manager还通过Web Service的方式提供了虚拟机软件生命周期管理的所有接口,使得用户可以自己使用不同的编程语言来调用这些接口来开发自己的虚拟化管理平台。不过由于Oracle在开放源代码方面的负面形象,似乎没有看到有这方面的尝试。

与OpenQRM类似,CloudStack采用了―框架 + 插件‖的系统构架,通过不同的插件来提供对不同虚拟化技术的支持。对于标准的Xen / KVM计算节点,CloudStack

CloudStack需要在计算节点上安装Agent与控制节点进行交互;对于XenServer / VMWare计算节点,CloudStack通过XenServer / VMWare所提供的XML-RPC远程调用接口与计算节点进行交互。

CloudStack本身是一个虚拟化管理平台,但是它通过CloudBridge提供了与Amazon EC2相兼容的云管理接口,对外提供IaaS服务。

ConVirt是一个虚拟化管理平台,使用无代理模式工作。当需要管理的目标节点提供SSH登录方式时,ConVirt通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管 理命令。当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,ConVirt插件通过目标节点所提供的远程调用接口实现对目标平台的管理。

ConVirt

ConVirt是一个虚拟化管理平台,不提供与Amazon EC2兼容的云管理接口。但

是ConVirt 3.0提供了与Amazon EC2 / Eucalyptus的用户接口,使得ConVirt用户能够在同一个Web 管理界面下同时管理Amazon EC2 / Eucalyptus提供的虚拟计算资源。

(2)云管理平台还是虚拟化管理平台?

在IaaS这个层面,云管理和虚拟化管理的概念非常接近,但是有一些细微的差别。

虚拟化是指在同一台物理机器上提供多台虚拟机器(包括CPU、内存、存储、网络等计算资源)的能力。每一台虚拟机器都能够像普通的物理机器一样运行完整的操作系统以及执行正常的应用程序。当需要管理的物理机器数量较小时,虚拟机生命周期管理(资源配置、启动、关闭等等)可以通过手工去操作。当需要管理的物理机器数量较大时,就需要写一些脚本/程序来提高虚拟机生命周期管理的自动化程度。以管理和调度大量物理/虚拟计算资源为目的系统,属于虚拟化管理系统。这样一个系统,通常用于管理企业内部计算资源。

云计算是指通过网络访问物理/虚拟计算机并利用其计算资源的实践。通常来讲,云计算提供商以虚拟机的方式向用户提供计算资源。用户无须了解虚拟机背后实际的物理资源状况,只需了解自己所能够使用的计算资源配额。因此,虚拟化技术是云计算的基础。任何一个云计算管理平台,都是构建在虚拟化管理平台的基础之上的。如果某个虚拟化管理平台仅对某个集团内部提供服务,那么这个虚拟化管理平台也可以被称为―私有云‖;如果某个虚拟化管理平台对公众提供服务,那么这个虚拟化管理平台也可以被称为―公有云‖。服务对象的不同,对虚拟化管理平台的构架和功能提出了不同的需求。

私有云服务于集团内部的不同部门(或者应用),强调虚拟资源调度的灵活性。系统管理员需要为不同的部门(或者应用)定制不同的虚拟机,根据部门(或者应用)对计算资源的需求对分配给某些虚拟机的计算资源进行调整。从这个意义上来讲,OpenQRM、XenServer、Oracle VM、CloudStack和ConVirt比较适合提供私有云服务。

公有云服务于公众,强调虚拟资源的标准性。通过将计算资源切割成标准化的虚拟机配置(多个系列的产品,每个产品配置相同数量的CPU、内存、磁盘空间、网络流量配额),公有云提供商可以通过标准的服务合同(Service Level Agreement, SLA)以标准的价格出售计算资源。当用户对计算资源的需求出现改变的时候,用户只需要缩减或者是增加自己所使用的产品数量。由于Amazon EC2是目前比较成功的公有云提供商,大部分云管理平台都在某种程度上模仿Amazon EC2的构架。从这个意义上来讲,Eucalyptus、OpenNebula和OpenStack提供了与Amazon EC2兼容或者是类似的接口,比较适合提供公有云服务。

公有云和私有云之间的界限,就像―内部/外部‖和―部门/合作伙伴‖的概念一样,并不十分明显。根据项目需求的不同,可能会有不同的解释。

功能篇:

(1)支持的虚拟化技术

Eucalyptus

OpenStack

OpenNebula

OpenQRM

XenServer

Oracle VM

CloudStack

ConVirt Y

Xen

Y

Y

Y

Y

Y

Y

Y

Y

KVM

Y

Y

Y

Y

Y

XenServer VMWare

/ XCP

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

LXC openVZ

可以看出,Xen和KVM是目前获得最广泛的厂商虚拟化技术,紧随其后的是VMWare。需要注意的是,XenServer是对Xen的进一步封装,可以认为是一种新的虚拟化平台(用户在XenServer上不能直接执行Xend相关命令)。

(2)系统安装和配置

前端 计算节点

使用Ubuntu 10.04或者apt-get install或者yum

备注

Eucalyptus包含了一个会造成一定的麻烦。另外,计Eucalyptus

使用Ubuntu 10.04或者apt-get install或者yum

CentOS 5.5操作系统,通过CentOS 5.5操作系统,通过dhcpd,如果配置不好的话,install的方式直接安装二进install的方式直接安装二进算节点(NC)与集群控制器制包,构建一个包含CLC、 制包,构建一个提供NC服务(CC)必须在一个C类子网Walrus、SC、CC的前端。的计算节点。根据官方网站提里(例如,掩码为根据官方网站提供的文档进供的文档进行操作,是比较容255.255.255.0)。如果NC和CC在一个超网里(例如,掩码为255.255.0.0),在注册服务的时候会出现一些问题。

行操作,是比较容易实现的。 易实现的。

OpenStack

在Ubuntu 10.04上利用官在Ubuntu 10.04上利用官对于一个简单的系统,安装配方网站提供的nova-install方网站提供的nova-install置比较简单。

脚本进行安装,基本上没有遇脚本进行安装,基本上没有遇到问题。 到问题。

OpenNebula

使用CentOS 5.5操作系统,按照官方文档创建配置好CentOS Karan源,/srv/cloud/one和条目。下载对应的rpm包,过NFS共享/srv/cloud目直接yum localinstall

–nogpgcheck

直接完成安装过程。按照官方文档创建/srv/cloud/one和

/srv/cloud/images目录,通过NFS共享/srv/cloud目在CentOS 5.5 x86_64上进行安装的时候,如果按照官先配置好必要的软件依赖关启用kbs-CentOS-Testing/srv/cloud/images目录,通方网站提供的文档进行操作,录。创建cloud用户组和属于系再安装opennebula,就会cloud用户组的oneadmin出现xmlrpc-c包版本不对的错误。

opennebula*.rpm,就可以用户。

网络上可以搜索到一些安将前端服务器上key拷贝到计算节点上oneadmin用户的录。创建cloud用户组和属于oneadmin用户的ssh

装配置方面的文档和教cloud用户组的oneadmin用户。

程,但是对于熟悉Linux但是不熟悉authorized_keys中。这OpenNebula的开发人样前端服务器才可以通过员来说,很难按照这些文SSH登陆到计算节点上。

档完成安装和配置过程。

OpenQRM

在Ubuntu 10.04上通过SVN下载OpenQRM源代计算节点配置好网桥和虚拟化支持之外不需要特别的安在Ubuntu 10.04上安装前端时,可能需要手工安装码,进入源代码目录后依次执装和配置。在OpenQRM管dhcp3-server。

行make / make install /

理界面中启用相对应的插件make start命令。按照官方即可通过插件对计算节点进文档的描述创建数据库,然后行管理。

通过Web界面进行下一步的安装和配置。

启用插件管理虚拟资源的操作流程不够直观,并且缺乏详细的文档。

刻每一台XenServer服务器都XenServer

前端为基于Windows操作系从Citrix的网站下载ISO,统的XenCenter。在要.NET Framework

非常简单,基本上不需要配盘直接安装在裸机上即可。计需要安装从Citrix获得License,并且每年更新一次。

XenCenter中把新增计算资Windows XP上可以安装,需算节点安装完毕后,在Update 2的支持。安转过程源添加到资源池即可。

置。

Oracle VM

在CentOS 5.5 x86_64上从Oracle的网站下载ISO,最好从Oracle的官方网站下进行安装。将ISO文件mount起来后,执行即可。

刻盘直接安装在裸机上即可。载,不过速度很慢。通过迅雷计算节点安装完毕后,在增计算资源添加到资源池即可。

等途径下载的文件,看起来似在启动操作系统安装过程中会出现错误。

Oracle VM Manager中把新乎没有问题,但是ISO刻盘后

如果在Oracle VM

Server上安装Oracle

VM Manager,建议分区的时候把/ 分得大一点,不然的话会由于磁盘空间不够而无法安装Oracle

VM Manager。

CloudStack

在CentOS 5.5和Ubuntu

计算节点上必须安装相应的10.4上,按照官方网站的安Agent。

装文档顺序操作,基本没有问题。

安装配置相对简单,但是在删除物理资源的时候存在较多的问题。

ConVirt

在CentOS 5.5和Ubuntu

在计算节点上的root用户必安装配置相对简单。

10.4上,按照官方网站的安须允许管理节点上运行装文档顺序操作,基本没有问ConVirt服务的用户通过key

题。

auth方式登录。

在Ubuntu 10.04上安装

企业版,需要手工sudo

apt-get install

libmysqlclient-dev。

不同的虚拟化管理软件有不同的设计理念,采用不同的系统构架,类似的概念也采用不同的术语来表述,其学习曲线也各不相同。对于大部分用户来说,虚拟化管理软件还是个新生事物。即使是粗略地尝试一下利用不同的虚拟化管理软件来安装、配置和测试一个最小规模的私有云系统,也需要花费不少的时间和精力。在这个过程当中,遇见各种各样的问题都在所难免。不过,也只有亲身经验过这些形形色色的问题,才能够切身体会不同虚拟化管理软件的优点和缺点,并且在分析、总结、归纳的基础上形成自己独特的观点。

(3)用户界面

概述 用户权限 资源池和虚拟机管理

Eucalyptus

Eucalyptus提供了一个基于在Eucalyptus社区版中只管理员可以通过注册或者是撤浏览器的简单用户界面,可以有两种类型的用户:管理员,销注册某个计算节点,配置标准完成用户注册,下载普通用户。在Eucalyptus产品类型的计算资源(CPU、内credentials,对提供的产品企业版中进一步提供了用户存、存储)。普通用户只能够在类型进行简单配置等。资源池组,属于某个用户组的用户标准配置的基础上创建、启动、和虚拟机生命周期管理需要可以管理属于该用户组的计关闭虚拟机,不能够定制化自己通过euca2ools在命令行模算资源。

式下完成。

所需要的计算资源。

虚拟机映像文件(EMI)的euca2ools是一组基于命令行的工具,可以与Amazon EC2/S3相兼容的Web Service进行交互。该用具可以管理基于Amazon EC2、Eucalyptus和OpenStack,OpenNebula的云计算服务。

euca2tools的主要功能包括:

– 查询可以使用的域

– 管理SSH Key

制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。在FireFox浏览器中,可以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。ElasticFox的界面不够美观,并且提供的功能非常有限。

Eucalyptus不提供console功能。用户可以通过SSH连接到自己所管理的虚拟机。

– 虚拟机生命周期管理

– 安全组管理

– 管理卷和快照

– 管理虚拟机映像

– 管理IP

每一个公开发布的虚拟机映像(EMI),都是一个模板。用户创建虚拟机实例的时候,系统根据用户选择的EMI将相应的虚拟机映像拷贝到目标计算节点上运行。Eucalyptus根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。

Eucalyptus中的虚拟机实例只是原虚拟机映像(EMI)的一个副本,用户在运行的实例中对虚拟机所做的任何修改,不会被保存到原来的虚拟机映像中。如果用户将运行的虚拟机实例关闭(例如:shutdown),用户对虚拟机所作的任何修改都会丢失。如果用户需要保存自己对虚拟机所做的修改,用户可以选择使用弹性块设备来保存数据,或者将正在运行的虚拟机实例发布为新的EMI。(Amazon EC2自动地将停止运行的虚拟机实例保存为新的AMI,直到用户销毁该虚拟机实例为止。因此,用户可以shutdown自己的虚拟机实例,但是保存自己对虚拟机所作的修改,直到用户选择销毁该虚拟机实例为

止。)

OpenStack

OpenStack不缺省地提供基OpenStack将用户分成如与Eucalyptus类似,虚拟机映于浏览器的用户界面。系统管下几个类别:

理员需要手工创建用户。大部分的管理操作,需要在命令行

下进行。 尽管OpenStack像文件(EMI)的制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。同样,在FireFox浏和Eucalyptus在构架上有admin — 云服务管理览器中,可 以利用ElasticFox很大的不同,但是所暴露给用员,拥有所有管理权限。插件,在浏览器中启动、监控和

户的界面是类似的(两者都模口规范)。因此,OpenStack同样可以使用Eucalyptus所提供的euca2ools进行管理。

关闭虚拟机。

仿了Amazon EC2的用户接itsec — IT安全管理员,具有隔离有问题的虚拟

机实例的权限。

projectmanager —

项目管理员,可以增加属于该项目的新用户,管理OpenStack不提供虚拟机console功能。用户可以通过SSH连接到自己所管理的虚拟机。

正在开发中的openstack-dashboard,

OpenStack的项目和django-nova项虚拟机映像,管理虚拟机openstack-dashboard生命周期。

基于浏览器提供了比较完目提供了一个基于浏览netadmin — 网络管理整的资源池管理功能和虚员,负责IP分配,管理器的用户界面,没有被集拟机生命周期管理功能。虽防火墙。

成到OpenStack安装脚然界面还比较简单,但是已本中,需要单独安装。

developer — 开发人经处于可用的状态。

员,可以登录进入属于本项目的虚拟机,管理虚拟机生命周期

OpenStack的模板和虚拟机实例机制与Eucalyptus类似。与Eucalyptus类似,在模仿Amazon EC2的OpenStack根据某种算法云平台(Eucalyptus,

自动决定用户的虚拟机将OpenStack,

OpenNebula)中,度最细的用户权限管理模式。

在哪个物理服务器上运行,用户对物理服务器的状况OpenStack提供了颗粒一无所知。

OpenNebula

OpenNebula不缺省地提供OpenNebula只有两种类型在早期版本中,OpenNebula基于浏览器的用户界面。系统的用户:管理员,普通用户。 管理员可以在后台通过命令行

管理员需要手工创建用户。大部分的管理操作,需要在命令行下进行。

来管理资源池和虚拟机生命周期。 同样,在FireFox浏览器中,可 以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。

OpenNebula目前有两个基于浏览器的用户界面:SunStone和OneMC。这两个项目需要单独安装。

同样,OpenNebula提供了与Amazon EC2相兼容的Web Service接口。因此,可以通过FireFox所提供的ElasticFox插件和Eucalyptus提供的euca2ools工具集与OpenNebula云平台进行交互。

SunStone和OneMC这两个项目都提供了比较完整的资源池管理和虚拟机生命周期管理功能。两个项目的界面都比较简单,但是基本上处于可用的状态。SunStone没有提供虚拟机console功能,OneMC通过VNC协议提供了虚拟机console功能。

OpenNebula的模板和虚拟机实例机制与Eucalyptus类似。但是并不缺省地使用euca2ools作为工具。

与Eucalyptus类似,OpenNebula根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。

OpenQRM

基于浏览器的用户界面,功能OpenQRM的管理界面只有通过启用不同的插件,可以管理比较丰富。 两种用户:管理用户,普通不同的计算资源。所有的资源池用户。普通用户只有查看权和虚拟机生命周期管理操作都限,没有管理权限。 可以通过浏览器界面完成。

OpenQRM的novnc插件可以提供基于VNC协议的虚拟机console功能。

XenServer

XenCenter是基于系统管理员登录XenCenter授权用户可以通过图形界面方便地进行资源池和虚拟机生命观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。

Windows的桌面应用,安装之后,可以结合Active

观,功能强大。 的层面分配管理权限。

与操作都非常简单,界面美Directory在用户和用户组周期管理。在图形界面上可以直

在参与评测的8 个软件

中,XenCenter的用户界面是表现最出色的。基于Windows桌面的应用能够迅速地对用户的点击动作作出反应,从而提高用户体验的满意度。

提供基于VNC的虚拟机console。

可以基于模板的部署新的虚拟机。

Oracle VM

Oracle VM Manager提供Oracle VM Manager同时授权用户可以通过图形界面方了基于浏览器的管理界面。

提供了role和group的概便地进行资源池和虚拟机生命在图形界面上可以直念。其中role定义了用户所周期管理。具备的权限,属于同一个所被授予的权限。

观地监控物理服务器和虚拟机存、存储、网络活动)。

group的用户拥有该group的计算资源使用情况(CPU、内

Oracle VM Manager提供了三种role:

提供基于VNC的虚拟机console。

user — 拥有指定资源可以基于模板的部署新的池的虚拟机生命周期管虚拟机。

理权限。

manager — 拥有除了用户管理之外的所有管

理权限。

administrator — 拥有整个系统的管理权限。

功能CloudStack根据用户的CloudStack

基于浏览器的用户界面,丰富,美观大方。

CloudStack对物理资源的管理实际情况,按照―机房(Zones)role将用户分成三个类型:

完整地模拟了一个物理机房的

-》机柜(Pods)-》集群(Cluster)-》服务器(Server)‖的结构对物理服务admin — 全局管理员。

器进行组织,使得管理员能够在domain-admin — 域管理界面里面的计算资源和机管理员,可以对某个域下房里面的计算资源建立起直观的物理和虚拟资源进行管理。

user — 个体用户,可以管理自己名下的虚拟机资源。

的一一对应关系。

授权用户可以通过图形界面方便地进行资源池和虚拟机生命周期管理。在图形界面上可以直观地监控物理服务器和虚拟机的计算资源使用情况(CPU、内存、存储、网络活动)。

提供基于VNC的虚拟机console。

可以基于模板的部署新的虚拟机。

ConVirt

基于浏览器的用户界面,功能社区版可以注册多个用户,授权用户可以通过图形界面方丰富,美观大方。 并可将用户按照用户组进行便地进行资源池和虚拟机生命分类,但是所有的用户拥有周期管理。在图形界面上可以直相同的全局管理权限。企业观地监控物理服务器和虚拟机版则提供了更细致的用户权的计算资源使用情况(CPU、内限管理机制。除此之外,企存、存储、网络活动)。提供基业版还提供了对LDAP的支于VNC的虚拟机console。

持。

可以基于模板的部署新的

虚拟机。

ConVirt的最大优点,在于其通过时程图的方式在不同的层次上直观地展示计算资源(包括物理资源和虚拟资源)的利用情况和健康状况。在整个数据中心和资源池的层面,ConVirt实时显示资源池数量、物理服务器和虚拟机数量、虚拟机密度、存储资源使用状况、负载最高的N 台物理服务器和虚拟机。在物理服务器和虚拟机的层面,ConVirt实时显示CPU和内存使用情况,监控人员可以通过CPU和内存时程图及时地发现或者是调查系统异常情况。

在所有参与评测的虚拟化管理软件中,XenServer / XCP和ConVirt的图形用户界面是做的最好的。XenCenter的图形界面的优点在于提供了独一无二的用户体验,ConVirt的图形界面的优点在于以图形的方式直观地展示了从机房到虚拟机的健康状况。CloudStack的图形界面非常大气,但是在功能上不如ConVirt那么实用。不过按照CloudStack的目前的发展势头来看,下一个版本可能比较值得期待。

由于进行评测的时间较短,并且测试系统规模较小的原因,暂时无法对各个软件的稳定性、健壮性、扩展性等等关键问题作出评估

商务篇:

目前市面上形形色色的虚拟化管理软件总数很多,这一系列文章所提及的几个软件仅仅其中的几个代表。作为一个机构、或者是一家企业,在向虚拟化过渡时都不可避免地要面临软件

选型的问题。本文作为这一系列文章的最后一篇,从商务和功能两个方面提出自己的一点粗浅意见。

(1)商务评估

从商务上进行软件选型,性价比通常是一个决定性的因素。在假定参与选型的软件全部满足技术要求的前提下,企业(机构)需要考虑的因素包括软件的授权协议是否友好、许可证管理的难易程度、软件和服务的价格高低、运营团队在业界的声誉、开发者社区和用户社区的规模和活跃程度、商业与技术沟通的难易程度。

授权协议/许可证管理 — 以全部开放源代码为10分,部分开放源代码(例如以企业版的形式提供某些高级功能,或者以服务的形式提供特别版本的安装包和补丁)扣1 分。商业版本需要在控制节点安装许可证不扣分,需要在所有计算节点安装许可证扣1 分,许可证需要每年更新者扣1 分。

价格指数 — 以全部功能免费使用为10分,以企业版的模式提供全部功能的软件,每台物理服务器每花费500美元扣1 分。

运营团队 — 以运营团队的规模、背景、影响力评分,存在的主观因素较多。

社区因素 — 以开发者和用户社区的规模和活跃程度评分,存在的主观因素较多。

沟通交流 — 以个人与运营团队、开发者社区、用户社区之间的沟通顺畅程度评分,存在的主观因素较多。

授权协议

价格指数 运营团队 社区因素 沟通交流 总分

许可证管理

Eucalyptus

OpenStack

OpenNebula

OpenQRM

XenServer

Oracle VM

CloudStack

ConVirt

9

10

9

9

7

9

9

9

8

10

9

8

8

7

8

8

9

8

7

6

9

7

7

8

9

8

8

7

10

6

6

9

10

7

9

8

9

7

7

10

45

43

42

37

43

36

37

44

(2)功能评估

从功能上进行虚拟化管理软件选型,需要考虑的因素包括该软件所支持的虚拟化技术、安装配置的难易程度、开发和使用文档的详尽程度、所提供的功能是否全面以及用户界面是否直观友好、二次开发的难易程度、是否提供物理资源和虚拟资源的监控报表等等。

虚拟化技术支持 — 仅支持一种虚拟化技术为6 分,每增加一种虚拟化技术加1 分,10分封顶。

安装配置 — 以按照官方文档进行安装配置的难易程度评分,存在的主观因素较多。

开发/使用文档 — 以官方所提供的开发与使用文档的详尽程度评分,文档详尽程度越高者得分越高。

功能与界面 — 综合评分,涵盖用户进行物理资源和虚拟资源管理、虚拟机生命周期管理、访问虚拟机资源和存储资源的难易程度,用户界面的美观易用程度,以及综合用户体验。

二次开发 — 基础得分6 分,提供与Amazon EC2相兼容的程序调用接口者加3 分,提供二次开发接口但是与Amazon EC2不兼容者加2 分。

监控报表 — 基础得分6 分,依系统所提供监控与分析功能的详尽程度加分。

虚拟化技术支持

Eucalyptus 8

OpenStack 10

OpenNebula 8

OpenQRM 10

8

8

8

9

10

9

9

10

9

8

7

5

10

8

8

10

安装配置 开发/使用功能与界面 二次开发

文档

4

4

4

10

10

7

10

10

9 (Amazon 6

WS)

9 (Amazon 6

WS)

9 (Amazon 6

WS)

6 (OS) 7 47

53

45

49

55

42

45

44

监控报表 总分

XenServer 6

Oracle VM 6

8 (Plugin) 9

8 (WS)

6 (OS)

8 (API)

7

8

10

CloudStack 8

ConVirt 7

(3)综合评估

从商务上考虑,Eucalyptus和ConVirt以微弱 的优势领先于其他选项。Eucalyptus是私有云管理平台的先行者。Ubuntu 10.04选择捆绑Eucalyptus作为UEC的基础构架,使得Ecualyptus比其他的私有云管理平台拥有更多的用户和更加活跃的社区。此外,Ecualyptus在中国国内有销售和技术支持人员,在沟通上比选择其他软件要更加容易。ConVirt排名第二,根本原因在于其销售和技术支持团队与(潜在的)客户保持积极而有效

的沟通。Citrix XenServer仅仅与其他两个选项并列排名第三,输在其过于严苛的许可证管理政策。的确,要给100台以上的服务器单独安装许可证并且每年更新一次,可不是一件有意思的事情。

从功能上考虑,ConVirt与XenServer遥遥领先于其他选项。虽然ConVirt仅仅支持Xen和KVM两种虚拟化技术,但是其安装配置相对简单,文档详尽、功能齐全、界面美观、是比较容易上手的虚拟化管理软件。更重要的是,ConVirt的监控报表功能直观地展示了从数据中心到虚拟机的CPU、内存利用情况,使得用户对整个数据中心的健康状况一目了然。同样,XenServer虽然仅支持Xen一种虚拟化技术,但是在安装配置、操作文档、用户界面等方面都不亚于ConVirt。如果用户对基于Windows的界面没有强烈的抵触情绪的话,XenServer是比较值得考虑的一个选型。

综合如上考虑,对于希望利用虚拟化管理软件提高硬件资源利用率和虚拟化管理自动化程度的企业(机构)来说,建议使用ConVirt来管理企业(机构)的计算资源。如果网管人员不希望深入了解Linux操作系统,并且所管理的物理服务器数量有限的话,XenServer也是一个不错的选择。ConVirt的浏览器界面是开放源代码的,用户可以对其进行定制化,将自己所需要的其他功能添加到同一个用户界面中去。XenCenter则提供了一种插件机制,用户可以通过插件的方式讲自己的功能集成到XenCenter中。

不过,你的基础设施是否需要与Amazon EC2相兼容呢?也就是说,你的用户是否需要使用他们用于访问和操作Amazon EC2的脚本和工具来访问你的计算资源呢?如果是这样的话,你可能需要在Eucalyptus和OpenStack之间作一个选择(CloudStack和OpenNebula同样提供了与Amazon EC2兼容的操作接口,但是CloudStack在商务方面得分不高,OpenNebula在功能方面得分不高)。Eucalyptus的历史比OpenStack稍长,用户群比OpenStack要大,社区的活跃程度也比OpenStack要高。不过OpenStack的后台老板NASA比Eucalyptus要财大气粗,Ubuntu 11.04也集成了OpenStack作为其UEC的基础构架之一,表明OpenStack已经得到了社区的重视和支持。总的来说,开放源代码的云构架,还是一个不断发展之中的新生食物。笔者只能够建议用户亲自去安装使用每一个软件,最终基于自己的经验以及需求达到一个最适合自己的选择。


本文标签: 管理 用户 提供 需要 安装