开源云计算管理软件.docx
- 文档编号:12266820
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:38
- 大小:1.51MB
开源云计算管理软件.docx
《开源云计算管理软件.docx》由会员分享,可在线阅读,更多相关《开源云计算管理软件.docx(38页珍藏版)》请在冰豆网上搜索。
开源云计算管理软件
云管理软件比较
产品:
Eucalyptus,OpenNebula,OpenStack,OpenQRM,XenServer,OracleVM,CloudStack,ConVirt
系统构架:
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)即可通过集群控制器(CLC)将需要运行的虚拟机映像文件(EMI)拷贝到该计算节点上运行。
Eucalyptus将虚拟机映像文件存储在Walrus上。
当用户启动一个虚拟机实例的时候,Eucalyptus首先将相应的虚拟机映像(EMI)从Walrus拷贝到将要运行该实例的计算节点(NC)上。
当用户关闭(或者是由于意外而重启)一个虚拟机实例的时候,对虚拟机所做的修改并不会被写回到Walrus上原来的虚拟机映像(EMI)上,所有对该虚拟机的修改都会丢失。
如果用户需要保存修改过的虚拟机,就需要利用工具(euca2ools)将该虚拟机实例保存为新的虚拟机映像(EMI)。
如果用户需要保存数据,则需要利用存储服务器(SC)所提供的弹性块设备来完成。
OpenStack是一个与AmazonEC2兼容的IaaS系统。
OpenStack包括OpenStackCompute和OpenStackObjectStorage两个部分。
OpenStackCompute又包含Web前端、计算服务、存储服务、身份认证服务、存储块设备(卷)服务、网络服务、任务调度等多个模块。
OpenStackCompute的不同模块之间不共享任何信息,通过消息传递进行通讯。
因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。
OpenStackObjectStore可以利用通用服务器搭建可扩展的海量数据仓库,并且通过冗余来保证数据的安全性。
同一份数据的在多台服务器上都有副本,将出现故障的服务器从集群中撤除不会影响数据的完整性,加入新的服务器后系统会自动地在新的服务器上为相应的文件创建新的副本。
从功能上讲,OpenStackObjectStore同时具备Eucalyptus中的Walrus服务和弹性块设备(SC)服务。
不过OpenStackObjectStore不是一个文件系统,不能够保证数据的实时性。
从这个方面来考虑,OpenStackObjectStore更适合用于存储需要长期保存的静态数据,例如操作系统映像文件和多媒体数据。
OpenStack通过Agent的方式来管理计算资源。
在每一个计算节点上,都需要运行nova-network服务和nova-compute服务。
这些服务启动之后,就可以通过消息队列来与云控制器进行交互。
OpenNebula的构架包括三个部分:
驱动层、核心层、工具层。
驱动层直接与操作系统打交道,负责虚拟机的创建、启动和关闭,为虚拟机分配存储,监控物理机和虚拟机的运行状况。
核心层负责对虚拟机、存储设备、虚拟网络等进行管理。
工具层通过命令行界面/浏览器界面方式提供用户交互接口,通过API方式提供程序调用接口。
OpenNebula使用共享存储设备(例如NFS)来提供虚拟机映像服务,使得每一个计算节点都能够访问到相同的虚拟机映像资源。
当用户需要启动或者是关闭某个虚拟机时,OpenNebula通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。
这种模式也称为无代理模式,由于不需要在计算节点上安装额外的软件(或者服务),系统的复杂度也相对降低了。
OpenQRM是为了管理混合虚拟化环境而开发的一个虚拟化管理框架,包括基础层(框架层)和插件。
基础层(框架)的作用是管理不同的插件,而对虚拟资源的管理(计算资源,存储资源,映像资源)都是通过插件来实现的。
OpenQRM的框架类似于Java语言中的Interface,定义了一系列虚拟机资源生命周期管理的方法,例如创建、启动、关闭虚拟机等等。
在个框架的基础上,OpenQRM针对不同的虚拟化平台(Xen、KVM)实现了不同的插件,用来管理不同的物理和虚拟资源。
当出现新的资源需要支持的时候,只需要为OpenQRM编写新的插件,就可以无缝地整合到原来的环境中去。
OpenQRM插件也是使用无代理模式工作的。
当需要管理的目标节点提供SSH登录方式时,OpenQRM插件通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。
当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,OpenQRM插件通过目标节点所提供的远程调用接口实现对目标平台的管理。
OpenQRM是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
XenServer是对Xen虚拟化技术的进一步封装,在Dom0上提供一系列命令行和远程调用接口,独立的管理软件XenCenter通过远程调用这些接口来管理多台物理服务器。
XenSever在标准Xen实现之上所实现的远程调用接口类似于其他虚拟化管理平台中所实现的Agent,因此XenServer是通过Agent方式工作的。
由于只考虑对Xen虚拟化技术的支持,XenServer的构架相对简单。
XenServer是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
管理软件XenCenter是运行在Windows操作系统上的,对于需要随时随地访问管理功能的系统管理员来说有点不便。
目前有一些第三方提供的开放源代码的基于浏览器的XenServer管理工具,但是都还处于比较早期的阶段。
OracleVM包括OracleVMServer和OracleVMManager两个部分。
OracleVMServer在支持Xen的OracleLinux上(Dom0)运行一个与Xen交互的Agent,该Agent为OracleVMManager提供了远程调用接口。
OracleVMManager通过一个Java应用程序来对多台OracleVMServer上的虚拟资源进行管理和调度,同时提供基于浏览器的管理界面。
由于只考虑对Xen虚拟化技术的支持,OracleVMServer/Manager的构架相对简单。
OracleVM是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
值得注意的是,OracleVMManager还通过WebService的方式提供了虚拟机软件生命周期管理的所有接口,使得用户可以自己使用不同的编程语言来调用这些接口来开发自己的虚拟化管理平台。
不过由于Oracle在开放源代码方面的负面形象,似乎没有看到有这方面的尝试。
CloudStack采用了“框架+插件”的系统构架,通过不同的插件来提供对不同虚拟化技术的支持,与OpenQRM类似。
对于标准的Xen/KVM计算节点,CloudStack需要在计算节点上安装Agent与控制节点进行交互;对于XenServer/VMWare计算节点,CloudStack通过XenServer/VMWare所提供的XML-RPC远程调用接口与计算节点进行交互。
CloudStack本身是一个虚拟化管理平台,但是它通过CloudBridge提供了与AmazonEC2相兼容的云管理接口,对外提供IaaS服务。
ConVirt是一个虚拟化管理平台,使用无代理模式工作。
当需要管理的目标节点提供SSH登录方式时,ConVirt通过SSH登陆到计算节点,在计算节点上直接运行相对应的虚拟化管理命令。
当需要管理的目标节点提供HTTP/HTTPS/XML-RPC远程调用接口时,ConVirt插件通过目标节点所提供的远程调用接口实现对目标平台的管理。
ConVirt是一个虚拟化管理平台,不提供与AmazonEC2兼容的云管理接口。
但是ConVirt3.0提供了与AmazonEC2/Eucalyptus的用户接口,使得ConVirt用户能够在同一个Web管理界面下同时管理AmazonEC2/Eucalyptus提供的虚拟计算资源。
我不太清楚您说的云管理软件的范围,所以找了一下公有云和私有云这方面资料
云管理平台还是虚拟化管理平台?
在IaaS这个层面,云管理和虚拟化管理的概念非常接近,但是有一些细微的差别。
虚拟化是指在同一台物理机器上提供多台虚拟机器(包括CPU、内存、存储、网络等计算资源)的能力。
每一台虚拟机器都能够像普通的物理机器一样运行完整的操作系统以及执行正常的应用程序。
当需要管理的物理机器数量较小时,虚拟机生命周期管理(资源配置、启动、关闭等等)可以通过手工去操作。
当需要管理的物理机器数量较大时,就需要写一些脚本/程序来提高虚拟机生命周期管理的自动化程度。
以管理和调度大量物理/虚拟计算资源为目的系统,属于虚拟化管理系统。
这样一个系统,通常用于管理企业内部计算资源。
云计算是指通过网络访问物理/虚拟计算机并利用其计算资源的实践。
通常来讲,云计算提供商以虚拟机的方式向用户提供计算资源。
用户无须了解虚拟机背后实际的物理资源状况,只需了解自己所能够使用的计算资源配额。
因此,虚拟化技术是云计算的基础。
任何一个云计算管理平台,都是构建在虚拟化管理平台的基础之上的。
如果某个虚拟化管理平台仅对某个集团内部提供服务,那么这个虚拟化管理平台也可以被称为“私有云”;如果某个虚拟化管理平台对公众提供服务,那么这个虚拟化管理平台也可以被称为“公有云”。
服务对象的不同,对虚拟化管理平台的构架和功能提出了不同的需求。
私有云服务于集团内部的不同部门(或者应用),强调虚拟资源调度的灵活性。
系统管理员需要为不同的部门(或者应用)定制不同的虚拟机,根据部门(或者应用)对计算资源的需求对分配给某些虚拟机的计算资源进行调整。
从这个意义上来讲,OpenQRM、XenServer、OracleVM、CloudStack和ConVirt比较适合提供私有云服务。
公有云服务于公众,强调虚拟资源的标准性。
通过将计算资源切割成标准化的虚拟机配置(多个系列的产品,每个产品配置相同数量的CPU、内存、磁盘空间、网络流量配额),公有云提供商可以通过标准的服务合同(ServiceLevelAgreement,SLA)以标准的价格出售计算资源。
当用户对计算资源的需求出现改变的时候,用户只需要缩减或者是增加自己所使用的产品数量。
由于AmazonEC2是目前比较成功的公有云提供商,大部分云管理平台都在某种程度上模仿AmazonEC2的构架。
从这个意义上来讲,Eucalyptus、OpenNebula和OpenStack提供了与AmazonEC2兼容或者是类似的接口,比较适合提供公有云服务。
公有云和私有云之间的界限,就像“内部/外部”和“部门/合作伙伴”的概念一样,并不十分明显。
根据项目需求的不同,可能会有不同的解释。
技术构架:
支持的虚拟化技术
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相关命令)。
系统安装、配置和接口
前端
计算节点
备注
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,就可以直接完成安装过程。
按照官方文档创建/srv/cloud/one和/srv/cloud/images目录,通过NFS共享/srv/cloud目录。
创建cloud用户组和属于cloud用户组的oneadmin用户。
按照官方文档创建/srv/cloud/one和/srv/cloud/images目录,通过NFS共享/srv/cloud目录。
创建cloud用户组和属于cloud用户组的oneadmin用户。
将前端服务器上oneadmin用户的sshkey拷贝到计算节点上oneadmin用户的authorized_keys中。
这样前端服务器才可以通过SSH登陆到计算节点上。
在CentOS5.5x86_64上进行安装的时候,如果按照官方网站提供的文档进行操作,先配置好必要的软件依赖关系再安装opennebula,就会出现xmlrpc-c包版本不对的错误。
网络上可以搜索到一些安装配置方面的文档和教程,但是对于熟悉Linux但是不熟悉OpenNebula的开发人员来说,很难按照这些文档完成安装和配置过程。
OpenQRM
在Ubuntu10.04上通过SVN下载OpenQRM源代码,进入源代码目录后依次执行make/makeinstall/makestart命令。
按照官方文档的描述创建数据库,然后通过Web界面进行下一步的安装和配置。
计算节点配置好网桥和虚拟化支持之外不需要特别的安装和配置。
在OpenQRM管理界面中启用相对应的插件即可通过插件对计算节点进行管理。
在Ubuntu10.04上安装前端时,可能需要手工安装dhcp3-server。
启用插件管理虚拟资源的操作流程不够直观,并且缺乏详细的文档。
XenServer
前端为基于Windows操作系统的XenCenter。
在WindowsXP上可以安装,需要.NETFrameworkUpdate2的支持。
安转过程非常简单,基本上不需要配置。
从Citrix的网站下载ISO,刻盘直接安装在裸机上即可。
计算节点安装完毕后,在XenCenter中把新增计算资源添加到资源池即可。
每一台XenServer服务器都需要安装从Citrix获得License,并且每年更新一次。
OracleVM
在CentOS5.5x86_64上进行安装。
将ISO文件mount起来后,执行runinstaller.sh即可。
从Oracle的网站下载ISO,刻盘直接安装在裸机上即可。
计算节点安装完毕后,在OracleVMManager中把新增计算资源添加到资源池即可。
最好从Oracle的官方网站下载,不过速度很慢。
通过迅雷等途径下载的文件,看起来似乎没有问题,但是ISO刻盘后在启动操作系统安装过程中会出现错误。
如果在OracleVMServer上安装OracleVMManager,建议分区的时候把/分得大一点,不然的话会由于磁盘空间不够而无法安装OracleVMManager。
CloudStack
在CentOS5.5和Ubuntu10.4上,按照官方网站的安装文档顺序操作,基本没有问题。
计算节点上必须安装相应的Agent。
安装配置相对简单,但是在删除物理资源的时候存在较多的问题。
ConVirt
在CentOS5.5和Ubuntu10.4上,按照官方网站的安装文档顺序操作,基本没有问题。
在Ubuntu10.04上安装企业版,需要手工sudoapt-getinstalllibmysqlclient-dev。
在计算节点上的root用户必须允许管理节点上运行ConVirt服务的用户通过keyauth方式登录。
安装配置相对简单。
不同的虚拟化管理软件有不同的设计理念,采用不同的系统构架,类似的概念也采用不同的术语来表述,其学习曲线也各不相同。
对于大部分用户来说,虚拟化管理软件还是个新生事物。
即使是粗略地尝试一下利用不同的虚拟化管理软件来安装、配置和测试一个最小规模的私有云系统,也需要花费不少的时间和精力。
在这个过程当中,遇见各种各样的问题都在所难免。
不过,也只有亲身经验过这些形形色色的问题,才能够切身体会不同虚拟化管理软件的优点和缺点,并且在分析、总结、归纳的基础上形成自己独特的观点。
用户界面、接口:
概述
用户权限
资源池和虚拟机管理
Eucalyptus
Eucalyptus提供了一个基于浏览器的简单用户界面,可以完成用户注册,下载credentials,对提供的产品类型进行简单配置等。
资源池和虚拟机生命周期管理需要通过euca2ools在命令行模式下完成。
euca2ools是一组基于命令行的工具,可以与AmazonEC2/S3相兼容的WebService进行交互。
该用具可以管理基于AmazonEC2、Eucalyptus和OpenStack,OpenNebula的云计算服务。
euca2tools的主要功能包括:
–查询可以使用的域
–管理SSHKey
–虚拟机生命周期管理
–安全组管理
–管理卷和快照
–管理虚拟机映像
–管理IP
在Eucalyptus社区版中只有两种类型的用户:
管理员,普通用户。
在Eucalyptus企业版中进一步提供了用户组,属于某个用户组的用户可以管理属于该用户组的计算资源。
管理员可以通过注册或者是撤销注册某个计算节点,配置标准产品类型的计算资源(CPU、内存、存储)。
普通用户只能够在标准配置的基础上创建、启动、关闭虚拟机,不能够定制化自己所需要的计算资源。
虚拟机映像文件(EMI)的制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。
在FireFox浏览器中,可以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。
ElasticFox的界面不够美观,并且提供的功能非常有限。
Eucalyptus不提供console功能。
用户可以通过SSH连接到自己所管理的虚拟机。
每一个公开发布的虚拟机映像(EMI),都是一个模板。
用户创建虚拟机实例的时候,系统根据用户选择的EMI将相应的虚拟机映像拷贝到目标计算节点上运行。
Eucalyptus根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。
Eucalyptus中的虚拟机实例只是原虚拟机映像(EMI)的一个副本,用户在运行的实例中对虚拟机所做的任何修改,不会被保存到原来的虚拟机映像中。
如果用户将运行的虚拟机实例关闭(例如:
shutdown),用户对虚拟机所作的任何修改都会丢失。
如果用户需要保存自己对虚拟机所做的修改,用户可以选择使用弹性块设备来保存数据,或者将正在运行的虚拟机实例发布为新的EMI。
(AmazonEC2自动地将停止运行的虚拟机实例保存为新的AMI,直到用户销毁该虚拟机实例为止。
因此,用户可以shutdown自己的虚拟机实例,但是保存自己对虚拟机所作的修改,直到用户选择销毁该虚拟机实例为止。
)
OpenStack
OpenStack不缺省地提供基于浏览器的用户界面。
系统管理员需要手工创建用户。
大部分的管理操作,需要在命令行下进行。
尽管OpenStack和Eucalyptus在构架上有很大的不同,但是所暴露给用户的界面是类似的(两者都模仿了AmazonEC2的用户接口规范)。
因此,OpenStack同样可以使用Eucalyptus所提供的euca2ools进行管理。
OpenStack的openstack-dashboard项目和django-nova项目提供了一个基于浏览器的用户界面,没有被集成到OpenStack安装脚本中,需要单独安装。
OpenStack将用户分成如下几个类别:
admin—云服务管理员,拥有所有管理权限。
itsec—IT安全管理员,具有隔离有问题的虚拟机实例的权限。
projectmanager—项目管理员,可以增加属于该项目的新用户,管理虚拟机映像,管理虚拟机生命周期。
netadmin—网络管理员,负责IP分配,管理防火墙。
developer—开发人员,可以登录进入属于本项目的虚拟机,管理虚拟机生命周期
在模仿AmazonEC2的云平台(Eucalyptus,OpenStack,OpenNebula)中,OpenStack提供了颗粒度最细的用户权限管理模式。
与Eucalyptus类似,虚拟机映像文件(EMI)的制作,以及虚拟机生命周期管理等等操作,需要通过euca2ools在命令行模式下完成。
同样,在FireFox浏览器中,可以利用ElasticFox插件,在浏览器中启动、监控和关闭虚拟机。
OpenStack不提供虚拟机console功能。
用户可以通过SSH连接到自己所管理的虚拟机。
正在开发中的openstack-dashboard,基于浏览器提供了比较完整的资源池管理功能和虚拟机生命周期管理功能。
虽然界面还比较简单,但是已经处于可用的状态。
OpenStack的模板和虚拟机实例机制与Eucalyptus类似。
与Eucalyptus类似,OpenStack根据某种算法自动决定用户的虚拟机将在哪个物理服务器上运行,用户对物理服务器的状况一无所知。
OpenNebula
OpenNebula不缺省
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开源云 计算 管理软件