马腾
摘要摘要:当前云计算己成为IT研究的热点问题之一,云计算是为应对企业对数据中心的处理能力要求不断提高而出现的。为实现计算资源的高利用率,企业需要构建自己的基于虚拟化技术的私有云平台。虚拟化技术、数据存储以及资源管理技术是构建云平台所需的关键技术。CloudStack是一个开源的IaaS云平台,通过对其架构进行分析,可以更好地理解云计算。
关键词关键词:私有云;利用率;虚拟化; 数据存储; CloudStack
0引言
当前云计算已经得到了广泛应用,虽然业界对云计算的许多技术标准尚未统一,但各大互联网公司都投入了大量人力物力到云计算研究领域。虚拟化、大数据存储等技术的成熟、互联网的普及,以及创新型软件公司的发展,是促成云计算出现的主要因素。云计算是一种服务模式,是能够对基于网络的、可配置的共享计算资源池(包括网络、物理机存储、应用和服务等)进行方便、随需访问的一种模式[1]。云计算平台的出现,使计算资源像水和电一样能被普通用户所使用。因此,该技术的出现无疑会给广大企业带来巨大收益。现在,已经有许多公司推出了商用的云计算平台,例如亚马逊的EC2[2]、谷歌的AppEngine[3],以及微软的Azure[4]等。根据云计算服务层次的不同,可以分为基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。如今,基于IaaS的云平台软件如CloudStack、OpenStack、Eucalyptus等,在世界各地拥有大量支持者。其中,CloudStack已成功进行了商业应用。本文基于CloudStack对云计算平台的相关技术进行研究。
1云计算关键技术分析
1.1虚拟化技术
云计算的核心技术之一是虚拟化(virtualization)技术,它是充分整合和高效利用
各种计算及存储资源的关键技术。虚拟化是资源的逻辑表示,其不受物理限制。在云平台中,最底层的物理资源通过虚拟化技术抽象成逻辑上的计算资源,从而将分散在不同物理机上的计算资源从逻辑上聚集到一个“资源池”中,各种物理和虚拟计算资源根据用户需要被动态地分配和再分配给用户,资源池的计算资源与位置无关,用户不知道自己所使用的计算资源来自哪里。用户也可以在更高层次的计算资源抽象层指定资源位置。虚拟化技术降低了资源使用者与具体实现之间的耦合程度,让使用者不再依赖于资源的某种特定实现,使用者可以更加关注业务。
虚拟化技术按照虚拟设备类别可以分为服务器虚拟化、存储系统虚拟化、网络虚拟化。基于IaaS的云平台虚拟化主要涉及到服务器虚拟化技术。服务器虚拟化包括对3种硬件资源的虚拟化,即CPU虚拟化、内存虚拟化、设备与输入输出虚拟化。云平台通过虚拟化技术可以将一台物理计算机模拟成多台虚拟计算机,然后通过云平台统一管理和使用这些计算资源。这些虚拟出来的计算机从用户角度来看和真正的物理计算机一样,可以在其上进行各种操作。通过使用虚拟化技术在物理计算机上建立虚拟机,能够提高硬件使用效率,大大降低了硬件的采购成本和管理维护成本。典型的云计算平台的虚拟化架构如图1所示。
在搭建云计算平台时,基于虚拟化技术搭建的云平台有着相当大的优势,体现在以下几个方面:
(1) 易伸缩性。可伸缩性是指系统通过对计算资源的合理调整应对负载变化的特性,以此保持性能的一致性。基于虚拟化技术的云计算平台能够通过虚拟化技术对计算资源进行更加快速、灵活的动态调整,从而易于实现系统的可伸缩性。
(2) 高可用性。可用性指系统在一段时间内正常工作的时间与总时间之比。在云计算环境中,节点失效是比较常见的情况,所以需要一定机制保证系统能够从故障中恢复过来。基于虚拟化技术的云计算平台可以借助于虚拟机的快速部署和实时迁移等优点,方便、快捷地提高系统的可用性。
(3) 负载均衡。在云计算平台上,有时某个节点的负载特别高,而其它节点负载过低。采用虚拟化技术,能够动态地将高负载节点上的部分虚拟机实时迁移到低负载节点上去,从而使整个系统负载达到均衡,也保证了上层应用的使用性能。
(4) 提高资源利用效率。基于虚拟化技术的云平台能够将多个低负载的虚拟机合并到同一个物理节点上,并且关闭其它空闲的物理节点,从而大大提高资源利用率,同时还能达到降低系统能耗的目的。
1.2数据存储技术
云计算平台数据中心由大量服务器组成,同时为大量用户提供服务,因此云计算系统采用分布式存储方式存储数据,用冗余存储的方式保证数据可靠性。冗余方式通过任务分解和集群,用低配机器替代超级计算机的性能以保证低成本,这种方式保证分布式数据的高可用、高可靠和经济性,即为同一份数据存储多个副本。云计算中使用的存储技术主要有谷歌的非开源的GFS(Google File System)和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed File System)。
1.3资源管理技术
由于云平台将底层大量物理服务器中的计算资源进行虚拟化,抽象化成虚拟的计算资源池,并对此资源池进行管理和维护。而且,由于底层服务器还可能分布在不同地点,统一管理云平台数据中心中的计算资源则显得尤为重要。同时,在云计算平台中还需要对计算资源进行实时监控,这是保证云平台运营流程化、自动化、标准化的关键模块之一,主要包括故障监控、性能监控等内容。在云计算平台中,资源调度是通过自动化部署将底层计算资源交付给上层应用,用户申请使用资源可通过云平台的资源管理技术自动实现,不需要用户参与。由此可以看出,云计算系统的平台管理技术能够使大量服务器协同工作,方便地进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
2CloudStack云平台技术分析
2.1CloudStack架构分析
CloudStack是Apache 基金会下的一个项目,CloudStack是一个开源的具有高可用性及扩展性的云计算平台。目前已经成功进行了商业应用,CloudStack拥有许多商用客户,包括GoDaddy、英国电信、日本电报电话公司、塔塔集团、韩国电信等。
CloudStack构建的私有云平台中包括管理节点和主机节点。CloudStack的组织架构如图2所示。管理节点管理一个或多个Zone(通常含主机、数据中心)。主机节点是CloudStack云平台中最基本的单位,即运行虚拟机(VM)的主机。一个Cluster包括一个或多个同类型的主机节点(Hypervisor),在同一个Cluster中的所有主机节点可以访问Shared (Primary) Storage(共享存储/主存储)。一个Pod中的机器在同一个子网(网段)中,其包括若干个Cluster。一个或多个Pod通过3次交换机构成一个Zone,Zone中可以访问Secondary Storage(二级存储)。Zone对应于现实中的一个数据中心,它是云平台中最大的一个单元,一个或者多个Zone表示一个“云”。即从包含关系上而言,一个 Zone 包含多个Pod,一个Pod 包含多个Cluster,一个Cluster 包含多个Host。
2.2存储架构分析
出于对性能及总拥有成本考虑,云平台中把存储分成两类:一级存储和二级存储。
一级存储在Cluster级进行配置,与主机节点连接,用来存储虚拟机实例所有的磁盘卷,供虚拟机运行时使用。在同一个Cluster内所有主机节点都可以访问配置在该Cluster内的一级存储,而一个Cluster可以包含一个或多个一级存储。一级存储要支持存储分级功能。对于主存储,CloudStack云平台支持NFS、iSCS、Fiber Channel 和Local Disk。
二级存储在Zone级进行配置,一个Zone可以包含一个或多个二级存储。二级存储用来存储系统模板、ISO、快照等数据,其存储的数据较大,因此需要较大容量。二级存储支持NFS以及OpenStack Swift。CloudStack云平台管理节点用来提供对一级存储及二级存储的综合管理、配置及使用功能,两种存储在CloudStack中的关系如图3所示。
其中,模板为可以启动虚拟机的操作系统镜像,也包括诸如已安装应用的其余配置信息;ISO 镜像为包含操作系统数据或启动媒质的磁盘镜像;磁盘卷快照为虚拟机数据的已储存副本,用于数据恢复或创建新模板。
3结语
云平台的使用通过提高企业的硬件资源利用率来降低企业成本,此外,还减少了用户终端的处理负担,使用户只需通过互联网即可随时随地获得服务。但在云平台中数据的安全性、服务的可靠性和稳定性等方面,云计算还需要继续完善。
参考文献参考文献:
[1]MELL P,GRANCE T.The NIST definition of cloud computing[J].National Institute of Standards and Technology,2011.
[2]EC2[EB/OL].http://aws.amazon.com/ec2/.
[3]AppEngine[EB/OL].http://code.google.com/appengine/.
[4]Azure[EB/OL].http://www.microsoft.com/windowsazure/.
责任编辑(责任编辑:黄健)