杨星华,李蜀瑜
(陕西师范大学 陕西 西安 710062)
云计算[1]服务模式和部署模型已经成熟,随着这些技术的盛行和云计算模式[2]的衍变,云协作[3]成为关键问题,现在,混合云模型,互联云,跨云和云联盟成为热点问题。混合云权衡可用性和私密性是重要问题,使用专有解决方案和标准,解决移植性和协作性以实现混合云。然而,互联云和云联盟是多个云互惠互利模式的协作,但是,云联盟更注重以提供商商为中心的解决方案,互联云提供了未来标准和开源接口的机会。需求策略是要通过互联云协作解决不同云环境的的异质问题。
目前,一些跨云计算的实现虽然可用,但是他们是基于提供商的专有解决方案,例如亚马逊的EC2,而极少有基于代理实现作为开源,例如OpenQRM,这些方案不是对提供商关闭就是与特定环境高耦合。OpenQRM是一个封闭平台,没有可协作性和联盟,而OpenNebula和Nimbus仅仅与亚马逊的EC2环境兼容。云协作中,Boto和jclouds是可用的,但是不能以标准形式编目云资源,云资源是云协作域的集成部分。
为消息交互提供一种标准机制,文献[4]介绍了一种基于XMPP和RDF的互联云目录和消息交互协议,该协议利用XMPP基于UDDI的特性作为一个云注册表模块,这拓展了互联云的通信能力。基于注册的XMPP特性,该实现依赖第三方服务器管理所有互联云节点的资源,这种解决方案成功的将互联的云解耦,但同时又将云与关联的注册服务器耦合。文献[5]介绍了一个以资源集成为目的的三阶段的跨云联盟模型,这个解决方案基于XML,利用XMPP,XACML和SAML。文献[6]提出了以独立控制和通信的多代理中间件系统,这个系统将DDS[4]和本体论实现相结合,基于树的本体论结构用于定义服务质量策略,结合DDS[7],在一个特定空间中,提取通信信息,识别一个代理位置。
文中利用刚刚提到的两种相似技术,主要针对云计算基础设施服务模式的协作问题,解决公有云平台下云方间基础设施协作和云方资源编目,解除对第三方注册的高度依赖,降低云方与云方之间,云与第三方的耦合度,给云方部署代理,称为云方代理。为了区分云节点,本文中称一个云节点为一个云方。因为云方协作的重点是一个云方发现另一个可协作的云方,这种发现由公有云域维护,公有云域中,代理部署在云方中,代理是基于DDS的实现,云资源叙述基于XML技术,本文主要研究云方基础设施资源协作。
多个云方构成一个云域,相当于一个云方簇群,每一个云方都有一个云参与节点即云方代理节点注册到一个云域。每个代理节点需要有运行DDS应用的能力。云域划分应用,一个应用程序和一个云域存在多对一的关系,一个应用程序可以属于多个云域,然而,数据写者和数据读者只归属于创建他们的云域,归属于不同云域的数据写者和数据读者不能交换数据,即使是在同一云方上。为了实现基于服务的云方协作,云域中创建和部署独立的应用程序如图1所示。
图1 云方协作结构图Fig.1 Structure of cloud collaboration
云域ID标识特定的云域。云方代理部署在所有云方参与节点上并创建云域参与者,拥有一致属于云域的云域ID。每个云域参与者是每个云方的代理节点,其部署有云方代理。
图2给出了云方代理层次图,是一个3层的体系结构,资源层负责对云方基础设施资源信息的详细描述,是云方协作的桥梁,数据分发服务DDS主要为云方协作提供一种基于发布订阅的实时高效通信模式。
基础架构层为以上两层提供底层支持,包括构成云方平台的物理环境即硬件资源,还有在物理环境基础上构建的云方平台,提供云协作的实验环境。
以下小节将主要介绍资源定义层和数据分发服务层。
图2 云方代理层次图Fig.2 The layer of cloud proxy
云方协作需要一个正式的对其云方资源信息的叙述,基于xml的文档具有快速传播信息资源,而且更易于检索者查找和利用这些优点,因此本文采用以xml形式叙述资源以及资源在架构形式中的关系。云方请求协作时期,资源叙述文件作为云方发布数据的一部分供其他云方与之匹配以完成云方间的协作。虽然本文主要针对基础设施资源进行云协作介绍,但是为了支持云协作可扩展性,不仅仅提供云方基础设施资源协作,还要扩展其他资源的云方协作,因此基于xml的云方资源叙述结构如图3所示:一个完整的云方资源叙述包括五个部分内容,每个资源都可以进一步进行细粒度划分,图中主要针对本文基础设施资源层做了细粒度划分,其他部分不在此做重点叙述。
图3 云方资源结构图Fig.3 Structure of cloud resource
核心资源叙述云方核心信息资源,核心资源可以进行细粒度划分,细粒度划分的核心资源诸如操作系统,集群中间件,虚拟机监控器等资源信息。
软件资源叙述云方软件资源信息,细粒度划分为应用程序资源。
平台资源叙述云方使用平台资源信息,这个平台资源信息可进一步细分为安全资源,管理资源,负载均衡资源,运行时刻资源等平台资源。
基础设施资源叙述云方基础设施资源信息,细粒度划分的资源信息包括计算资源,通信资源,数据存储资源,这些资源还可以进行进一步粒度划分,例如计算资源包含虚拟机,通信资源包含QoS。数据存储资源包含文件系统,数据库管理系统。
硬件资源叙述云方硬件相关资源信息,包括耗电量,数据中心管理,调度等资源。
资源叙述文件与云方代理共享,该文件能够用于不同的云方环境之间的资源匹配的请求。根据资源匹配,成为云协作中的一方。
云方资源叙述具有两种类型的文件形式,全局资源叙述和本地资源叙述参与云方代理实现,全局资源叙述所有存在于云域中的概念,负责云域资源的全局数据管理,云域拥有全局资源叙述文件,叙述云域中全体物理节点资源和虚拟机资源,包括云域编号,云域包含云方节点数量,云域中所有云方节点编号等全局资源信息,,本地资源叙述特定的云方部署资源,只包括与本地相关的概念,包括云方节点编号,云方节点所在云域编号和云方本地资源信息,本地资源叙述符合全局资源叙述形式。
文中主要叙述基础设施层资源,以cup使用率,内存,存储,网络带宽,操作系统os来叙述云基础设施物理节点资源和虚拟机资源,例如,一个云方节点资源包含如下资源信息:云方物理节点信息:云方节点ID,云域ID,cpu使用率,内存使用率,磁盘容量,云方IP,虚拟资源信息:虚拟机ID,虚拟机镜像ID,虚拟机cpu使用率,虚拟机内存使用率,磁盘ID,虚拟机IP。
DDS是一个3层的体系结构,其中两层是本文所用,在云平台中,这两层能够可扩展和及时的分发有用资源信息,一层是DCPS,以数据为中心的发布订阅,它可以提供数据为中心,基于主题和实时的发布订阅标准,同时提供有效,可扩展和可预测的数据分发能力。DCPS运行在RTPS层上,该层提供DDS互操作有线协议。图4所示,DDS层主要包括具有数据通信能力的发布者,订阅者,数据写者,数据读者和基于主题的通信,负责将资源层的资源叙述发布出去,并且只由注册请求主题的发布的云方做出响应,以期完成云方协作。
图4 数据分发服务DDS层Fig.4 The layer of DDS
与其他发布订阅中间件相比,DDS的特色是富裕的QoS支持,由DCPS层提供。DDS能够控制资源使用,例如,带宽,内存,还有非功能属性,例如可靠性和及时性。
根据资源叙述,如何利用DDS进行请求响应云方协作,图5展示了DDS实体uml图:
消息封装发现可互协作的云计算环境请求和可协作云方的响应。请求和响应与常规请求和响应通信不能混淆。云域中,请求和响应实体都是发布实体。
消息类型枚举消息的细化分类,用于判定区分请求类型,以此确定请求处理过程。例如,一个资源迁移请求或前期发送的消息处置请求,这意味着前期发送的请求是无效的,因此,需要停止和取消无效请求的处理过程。
图5 5D云方代理DDS实体图Fig.5 DDS entity of cloud proxy
QoS参数枚举DDS提供的服务质量参数。QoS策略为每个发布和订阅订阅定义QoS参数集合。
资源叙述是对云方资源的正式定义,即是一个云方资源叙述的容器,2.1小节已对云方资源叙述进行详细介绍。
围绕基于DDS进行云方协作问题,分别从以下角度来剖析解决云方协作关键问题:
1)请求响应主题
云域中,主题是云方代理数据类型的实现和数据移动的单位。面向对象编程中,主题实例是请求和响应的实例,其中请求和响应是基于用户定义的主题类型。一个主题的多个实例可以存在于云方代理环境中,而每个实例拥有除关键值之外的可变值,特定实例的一组值称为一个样本,云方代理可携带一个主题实例的多个样本。
2)透明配置QoS
DDS利用服务质量参数控制发布和订阅[6],参数构成QoS策略。QoS简化发布者和订阅者间复杂通信需求,云方代理能够利用QoS进行创新,云域中,选取特定需求的参数,枚举定义QoS,形成QoS策略,两个云方进行通信,双方 QoS策略必须兼容。
DDS通信时由发布者和订阅者控制资源信息的QoS属性,控制方法是给发布者和订阅者配置QoS属性。然而,存在着一些问题,例如,订阅者彻底理解 QoS策略多样范围,避免订阅者之间QoS冲突,因此云方代理使得订阅者不需要处理这些问题,同时对订阅者屏蔽DDS的存在,意味着订阅者只负责使用DDS服务,不关心DDS。
3)发布订阅
在云方参与节点发布和订阅主题,通过应用程序接口使用DDS的数据写者和数据读者。当云方代理需要写出一个发布主题,数据写者对象此时被创建,相应的,当云方代理接收到一个主题时,数据读者对象被创建。
当云方发出云方协作请求,云方代理使用数据写者对象发送请求主题。一个数据写者与单一请求相关;然而,多个数据写者和主题在云方代理中可以存在。当云方代理调用数据写者的write(),请求对象传递给发布对象,云域中进行实际的数据序列化。
同样,云方代理使用数据写者对象接收请求主题。一个数据写者与单一请求有关,然而,多个数据读者和主题在云方代理中可以存在。接收到数据之后,数据首先被参与节点的发布者对象反序列化,其次数据样本被存储在适当的数据读者中。云方代理可以通过监听或轮询读取请求。
本文实验环境配置如下:3个节点pc,分别称为云方A,云方B,云方C。由于OpenStack为基础设施即服务 (简称IaaS)提供了开放协作的环境,符合本实验云方基础设施服务需求。同时openStack的Grizzly版本提供安全支持,因此,3个云方物理环境下均部署openStack Grizzly版本,并安装虚拟机监控器KVM with libvirt,云方A依次开启API服务,网络服务,卷服务,对象存储服务和调度器服务,云方B和云方C分别运行计算服务,因篇幅有限和现有资源匹配技术比较成熟,此处不再详细介绍资源匹配算法,因此本实验直接采用文献[8]提出的资源匹配算法进行云方资源匹配。.
现做如下云方协作实验:云方A发布请求将自己平台中的虚拟机A迁徙到云方B平台,为了实验需求,云方B注册请求主题,云方C不注册请求,因此会忽略发布,云方C同时作为云域节点,负责全局数据的管理。
云方A平台的云方代理发起虚拟机迁徙请求:以下将云方A称为发布云方,云方B称为响应云方。
发布云方通过创建请求主题样本启动处理过程。使用虚拟机迁徙需求值,如操作系统os,内存RAM,存储容量等,初始化基于xml格式的本地云方资源叙述文件,如图6所示,作为发布数据的一部分。 数据写者发布拥有唯一请求ID的请求作为云域中的中的异步消息。随后,发布云创建拥有一致请求ID的响应,注册给读的监听器。请求ID是唯一标识符,响应一致的已发布的请求ID。读的生命周期取决于时间期限,当创建响应主题时,定义QoS策略参数。
图6 云方A资源叙述Fig.6 Resource of cloud side A
云域中,所有部署有云方代理的代理节点都能接收到发布,然而,只有已注册请求主题的云方代理处理。如果有云方注册订阅,相应的数据写者存储和处理请求样本。本地云方资源叙述对象被加载并与订阅云方资源叙述对象处理匹配进行一步的评估。
图7 虚拟机迁徙示例Fig.7 Example diagram of virtual machine
云域能够定制资源叙述文件匹配技术和算法,参与云方可以互相商定这些技术。订阅节点的云方代理加载本地资源库信息,该实例的请求协作并得到响应过程如图7所示。
加入云方代理是解决多个云方协作问题,基于DDS的发布订阅解耦消息通信促进云方间共享工作负载。云方代理是基于DDS的实现,有效利用基于域安全性,基于主题发布订阅,基于服务质量通信,跨平台部署和可靠的发布订阅消息通信模型提供异质云协作需求,云方部署有基于DDS实现的云方代理达到异构云方协作,未来工作中,将进一步研究云方资源监控的问题,同时,跨云协作将是以后研究重点。
[1]李烨.云计算的发展研究[M].北京:北京邮电大学,2011.
[2]Wikipedia,Cloud monitoring[EB/OL].2015-2-26.http://en.wikipedia.org/wiki/Cloud_computing.
[3]Niyato D,Wang P,Hossain E,et al.Game Theoretic Modeling of Cooperation Among Service Providers in Mobile Cloud Computing Environments[C]//Paris, France, 1-4 April 2012.Wireless Communications and Networking Conf.
[4]David Bernstein,Deepak Vij.Intercloud Directory and Exchange Protocol Detail using XMPP and RDF[C]//World Congress on Services,2010.
[5]Antonio Celesti,Franco Tusa,Massimo Villari,et al.How to Enhance Cloud Architectures to Enable Cross-Federation[C]//International Conference on Cloud Computing,2010.
[6]Jose L Poza,Juan L.Posadas and Jose E.Simo, “Adding an Ontology to a Standardized QoS-Based MAS Middleware,”distributed computing, artificial intelligence, ioinformatics,soft computing,and ambient assisted living[M].Lecture Notes in Computer Science,2009:83-90.
[7]Object Management Group.DDS.Data Distribution Service for Real-time Systems[S].2007.
[8]曹怀虎,牛娃,张艳梅.基于语义本体论的网格资源描述及匹配算法[J].四川大学学报,2007,39(S1):174-177.