虚拟化管理软件对比研究.docx
- 文档编号:5908523
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:34
- 大小:1.17MB
虚拟化管理软件对比研究.docx
《虚拟化管理软件对比研究.docx》由会员分享,可在线阅读,更多相关《虚拟化管理软件对比研究.docx(34页珍藏版)》请在冰豆网上搜索。
虚拟化管理软件对比研究
虚拟化管理软件对比研究
最近笼统地学习和试用了几款比较有名的虚拟化管理软件。
学习的内容包括Eucalyptus,OpenNebula,OpenStack,OpenQRM,XenServer,OracleVM,CloudStack,ConVirt。
借这一系列文章,对过去一个月的学习内容作一个阶段性的总结。
(1)授权协议、许可证管理、购买价格等方面的比较
授权协议
许可证管理
商业模式
Eucalyptus
社区版采用GPLv3授权协议
企业版使用自定义的商业授权协议
社区版不需要安装许可证
企业版需要在云控制器(CLC)节点上安装许可证
社区版免费使用
企业版按处理器核心总数收费,用户购买的许可证针对特定版本永久有效。
OpenStack
Apache2.0授权协议
不需要许可证
免费使用
OpenNebula
Apache2.0授权协议
不需要许可证
社区版免费使用
企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。
企业版按物理服务器总数收费,每台物理服务器器的服务价格为250欧元每年。
OpenQRM
社区版使用GPLv2授权协议
企业版使用自定义的商业授权协议
不需要许可证
社区版免费使用
企业版将社区版重新打包,提供补丁等程序的访问权限,使得用户能够更容易的安装、配置和管理,以订阅的模式提供服务。
基本、标准和高级服务的价格分别为480、960、1920欧元每月。
XenServer
CitrixXenServer系列产品均使用自定义的商业授权协议
基于XenServer的XenCloudPlatform使用GPLv2授权协议
不管是XenServer还是XenCloudPlatform都需要在每台服务器安装许可证
许可证每年更新一次
XenServer免费版本和开源版本的XenCloudPlatform可以免费使用
XenServer高级版、企业版和白金版按物理服务器数量收费,分别是1000、2500和5000美元。
购买的许可证针对特定版本永久有效
OracleVM
OracleVMServer是基于Xen开发的,使用GPLv2协议发布,从Oracle的网站可以下载到源代码,但是Oracle并不宣传这一点。
OracleVMManager使用自定义的商业授权协议。
OracleVMVirtualBox的二进制版本使用自定义的商业授权协议,源代码使用GPLv2授权协议。
不需要许可证
免费使用,可以购买技术支持。
技术支持的费用为每台物理服务器8184人民币每年。
CloudStack
社区版采用GPLv3授权协议企业版使用自定义的商业授权协议
社区版不需要安装许可证
企业版需要在管理服务器上安装许可证
社区版免费使用
企业版提供增强功能和技术支持,收费模式不详。
ConVirt
社区版使用GPLv2授权协议
企业版使用自定义的商业授权协议
社区版不需要安装许可证
企业版需要在管理服务器上安装许可证
社区版免费使用
企业版提供增强功能和技术支持,按物理服务器数量收费,每个节点费用1090美元。
购买的许可证针对特定版本永久有效。
(2)项目历史与运营团队、社区规模和活跃程度、沟通交流等方面的比较
项目历史与运营团队
社区规模和活跃程度
沟通交流
Eucalyptus
最初是UCSB的HPC研究项目,2009年初成立公司来支持该项目的商业化运营。
现任CEO是曾担任MySQLCEO的MartenMickos,现任工程部门SVP的TimCramerc曾担任Sun公司NetBeans和OpenSolaris项目的执行总监。
整个管理团队对开放源代码项目的管理和运营方面具有丰富的经验。
在同类开放源代码项目当中,Eucalyptus的社区规模最大,活跃程度也最高。
主要原因是该项目起源于大学研究项目,次要原因是管理团队对开放源代码理念的高度认同。
Ubuntu10.04服务器版选择Eucalyptus作为UEC的基础构架,大大地促进了Eucalyptu的推广。
社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。
Eucalyptus在北京和深圳设有办事处,在中国有工程师提供支持团队。
OpenStack
OpenStack是服务器托管公司RackSpace与NASA共同发起的开放源代码项目。
在开放源代码项目的管理和运营方面,RackSpace和NASA显然缺乏足够的经验。
针对OpenStack项目的批评集中在
(1)RackSpace对项目有过于强烈的控制欲,
(2)OpenStack项目的运作对于社区成员来说基本上是不透明的,(3)OpenStack项目对同类开放源代码项目的攻击性过強。
社区规模较小,主要参与者为支持/参与该项目的公司人员。
有几个公开的邮件列表,流量很小。
由于该项目比较新,在网络上可以参考的安装与配置方面的文章不多。
Ubuntu11.04服务器版同时支持Eucalyptus和OpenStack作为UEC的基础构架,将有助于OpenStack的推广。
通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。
商务方面的邮件沟通,没有得到回应。
OpenNebula
2005年启动的研究性项目,2008年初发布第一个开放源代码版本,2010年初大力推进开源社区的建设。
社区规模较小,主要参与者为支持/参与该项目的公司人员,以及少量的用户。
有几个公开的邮件列表,流量比OpenStack项目的流量稍大。
在网络上搜索到一些中文版安装和配置方面的文章,基本上是以讹传讹,缺乏可操作性。
英文版的相关文章也不多,可操作的更少。
通过邮件列表进行技术方面的沟通,通常在48小时内得到回应。
OpenQRM
起源于集群管理方面的软件,2006年公开源代码,2008年免费发布,目前版本为4.8。
项目的运营团队较小,似乎只有MattRechenburg一个人。
有一些零星的用户,基本上没有形成社区。
虽然功能还在不断更新,但是用户文档的日期是2008年的。
相关论坛的活跃程度比OpenStack和OpenNebula更差。
在论坛发布的问题,大约有50%左右没有得到回应。
通过电子邮件进行商务沟通,反应迅速,在24小时以内得到回应。
XenServer
Citrix公司的产品,与Xen项目的发展基本同步。
围绕XenCloudPlatform有一些开放源代码的项目,用于替代XenCentor提供基于桌面或者是浏览器的管理功能。
初期商务沟通的速度比较快。
OracleVM
Oracle公司的产品,用户量较小。
OracleVM仅仅是Oracle用户生态系统中的一部分,不是Oracle的关键业务。
有一定数量的用户,但是没有形成社区。
在网络上缺少与Oracle相关的讨论与交流。
OracleVM团队有一个博客网站,但是最近两篇文章的日期分别是2010年11月和2008年1月。
产品下载的速度很慢。
初期商务沟通的速度比较快。
在技术方面的沟通,Oracle在国内没有相应的技术人员提供支持。
CloudStack
源于2008年成立的VMOps公司,2010年五月启用域名,2010年6月共同启动OpenStack项目。
用户数量较少,论坛不是很活跃。
官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。
网络上可以搜索到一些可操作的安装和配置文档(得益于CloudStack的安装和配置比较简单)。
商务沟通比较困难,通过社区论坛和电子邮件提出的问题都没有得到回应。
ConVirt
起源于2006年发起的XenMan项目,与Xen项目的发展基本同步。
目前的版本为ConVirt2.0。
现任CEO和工程部门EVP均来自Oracle。
用户规模与Eucalyptus相当,论坛的活跃程度很高。
官方文档非常完备,按照文档操作至少能够顺利地完成安装和配置过程。
在网络上搜索到的中英文的安装配置教程也基本可用。
商务沟通非常顺畅,社区发表在论坛上的问题通常在48小时内得到回应,通过技术支持电子邮件提出的问题通常在24小时内得到回应。
(3)综合评估
总的来说,虚拟化管理软件的用户还不是很多。
大部分虚拟化管理软件的社区规模较小,活跃程度也不高。
除了Eucalyptus积极地鼓励社区用户参与项目的开发与测试之外,其他项目选择开放源代码只是一种营销策略。
如果排除技术和价格方面的因素,最值得选择的软件无疑是Eucalyptus和ConVirt。
这两个项目拥有最大和最活跃的用户社区,其开发/运营团队与潜在客户之间的沟通最为顺畅。
XenServer也是一个值得考虑的对象,但是XenServer社区版要求对每台物理服务器都要每年更新一次许可证。
对于拥有大量物理服务器的公司来说,管理和维护成千上百个许可证将是一个令人头疼的问题。
架构篇:
(1)系统构架比较
系统构架
Eucalyptus
Eucalyptus是一个与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)即可通过集群控制器(CC)将需要运行的虚拟机映像文件(EMI)拷贝到该计算节点上运行。
Eucalyptus将虚拟机映像文件存储在Walrus上。
当用户启动一个虚拟机实例的时候,Eucalyptus首先将相应的虚拟机映像(EMI)从Walrus拷贝到将要运行该实例的计算节点(NC)上。
当用户关闭(或者是由于意外而重启)一个虚拟机实例的时候,对虚拟机所做的修改并不会被写回到Walrus上原来的虚拟机映像(EMI)上,所有对该虚拟机的修改都会丢失。
如果用户需要保存修改过的虚拟机,就需要利用工具(euca2ools)将该虚拟机实例保存为新的虚拟机映像(EMI)。
如果用户需要保存数据,则需要利用存储服务器(SC)所提供的弹性块设备来完成。
OpenStack
OpenStack是一个与AmazonEC2兼容的IaaS系统。
OpenStack包括OpenStackCompute和OpenStackObjectStorage两个部分。
OpenStackCompute又包含Web前端、计算服务、存储服务、身份认证服务、存储块设备(卷)服务、网络服务、任务调度等多个模块。
OpenStackCompute的不同模块之间不共享任何信息,通过消息传递进行通讯。
因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。
OpenStackObjectStore可以利用通用服务器搭建可扩展的海量数据仓库,并且通过冗余来保证数据的安全性。
同一份数据的在多台服务器上都有副本,将出现故障的服务器从集群中撤除不会影响数据的完整性,加入新的服务器后系统会自动地在新的服务器上为相应的文件创建新的副本。
从功能上讲,OpenStackObjectStore同时具备Eucalyptus中的Walrus服务和弹性块设备(SC)服务。
不过OpenStackObjectStore不是一个文件系统,不能够保证数据的实时性。
从这个方面来考虑,OpenStackObjectStore更适合用于存储需要长期保存的静态数据,例如操作系统映像文件和多媒体数据。
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是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
XenServer
XenServer是对Xen虚拟化技术的进一步封装,在Dom0上提供一系列命令行和远程调用接口,独立的管理软件XenCenter通过远程调用这些接口来管理多台物理服务器。
XenSever在标准Xen实现之上所实现的远程调用接口类似于其他虚拟化管理平台中所实现的Agent,因此XenServer是通过Agent方式工作的。
由于只考虑对Xen虚拟化技术的支持,XenServer的构架相对简单。
XenServer是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
管理软件XenCenter是运行在Windows操作系统上的,对于需要随时随地访问管理功能的系统管理员来说有点不便。
目前有一些第三方提供的开放源代码的基于浏览器的XenServer管理工具,但是都还处于比较早期的阶段。
OracleVM
OracleVM包括OracleVMServer和OracleVMManager两个部分。
OracleVMServer在支持Xen的OracleLinux上(Dom0)运行一个与Xen交互的Agent,该Agent为OracleVMManager提供了远程调用接口。
OracleVMManager通过一个Java应用程序来对多台OracleVMServer上的虚拟资源进行管理和调度,同时提供基于浏览器的管理界面。
由于只考虑对Xen虚拟化技术的支持,OracleVMServer/Manager的构架相对简单。
OracleVM是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
值得注意的是,OracleVMManager还通过WebService的方式提供了虚拟机软件生命周期管理的所有接口,使得用户可以自己使用不同的编程语言来调用这些接口来开发自己的虚拟化管理平台。
不过由于Oracle在开放源代码方面的负面形象,似乎没有看到有这方面的尝试。
CloudStack
与OpenQRM类似,CloudStack采用了“框架+插件”的系统构架,通过不同的插件来提供对不同虚拟化技术的支持。
对于标准的Xen/KVM计算节点,CloudStack需要在计算节点上安装Agent与控制节点进行交互;对于XenServer/VMWare计算节点,CloudStack通过XenServer/VMWare所提供的XML-RPC远程调用接口与计算节点进行交互。
CloudStack本身是一个虚拟化管理平台,但是它通过CloudBridge提供了与AmazonEC2相兼容的云管理接口,对外提供IaaS服务。
ConVirt
ConVirt是一个虚拟化管理平台,使用无代理模式工作。
当需要管理的目标节点提供SSH登录方式时,ConVirt通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。
当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,ConVirt插件通过目标节点所提供的远程调用接口实现对目标平台的管理。
ConVirt是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
但是ConVirt3.0提供了与AmazonEC2/Eucalyptus的用户接口,使得ConVirt用户能够在同一个Web管理界面下同时管理AmazonEC2/Eucalyptus提供的虚拟计算资源。
(2)云管理平台还是虚拟化管理平台?
在IaaS这个层面,云管理和虚拟化管理的概念非常接近,但是有一些细微的差别。
虚拟化是指在同一台物理机器上提供多台虚拟机器(包括CPU、内存、存储、网络等计算资源)的能力。
每一台虚拟机器都能够像普通的物理机器一样运行完整的操作系统以及执行正常的应用程序。
当需要管理的物理机器数量较小时,虚拟机生命周期管理(资源配置、启动、关闭等等)可以通过手工去操作。
当需要管理的物理机器数量较大时,就需要写一些脚本/程序来提高虚拟机生命周期管理的自动化程度。
以管理和调度大量物理/虚拟计算资源为目的系统,属于虚拟化管理系统。
这样一个系统,通常用于管理企业内部计算资源。
云计算是指通过网络访问物理/虚拟计算机并利用其计算资源的实践。
通常来讲,云计算提供商以虚拟机的方式向用户提供计算资源。
用户无须了解虚拟机背后实际的物理资源状况,只需了解自己所能够使用的计算资源配额。
因此,虚拟化技术是云计算的基础。
任何一个云计算管理平台,都是构建在虚拟化管理平台的基础之上的。
如果某个虚拟化管理平台仅对某个集团内部提供服务,那么这个虚拟化管理平台也可以被称为“私有云”;如果某个虚拟化管理平台对公众提供服务,那么这个虚拟化管理平台也可以被称为“公有云”。
服务对象的不同,对虚拟化管理平台的构架和功能提出了不同的需求。
私有云服务于集团内部的不同部门(或者应用),强调虚拟资源调度的灵活性。
系统管理员需要为不同的部门(或者应用)定制不同的虚拟机,根据部门(或者应用)对计算资源的需求对分配给某些虚拟机的计算资源进行调整。
从这个意义上来讲,OpenQRM、XenServer、OracleVM、CloudStack和ConVirt比较适合提供私有云服务。
公有云服务于公众,强调虚拟资源的标准性。
通过将计算资源切割成标准化的虚拟机配置(多个系列的产品,每个产品配置相同数量的CPU、内存、磁盘空间、网络流量配额),公有云提供商可以通过标准的服务合同(ServiceLevelAgreement,SLA)以标准的价格出售计算资源。
当用户对计算资源的需求出现改变的时候,用户只需要缩减或者是增加自己所使用的产品数量。
由于AmazonEC2是目前比较成功的公有云提供商,大部分云管理平台都在某种程度上模仿AmazonEC2的构架。
从这个意义上来讲,Eucalyptus、OpenNebula和OpenStack提供了与AmazonEC2兼容或者是类似的接口,比较适合提供公有云服务。
公有云和私有云之间的界限,就像“内部/外部”和“部门/合作伙伴”的概念一样,并不十分明显。
根据项目需求的不同,可能会有不同的解释。
功能篇:
(1)支持的虚拟化技术
Xen
KVM
XenServer/XCP
VMWare
LXC
openVZ
Eucalyptus
Y
Y
Y
OpenStack
Y
Y
Y
Y
Y
OpenNebula
Y
Y
Y
OpenQRM
Y
Y
Y
Y
Y
Y
XenServer
Y
OracleVM
Y
CloudStack
Y
Y
Y
ConVirt
Y
Y
可以看出,Xen和KVM是目前获得最广泛的厂商虚拟化技术,紧随其后的是VMWare。
需要注意的是,XenServer是对Xen的进一步封装,可以认为是一种新的虚拟化平台(用户在XenServer上不能直接执行Xend相关命令)。
(2)系统安装和配置
前端
计算节点
备注
Eucalyptus
使用Ubuntu10.04或者CentOS5.5操作系统,通过apt-getinstall或者yuminstall的方式直接安装二进制包,构建一个包含CLC、Walrus、SC、CC的前端。
根据官方网站提供的文档进行操作,是比较容易实现的。
使用Ubuntu10.04或者CentOS5.5操作系统,通过apt-getinstall或者yuminstall的方式直接安装二进制包,构建一个提供NC服务的计算节点。
根据官方网站提供的文档进行操作,是比较容易实现的。
Eucalyptus包含了一个dhcpd,如果配置不好的话,会造成一定的麻烦。
另外,计算节点(NC)与集群控制器(CC)必须在一个C类子网里(例如,掩码为255.255.255.0)。
如果NC和CC在一个超网里(例如,掩码为255.255.0.0),在注册服务的时候会出现一些问题。
OpenStack
在Ubuntu10.04上利用官方网站提供的nova-install脚本进行安装,基本上没有遇到问题。
在Ubuntu10.04上利用官方网站提供的nova-install脚本进行安装,基本上没有遇到问题。
对于一个简单的系统,安装配置比较简单。
OpenNebula
使用CentOS5.5操作系统,配置好CentOSKaran源,启用kbs-CentOS-Testing条目。
下载对应的rpm包,直接yumlocalinstall–nogpgcheckopennebula*.rpm,就可以直接完成安
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 管理软件 对比 研究