虚拟化管理软件比较 (Eucalyptus, OpenNebula, OpenStack, OpenQRM,XenServer, Oracle VM, CloudStack,ConVirt)
虚拟化管理软件 Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVir 总结
强烈推荐 500 篇虚拟化经典资料
500篇关于虚拟化的经典资料,含CPU虚拟化,磁盘虚拟化,内存虚拟化,IO虚拟化
(1)授权协议、许可证管理、购买价格等方面的比较
(2)项目历史与运营团队、社区规模和活跃程度、沟通交流等方面的比较
(3)综合评估
总的来说,虚拟化管理软件的用户还不是很多。大部分虚拟化管理软件的社区规模较小,活跃程度也不高。除了 Eucalyptus 积极地鼓励社区用户参与项目的开发与测试之外,其他项目选择开放源代码只是一种营销策略。如果排除技术和价格方面的因素,最值得选择的软件无疑是 Eucalyptus 和 ConVirt。这两个项目拥有最大和最活跃的用户社区,其开发/运营团队与潜在客户之间的沟通最为顺畅。XenServer 也是一个值得考虑的对象,但是 XenServer 社区版要求对每台物理服务器都要每年更新一次许可证。对于拥有大量物理服务器的公司来说,管理和维护成千上百个许可证将是一个令人头疼的问题。
架构篇:
(1)系统构架比较
(2)云管理平台还是虚拟化管理平台?
在 IaaS 这个层面,云管理和虚拟化管理的概念非常接近,但是有一些细微的差别。
虚拟化是指在同一台物理机器上提供多台虚拟机器(包括 CPU、内存、存储、网络等计算资源)的能力。每一台虚拟机器都能够像普通的物理机器一样运行完整的操作系统以及执行正常的应用程序。当需要管理的物理机器数量较小时,虚拟机生命周期管理(资源配置、启动、关闭等等)可以通过手工去操作。当需要管理的物理机器数量较大时,就需要写一些脚本/程序来提高虚拟机生命周期管理的自动化程度。以管理和调度大量物理/虚拟计算资源为目的系统,属于虚拟化管理系统。这样一个系统,通常用于管理企业内部计算资源。
云计算是指通过网络访问物理/虚拟计算机并利用其计算资源的实践。通常来讲,云计算提供商以虚拟机的方式向用户提供计算资源。用户无须了解虚拟机背后实际的物理资源状况,只需了解自己所能够使用的计算资源配额。因此,虚拟化技术是云计算的基础。任何一个云计算管理平台,都是构建在虚拟化管理平台的基础之上的。如果某个虚拟化管理平台仅对某个集团内部提供服务,那么这个虚拟化管理平台也可以被称为“私有云”;如果某个虚拟化管理平台对公众提供服务,那么这个虚拟化管理平台也可以被称为“公有云”。服务对象的不同,对虚拟化管理平台的构架和功能提出了不同的需求。
私有云服务于集团内部的不同部门(或者应用),强调虚拟资源调度的灵活性。系统管理员需要为不同的部门(或者应用)定制不同的虚拟机,根据部门(或者应用)对计算资源的需求对分配给某些虚拟机的计算资源进行调整。从这个意义上来讲,OpenQRM、XenServer、Oracle VM、CloudStack 和 ConVirt 比较适合提供私有云服务。
公有云服务于公众,强调虚拟资源的标准性。通过将计算资源切割成标准化的虚拟机配置(多个系列的产品,每个产品配置相同数量的 CPU、内存、磁盘空间、网络流量配额),公有云提供商可以通过标准的服务合同(Service Level Agreement, SLA)以标准的价格出售计算资源。当用户对计算资源的需求出现改变的时候,用户只需要缩减或者是增加自己所使用的产品数量。由于 Amazon EC2 是目前比较成功的公有云提供商,大部分云管理平台都在某种程度上模仿 Amazon EC2 的构架。从这个意义上来讲,Eucalyptus、OpenNebula 和 OpenStack 提供了与 Amazon EC2 兼容或者是类似的接口,比较适合提供公有云服务。
公有云和私有云之间的界限,就像“内部/外部”和“部门/合作伙伴”的概念一样,并不十分明显。根据项目需求的不同,可能会有不同的解释。
功能篇:
(1)支持的虚拟化技术
可以看出,Xen 和 KVM 是目前获得最广泛的厂商虚拟化技术,紧随其后的是 VMWare。需要注意的是,XenServer 是对 Xen 的进一步封装,可以认为是一种新的虚拟化平台(用户在 XenServer 上不能直接执行 Xend 相关命令)。
(2)系统安装和配置
不同的虚拟化管理软件有不同的设计理念,采用不同的系统构架,类似的概念也采用不同的术语来表述,其学习曲线也各不相同。对于大部分用户来说,虚拟化管理软件还是个新生事物。即使是粗略地尝试一下利用不同的虚拟化管理软件来安装、配置和测试一个最小规模的私有云系统,也需要花费不少的时间和精力。在这个过程当中,遇见各种各样的问题都在所难免。不过,也只有亲身经验过这些形形色色的问题,才能够切身体会不同虚拟化管理软件的优点和缺点,并且在分析、总结、归纳的基础上形成自己独特的观点。
(3)用户界面
在所有参与评测的虚拟化管理软件中,XenServer / XCP 和 ConVirt 的图形用户界面是做的最好的。XenCenter 的图形界面的优点在于提供了独一无二的用户体验,ConVirt 的图形界面的优点在于以图形的方式直观地展示了从机房到虚拟机的健康状况。CloudStack 的图形界面非常大气,但是在功能上不如 ConVirt 那么实用。不过按照 CloudStack 的目前的发展势头来看,下一个版本可能比较值得期待。
由于进行评测的时间较短,并且测试系统规模较小的原因,暂时无法对各个软件的稳定性、健壮性、扩展性等等关键问题作出评估。
商务篇:
目前市面上形形色色的虚拟化管理软件总数很多,这一系列文章所提及的几个软件仅仅其中的几个代表。作为一个机构、或者是一家企业,在向虚拟化过渡时都不可避免地要面临软件选型的问题。本文作为这一系列文章的最后一篇,从商务和功能两个方面提出自己的一点粗浅意见。
(1)商务评估
从商务上进行软件选型,性价比通常是一个决定性的因素。在假定参与选型的软件全部满足技术要求的前提下,企业(机构)需要考虑的因素包括软件的授权协议是否友好、许可证管理的难易程度、软件和服务的价格高低、运营团队在业界的声誉、开发者社区和用户社区的规模和活跃程度、商业与技术沟通的难易程度。
授权协议/许可证管理 — 以全部开放源代码为 10 分,部分开放源代码(例如以企业版的形式提供某些高级功能,或者以服务的形式提供特别版本的安装包和补丁)扣 1 分。商业版本需要在控制节点安装许可证不扣分,需要在所有计算节点安装许可证扣 1 分,许可证需要每年更新者扣 1 分。
价格指数 — 以全部功能免费使用为 10 分,以企业版的模式提供全部功能的软件,每台物理服务器每花费 500 美元扣 1 分。
运营团队 — 以运营团队的规模、背景、影响力评分,存在的主观因素较多。
社区因素 — 以开发者和用户社区的规模和活跃程度评分,存在的主观因素较多。
沟通交流 — 以个人与运营团队、开发者社区、用户社区之间的沟通顺畅程度评分,存在的主观因素较多。
(2)功能评估
从功能上进行虚拟化管理软件选型,需要考虑的因素包括该软件所支持的虚拟化技术、安装配置的难易程度、开发和使用文档的详尽程度、所提供的功能是否全面以及用户界面是否直观友好、二次开发的难易程度、是否提供物理资源和虚拟资源的监控报表等等。
虚拟化技术支持 — 仅支持一种虚拟化技术为 6 分,每增加一种虚拟化技术加 1 分,10 分封顶。
安装配置 — 以按照官方文档进行安装配置的难易程度评分,存在的主观因素较多。
开发/使用文档 — 以官方所提供的开发与使用文档的详尽程度评分,文档详尽程度越高者得分越高。
功能与界面 — 综合评分,涵盖用户进行物理资源和虚拟资源管理、虚拟机生命周期管理、访问虚拟机资源和存储资源的难易程度,用户界面的美观易用程度,以及综合用户体验。
二次开发 — 基础得分 6 分,提供与 Amazon EC2 相兼容的程序调用接口者加 3 分,提供二次开发接口但是与 Amazon EC2 不兼容者加 2 分。
监控报表 — 基础得分 6 分,依系统所提供监控与分析功能的详尽程度加分。
(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 已经得到了社区的重视和支持。总的来说,开放源代码的云构架,还是一个不断发展之中的新生食物。笔者只能够建议用户亲自去安装使用每一个软件,最终基于自己的经验以及需求达到一个最适合自己的选择。
评论