如果你想创建一个私有云,你需要借助管理软件创建一个虚拟的计算资源池,提供给最终用户访问,并要处理好安全、资源分配、跟踪和计费问题。
我们测试了五款主流私有云管理产品:Novell的Cloud Manager,Eucalyptus企业版,OpenNebula,Citrix Lab Manager和Cloud.com的CloudStack,我们的测试目的很简单,就是想看它们是否能够胜任现阶段的私有云项目,通过测试我们发现Novell的Cloud Manager是唯一一款具有我们需要的功能的产品,因此,Cloud Manager毫无疑问地成为测试的赢家,我们对其它产品感到沮丧,有的产品甚至还没准备好。下面是每个独立产品的评测意见。
私有云的建设不是一蹴而就,而是一个长期的建设过程,荆棘密布也未可知。如果你事先没有做好充分的准备,在看了本文的评测结果后,没准您设想好的私有云计算将因此而搁浅。因此我们说,私有云:不是为胆小者准备的。
Novell的Cloud Manager(CM)使用公共云服务提供商相同的方法控制内部资产,但并不是简单的拿来主义,Cloud Manger只留下了高度自动化的精华,它允许私有云建设者识别硬件资产,将资源池集中到虚拟服务器上,打包应用程序,然后通过活动目录和LDAP安全模型实现计费和跟踪使用情况。
和所有被测试的产品一样,需要做很多的准备工作,如分配硬件和软件资源,将它分组成可识别的组件,然后允许它们在生产阶段生命周期内被访问和跟踪。
完成私有云建设后,Novell Cloud Manager有最成熟的方法为云资源提供管理、预备和计费功能,最终用户的操作也很简单,它有两个主要的控制组件:Cloud Manager Application Server和Cloud Manager Orchestration Server,我们将其安装在VMware 4.1环境中,为每个服务使用一个SUSE 11虚拟机(VM)。
初始配置需要通过CM Orchestration Server(CMOS)创建用作访问库的VM,CMOS包含了创建自定义VM实例的组件(来自Novell收购的PlateSpin)。
我们在VMware的vCenter上安装了CMOS代理,实现Novell和VMware的对接,Novell Cloud Manager也支持裸机Hypervisor Xen和Hyper-v,但我们并没有测试它们。
配置好后(不是一个艰难的过程),Cloud Manager允许我们查看云资源,以及对云资源施加限制,通过活动目录或LDAP目录服务进行用户验证,对于云组件,它使用预配置的模板,这些组件就是预安装和配置了应用程序的VM,每个VM都拥有自己的vCPU,内存,存储和IP地址,设置可以被锁定,也允许修改,如存储大小/位置或增加内存。
模板必须放在vCenter挂载的NFS共享存储上,我们在Windows Server和SUSE Linux Enterprise ServerVM上做了测试,没有遇到任何麻烦。
Novell Cloud Manager的计费/账单组件有点托管服务提供商(Managed Services Provider,MSP)的味道,可以查看每个工作负载每月的成本,包括存储成本(每GB),vCPU,内存(每MB)和网络成本。例如,我们可以设置每月每vCPU的成本是3美元,有了这个功能后,就能跟踪部署的各种资源,并实施计费,就好像用户从MSP或公共云供应商购买的公共云资源一样。
Cloud Manager为我们提供了完整的私有云管理蓝图,你可以根据文档从零开始构建一个私有云平台,然后作为付费产品服务交付。
Citrix Lab Manager 3.9和自助服务门户
Citrix自助服务门户(SSP)不是一个独立的产品,它和Citrix Lab Manager一起组成了Citrix XenServer白金版,Lab Manager是一个专为XenServerVM设计的资源管理器和控制系统,XenServer可以通过自助服务门户的角色定义将Lab Manager组件变成云供应系统,和Novell的Cloud Manager不一样,自助服务门户是专为XenServer设计的,可以支持Linux及Windows VM。
自助服务门户跟踪报告包含许多信息,但它没有提供计费需要的组件,必须由外部包处理,XenServer 5.6白金版是必需的,它是按服务器授权的,不管服务器包含多少处理核心。我们安装了XenServer,创建了一个授权服务器分配白金许可,然后导入Lab Manager路由器VM模板(需要将它放在共享存储上),然后在它上面安装Postgres数据库和Lab Manager,经过几步配置后,我们启动了所有VM,在此期间,我们经历了许多Linux授权虚拟设备头痛的问题。
Cloud VM和SSP一起使用,它从存储在我们服务器上的ISO操作系统镜像创建,创建好后,我们需要为Lab Manager安装客户机代理,Windows和SLES VM都工作得很好。在SSP内部,我们指定模板,模板定义了管理员和用户拥有的角色,以及他们可以部署的VM和资源。
Lab Manager和SSP可以连接到活动目录或LDAP进行用户身份验证,用户拥有的角色在Lab Manager内部有非常详实的信息,可以限制用户可用的磁盘空间和内存容量。
测试SSP时,我们成功启动了各种Windows和Linux VM,VM包含预配置的应用程序,或仅仅就是一个原始的操作系统实例,从我们的使用过程来看,SSP的易用性还是很不错的。
Lab Manager内置的报告是相当详尽的,包含了大量信息,如作业名称,开始时间,结束时间,RAM使用情况,存储使用情况等,但没有提供相关的成本,正如前面提到的,成本/计费并非SSP的职责。 Cloud.com的CloudStack 2.1.3
Cloud.com的CloudStack比较简陋,也缺乏灵活性,它使用了一个管理服务器应用程序,这个管理程序可以包含在运行Red Hat Enterprise Linux或CentOS 5.4+ 64位版本的VM或物理机上,但CloudStack很实用,它作为VM镜像仓库,可以部署在云中或类似于云的环境中。
在部署前有大量的准备工作要做,当你创建好VM后,你就不能修改CPU数量,内存和磁盘空间大小,也就是说VM配置是被锁定的,因此,在创建VM之前需要了解清楚潜在的配置要求。
我们用XenServer测试的CloudStack,官方网站声称也支持KVM和VMware,但我们没有找到相关的文档,随后我们被告知要等到2.2版才会得到支持,目前已处于Beta阶段。CloudStack存储支持NFS和iSCSI,最低需要100GB存储空间,辅助存储至少需要一个NFS共享,主存储可以是iSCSI或另一个NFS存储系统。
测试期间,我们发现了一些问题,首先就是很难修改创建好的VM,如果你想修改一下VM配置,只有删除然后重新创建,这是我们最烦的一个问题。
其次,它可以进入MySQL数据库跟踪Cloud.com配置,但Cloud.com却没有提供数据库模式,据Cloud.com发言人表示,支持数据库访问的版本很快就会发布了。
第三,我们尝试了两次创建虚拟机实例,但两次都失败了,因为没有足够的IP地址可用,用户界面告诉我们有三个VM可用,但实际上只有一个可用。
通常情况下,用户界面是超出“正常”范围的,举一个例子,假设某个VM已被破坏,在删除前默认有24小时保留时间,虽然VM不可用,但它使用的IP地址在此期间是无法再使用的,如果你的IP地址已经不够,那只有等到该VM被删除才能将它使用的IP地址分配给新建的VM,如果你有很多搅乱了VM云资源的用户,这个问题不容小觑,我们建议部署前慎重考虑这一点。
另一个限制是,向Cloud.com仓库添加VM前,我们不能在XenServer节点上创建任何VM,因为没有“发现进程”发现现存/当前VM,如果事先将VM添加到XenServer节点,CloudStack初始化将会失败,导致不能继续配置CloudStack。
我们还发现我们不能在节点上安装XenServer授权服务器,授权服务器必须在另一台机器或VM上,最糟糕的是文档中没有说明。
经过冗长乏味的安装后,CloudStack终于正常支持Windows和Linux VM了,CloudStack依靠LDAP执行安全保护,如果需要的话,内置用户(不是目录服务的成员)可以进行身份验证,CloudStack可以跟踪每个用户,但在Web用户界面没有显示任何相关的信息,只能通过listUsageRecords API调用查看。
Eucalyptus企业版2.0.1
以前我们介绍Ubuntu Enterprise Cloud(UEC)时就曾评测过Eucalyptus,那时就很期待企业版中包含的性能,openEucalyptus是Eucalyptus所有版本的基石,企业版管理组件和UEC使用的类似,包含云控制器,Walrus(专为Amazon S3及类似的存储设计),存储控制器(块类型)和集群控制器。
所有组件安装在RHEL 5.4+,CentOS 5.4+或OpenSUSE 11.2+裸机上,但这个在文档中并没有注明,由于文档的参考意义不大,安装企业版时我们就像一群大笨熊,在此期间,我们发现对Windows Server的支持不友好,也没有相关说明。但Eucalyptus却声称他们的技术人员做起来一点困难也没有,虽然我相信他们,但云组件是如此的关键,要依赖于Eucalyptus的技术支持人员总是让人放不下心。
在安装过程中,我们不得不使用一些变通的办法,有时参考一下openEucalyptus的文档会有点用处,在安装到一半时,我们被告知管理组件需要独立的物理服务器,因此我们不得不做大量的额外的工作。
然后我们创建了镜像,使用和创建UEC实例相同的方法创建了实例,包括绑定实例,上传和注册实例,现有的VMware实例必须进行转换,Windows实例必须经过几个阶段的转换过程,任何一个阶段出错都可能导致Windows Server实例启动时发生硬件配置错误,如蓝屏。
最后,它没有为用户身份验证提供到LDAP或活动目录的链接,因此用户和管理登录包含在企业版安全中,但我们发现几乎无法通行。
安装完成并能正常工作后,你就可以使用转换和注册的实例了,企业版的Web用户界面有点简陋,但它可以很好地跟踪部署的实例。
部署VM的唯一方法是使用euca-tools命令行或其它Amazon工具,部署和反部署实例时需要用到euca-run-instances,euca-reboot-instances和euca-terminate-instances命令,对于普通用户来说可以不管这些,但开发人员和管理员必须全面掌握它们的用法。
用户和管理员在Web界面上唯一能看到的是他们可以使用的镜像,以及命令行工具需要的登录凭据(SSH密钥,密钥,查询ID,X.509证书等)。获取正在运行的VM实例的信息需要用到euca-describe-instances命令,也有其它命令行工具可以使用。遗憾的是,没有漂亮的Web用户界面,查看管理的实例,关闭或重启实例都只能运行命令。
企业版Web用户界面可以生成报告,如系统事件,已使用/部署的资源等,这些报告可以输出为多种格式,如PDF,CSV,Excel或HTML。生成资源使用报告后,你可以看到存储或实例使用情况,包括使用了多少存储卷,使用了多长时间(小时),以及创建了多少实例,虽然没有内置计费功能,但这些信息都可以用于计费。
缺乏文档让我们几乎抓狂,我们在Eucalyptus上调试的时间相当长,如果你对企业版功能感兴趣,我们建议你购买Eucalyptus的技术支持服务。
OpenNebula 2.0
OpenNebula专为Linux VM设计,它是开放云社区项目中的一个组件,OpenNebula和开放核心的Eucalyptus不一样,它是完全开源的。
OpenNebula特别适合开发人员和非持久化(以作业控制为重点)云VM使用,也适宜普通用户使用,但需要一个中等水平Unix/Linux/Solaris技能的管理员创建和部署私有云,OpenNebula也提供了公共云和混合云选项,但我们将重点放在私有云上。
OpenNebula运行在Ubuntu 10.04或CentOS 5.4+上(其它大多数Linux发行版也是可以的,但快速安装程序只适用于上述两种),安装完全是基于脚本的(没有GUI),需要大量的文本配置文件。
在通过脚本安装前,OpenNebula VM镜像必须创建为KVM或Xen镜像,虽然也提供了VMware驱动,但它需要从源代码安装libvirt API,有许多额外的辅助工作要做。创建好镜像后,我们必须手动复制到存储镜像的位置,然后为VM镜像创建一个配置文件和网络描述。
使用onevnet命令添加网络配置后,我们使用onevm命令在相同的命令行环境下启动了该镜像的一个实例,一台没有任何问题的Linux服务器就这么摆在我们面前了。我们也尝试在KVM中使用Windows Server 2008 VM,但遗憾的是,我们无法用OpenNebula启动它,因此它是表面上支持Windows,但没有真正的指南。
支持的插件包括LDAP身份认证(需要“net-ldap”Ruby gem),计费(需要“sequel”Ruby gem),VMware驱动和OpenNebula快速安装程序。
我们在ESX 4.1上的VM使用Ubuntu 10.04作为前端,在另一台机器上安装Ubuntu 10.04作为节点,快速安装程序在前端上为节点共享镜像创建一个NFS共享。
所有一切都是在命令行中完成的,OpenNebula完全没有Web界面,下面是一些常用的重要命令:
Oneimage(添加/列表/删除镜像/将ISO文件保存到仓库/设置镜像属性);
Onevm(创建/删除/启动/停止VM/其它和VM相关的杂项功能);
Oneacct(获得主机/VM/用户的计费/账单数据);
Onecluster(列表/创建/删除集群);
Onehost(添加/删除/同步主机);
Oneuser(创建/删除/列出用户);
Onevnet(创建/修改/删除虚拟网络)。
OpenNebula支持多种身份验证方案,包括基本的用户名和密码验证(使用SQLlite或MySQL数据库管理用户信息),和通过SSH密钥验证,还有一个新的LDAP插件,但我们未能成功使用活动目录进行身份验证,OpenNebula的文档也缺乏相关问题的解决方案。
OpenNebula还有一个插件安装oneacct命令,它允许你查看实例运行时长,运行人员,所在主机和其它细节信息,这些信息可以用于计费。
OpenNebula的模块化设计使得它的未来一片光明,和其它开源产品一起,它们让创建私有云平台变得更廉价,但OpenNebula的文档还有大量的工作要做,我们希望它能和产品更新保持同步。
OpenNebula包含许多有用的工具,但它的强项还是在核心工具上,因此适合开发人员和管理人员使用,普通用户还是远观为宜。 总结
总体而言,使用我们评估的工具创建一个私有云平台任务很艰巨,需要做大量的前期配置工作,除了要支持各种Hypervisor外,还要想法聚合/物化资源池,让它们在整个实例生命周期内很容易访问和使用。
Novell的Cloud Manager是做得最好的,并且原生支持计费,Citrix的自助服务门户建立在Lab Manager之上,并需要XenServer,Cloud.com将为它的两款产品提供更好的兼容性,但目前还不能做定论,因为一切都还在进行中,我们向开发人员和高级系统使用者推荐OpenNeBula,最后是企业版Eucalyptus,Eucalyptus可以控制,但企业版让我们非常痛苦。
也许你看了本文的评论后,原本设想好的私有云计划会因此而搁浅,的确,在私有云道路上布满了荆棘,但我更喜欢将其比作是带刺的玫瑰,有胆量,有魄力,你就一定会取得成功,但如果你唯唯诺诺,胆小怕事,我只想说,私有云不是为你准备的。