云计算是当前最热门的技术之一,它作为一种全新的基于网络的超级计算模式已经受到了学术界、产业界以及政府的广泛关注[1][2]。云计算平台利用虚拟化技术将云中强大的计算资源和存储资源等通过网络向用户提供方便、快捷、按需的网络访问服务,从而为用户节省大量的软硬件成本以及运营成本等。云计算平台按照其服务模式可以分为三种类型:软件即服务(Software as a Service,SAAS)、平台即服务(Platform as a Service,PAAS)、基础设施即服务(Infrastructure as a Service,IAAS)。不同的云计算平台为用户提供有差别的服务。因此,云平台的设计与搭建是用户主要关心的问题。另一方面,由于IPv4地址资源日益枯竭以及技术所面临的安全等问题,影响了云计算平台中新兴业务的快速部署[3]。IPv6技术的出现,为云计算平台的设计注入了新活力,使得云计算平台能为用户提供更加丰富、安全和快捷的云计算服务。因此设计基于IPv6技术的云计算平台具有十分重要的意义。
国内外许多研究者提出了自己的云平台设计方案[4]。文献[5-7]中提出在高校和科研实验室中搭建自己的云平台,主要用于解决高校和实验室中硬件资源浪费、资源利用率低等问题,实现对高校和实验室中资源的集中管理。但是所设计的云平台不是基于IPv6协议开发的,且不能够确保用户数据的安全性。文献[8-10]中实现的云计算平台是在目前主流云平台的基础上构建的,例如张帆等人[8]设计的一种基于Eucalyptus构建的云计算平台,能够广泛应用于科研实验室、工作站、企业内部等小型分布式计算环境中,但是由于Eucalyptus平台本身不支持IPv6,平台的可扩展性不强。李磊等人[9]提出了一种基于OpenStack的教学科研云计算平台框架。李小宁等人[10]提出了一种基于OpenStack的在本地科研实验室中搭建私有云平台的方法,这两个基于OpenStack所设计的云平台都能够实现资源的弹性分配,并且能够确保用户数据的安全,但OpenStack对于数据库具有很强的依赖性,且网络性能并非最优。在文献[11-15]中,作者利用CloudStack实现了相关云计算服务的优化,如负载均衡、虚拟化部署、权限管理等。虽然OpenStack与CloudStack两个开源的云平台支持IPv6协议,但是在上述相关平台应用的设计中均没有考虑应用IPv6技术来提高平台的性能。
文献[16-18]中提出了基于Hadoop技术搭建云计算平台的方法,利用HDFS为海量数据提供存储,通过MapReduce技术实现数据的分布式处理。但是Hadoop平台自身不支持IPv6协议,无法将其应用在IPv6环境中。文献[19]设计并实现了基于Ceph的云存储系统,但是该系统也仅仅是在IPv4网络环境下实现。因此设计开发出一个基于IPv6的具有分布式文件管理的云计算平台具有现实意义。
本文主要研究基于IPv6的CloudStack云计算平台的设计与搭建问题。由于CloudStack平台的高级网络部分能很好地支持IPv6网络的配置,以及Ceph分布式文件系统支持IPv6协议,能为每个用户提供私有的存储空间,具有良好的可扩展性和可维护性。本文以CloudStack平台和Ceph分布式文件系统为基础,利用IPv6技术、虚拟化技术和分布式存储技术来设计一个安全、高效的云计算平台,达到为用户提供便捷的服务的目的。
CloudStack云平台与Ceph文件系统
CloudStack[20]作为一个高可用性,高扩展性的基础设施即服务(IaaS)开源云计算平台,支持IPv6网络协议,可以部署在大型网络中并管理虚拟机实例。它是一个管理数据中心计算资源的控制台,同时也是一个IT基础架构的综合管理系统。CloudStack可以管理不同账号下任意多的虚拟机及其对应的复杂网络。CloudStack通过对计算、网络、存储等物理资源的综合管控以及完整的账户和API的支持,使其可以被用于企业内部的私有云,或运营商托管的混合云以及类似亚马逊EC2的公有云。它支持目前主流的虚拟机管理程序:VMware、KVM、CitrixXenServer、Xen CloudPlatform(XCP)、Oracle VM以及MicrosoftHyper-V。如图1所示,CloudStack采用了三层结构,客户端、系统引擎以及资源层。用户可以通过Web、终端和Web服务访问平台。资源层将底层计算资源、网络资源和存储资源虚拟化成资源池。系统引擎管理整个平台功能与服务。
为了组建一个规模较大的、数据增长快的存储系统,我们选择了一个具有高可靠性和高扩展性的分布式文件系统Ceph[21]。Ceph分布式文件系统能够解决大量数据存储和管理的问题,同时Ceph分布式文件系统支持IPv6协议,可以基于IPv6协议实现更快速、稳定和安全的文件存储。如图2所示,其底层是RADOS(Reliable Autonomic Distributed Object Storage),允许应用程序直接通过LIBRADOS访问对象存储系统,基于RADOS底层结构的Ceph在同一个系统中同时提供了对象、块和文件存储的功能[16]。在云业务应用层选择Ceph分布式文件系统作为云硬盘的开源方案,利用其OSD节点管理、冗余管理、传输管理和检索管理等管理服务,实现可靠的多用户加密可检索文件系统。
平台的IPv6的网络配置
平台的IPv6网络配置如图3所示,使用2001:250:4402:223::/64作为IPv6的CIDR,将该网络分成两个子网:子网A(2001:250:4402:223::/65)与子网B(2001:250:4402:223:8000::/65)。子网A分配给CloudStack的管理节点与存储节点使用,而将子网B分配给Ceph分布式文件系统中的存储节点及控制节点。相对于IPv4地址来说,IPv6支持的主机数明显增加,可以更加迅速快捷的扩展云平台的规模大小,比如在CloudStack系统中,通过动态的添加Host主机,扩大集群的计算能力以及存储能力,在Ceph中,存储节点也可以进行动态的扩充,支持TB到PB级的扩展。