徐蓉
摘要:随着云技术地不断发展,云计算资源与消费者之间的耦合关系限制了各种服务的扩展。为了解决今天云计算的紧密耦合问题,我们提出了超级云的概念,使云计算的配送与供应商及物理资源无关。通过引入Xen覆盖层的概念,使用户可以在不修改虚拟机映像的情况下,跨越多个云供应商并且享受更灵活的服务。
关键词:云技术; 超级云;Xen覆盖层
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)19-0046-02
作为商品化的计算资源,云计算常常会被用来和其他设施模型进行比较,比如电力设施。与电力提供商类似,云供应商也提供大量的计算资源。然而,和电力设施模型不同的是,电力的产生细节对消费者而言是完全透明的,而云消费者却必须和供应商的物理设施紧密耦合,而且要遵守不同供应商的各种规范(如虚拟栈、管理API等)。按实际情况来说,今天的云配送模式类似于十九世纪八十年代后期的直流电配电模式,即与当地的发电机紧密耦合在一起的。
美国西屋电力公司的通用电力系统,是现代电力发电、配送和商品化的基础。在这个通用系统中,高电压转换器将产生的电力转换为不同的电压,消费者只需要关心电力是否可用。电力如何产生对于消费者是完全透明的,因此电力消费和电力产生的耦合被解除掉了,而这种解耦恰恰是当代电力系统配送及商品化的基础。我们可以参考这一思路,来建设我们的云基础设施。
为了解决今天云计算的紧密耦合问题,我们提出了超级云的概念,使云计算的配送与供应商及物理资源无关。从表面上看,超级云的用户看到的计算资源和目前的云系统是一样的。但在表象之下,超级云将底层各种云资源转换为统一的抽象层。超级云定义并完全控制整个云协议栈,使其独立于提供商的物理设施,从而将用户与云供应商解耦。
超级云的实现不需要对现存的云系统进行重新设计。在本文中,我们将演示如何在现存的云系统上面来创建超级云,将内嵌的虚拟化系统作为平台,使其类似于电力通用系统中的高电压转换器。为了达到这个目标,我们设计了一个内嵌的半虚拟化管理程序,称为Xen1覆盖层,它可以运行在不同供应商之上,使超级云跨越不同的云系统。因此,一个超级云可以管理客户端的虚拟机(VM),使其独立于供应商的虚拟栈,从而跨越不同的计算资源。例如,一个超级云可以使VM在提供商之间在线迁移,同时它可以运行任何的云管理栈,包括OpenStack, Eucalyptus,甚至是完全自定义的栈。
1 超级云的设计
1.1 云计算的通用系统
通用系统中的资源设施模型,比如电力设施,包括三个独立的角色:发电,配送,消费。在最末端,发电机提供资源。配送商把不同发电器产生的原始资源作为商品,生成服务。最后消费者与配送商提供的服务交互,从而使用这些资源。
IaaS云所使用的普遍模型只有两个实体:一个云供应商和一个云使用者。这种情况是将云看成一个公共设施,云供应商扮演着发电机的角色,并将计算资源提供给虚拟机,云使用者扮演着消费者的角色。
在今天的云环境中,配送的角色可能由云供应商或第三方机构扮演,但两种情况都有局限。一些云供应商既充当发电机又充当配送商。他们完全控制着物理资源,可以实现大量的产品作为服务提供给用户。然而,这些产品本质上是与单个供应商捆绑,因此阻止了配送服务跨越不同供应商,比如供应商失败容差。作为另一种方案,第三方供应商(如RightScale)可以扮演配送的角色。通过与多个云供应商交互,他们提供云服务和管理产品。然而,这些第三方供应商缺乏对云供应商平台的控制,最终他们无法提供虚拟机迁移,CPU突发,透明虚拟机容错等服务。
今天的云模型缺乏一个强健的方法来创建云分配器。这样的分配器应该可以从不同云供应商那里消费资源,同时保持对这些资源的控制。换而言之,所缺乏的是一个分配层,可以将云发电机和云消费者解耦。超级云所完成的就是这个角色,它将云供应商看作可互换的发电机。超级云可以为计算资源在不同云供应商之间提供价格策略和现货市场,在供应商之间复制虚拟机,并且简化管理。
1.2 挑战和要求
IaaS2云供应商是相异的,他们的服务与物理资源紧密耦合。为了成为独立的分配器,一个超级云必须包含一个转换器或者一种彻底从物理设备解耦资源的机制-包括计算,网络和存储。第一步,我们集中考虑从物理设施解耦计算资源。在IaaS云中,计算在两方面与云供应商捆绑,必须使用转换器来解耦。
第一,运行在一个云供应商上的虚拟机映像很难在不同的云上面实例化。例如,EC23和Rackspace4使用不同的映像格式,分别是AMI和OVF。虚拟机使用的半虚拟化设备接口都是相似地多样化,EC2和Rackspace上的虚拟机分别使用Xen和virtio。一个超级云需要从不同的云供应商那里将计算资源作为商品来使用,因此必须将虚拟机映像格式从供应商那里解耦。
第二,IaaS提供给虚拟机的服务也是多样化的。例如,Amazon EC2提供云监控服务, 自动扩缩容量, 和负载均衡,而Rackspace支持虚拟机迁移来抗衡服务器主机降级,同时支持CPU突发来向其他实例借用周期。由于运行在管理层上的工具无法被获取,没有统一格式的工具可以让用户在物理设备上定义虚拟机,虚拟机之间的页面共享,或资源的超额认购。超级云必须以云提供商欠缺的功能来增强服务,而且使这些服务在不同的云资源之间无缝连接。
2 建立超级云
Xen覆盖层是一个内嵌的虚拟化系统,超级云的核心部分利用这个覆盖层将任意一个由供应商定义的虚拟机实例转换为一个统一的,基于分配器的实例。如图1所示,虚拟机实例中的内嵌虚拟系统包含了两层管理程序。在这个模型中,提供商继续拥有第一层的管理程序,而超级云拥有第二层管理程序。同时,在这个模型中,不同的超级云(即不同的分配商)可以共存。
Xen覆盖层主要包含两层。第一,上层为超级云用户提供了一个超级云控制的虚拟机接口和工具包,使客户端的虚拟机映像在不修改的情况下可以运行在任何供应商设施之上。第二,下层与底层通信管理程序接口,它根据不同的供应商变化,这样底层的管理程序就不需要任何改变。
Xen覆盖层的下层保障超级云可以跨越不同的云系统,而不必对底层的云系统或管理程序进行修改。假设云供应商支持X86系统上的硬件辅助虚拟技术,但我们不能模拟设备的I/O接口,因此覆盖层的管理程序必须知道底层管理程序以及并行虚拟I/O接口。Xen覆盖层与各种不同的底层设备的并行虚拟接口对接。设备并行虚拟接口对于运行性能是必不可少的,但现在仍然没有统一的标准存在。Xen覆盖层如果要支持非标准的接口,则必须修改下层使其包含特定的覆盖层驱动。
Xen覆盖层将供应商特定的虚拟机映像格式进行转换,并将管理程序环境转换为一个通用的格式。然而,超级云如果要将云供应商与消费者完全解耦,则必须对供应商的基础设施进行解耦。特别地,一个超级云必须提供统一的机制将虚拟机安置在网络上,同时还要和存储设备进行交互。
云供应商提供一个虚拟网络抽象层来将网络地址与云基础设施解耦。例如,亚马逊的VPC(虚拟私有云)允许用户将他们的虚拟网络延伸到云系统中。在消除了技术地址的挑战后,超级云还需要完善一个策略,即使虚拟机可以在不同的供应商之间切换,但彼此之间通信频繁的虚拟机仍然留在同一个云系统上。
网络地址问题的解决使得虚拟机可以从超级云系统内部的任何位置访问存储设备。但如果虚拟机访问的是另一个云系统的存储设备会使性能降低。超级云可以采用缓冲和复制的技术,并且在存储成本和传输数据之间取得一个性能上的平衡,甚至可以考虑在不同的供应商之间使用类似于RAID的技术。
3 总结
通过Xen覆盖层,超级云可以控制管理层以实现丰富的云服务。并且,Xen覆盖层不需要修改现在的云供应商设施,所以超级云的实现是现实可行的。在未来,超级云可以跨越多个供应商,提供完备的管理协议栈,革新和实验性的云服务,并为特定的应用提供定制特征。
注解:
1.Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。Xen无需特殊硬件支持,就能达到高性能的虚拟化。
2.Infrastructure as a Service,基础设施即服务,消费者通过Internet可以从完善的计算机基础设施获得服务。
3.(EC2,Elastic Compute Cloud)-亚马逊弹性计算云,是一个让使用者可以租用云端电脑运行所需应用的系统。
4.Rackspace是全球三大云计算中心之一,1998年成立,是一家全球领先的托管服务器及云计算提供商,公司总部位于美国,在英国,澳大利亚,瑞士,荷兰及香港设有分部。
参考文献:
[1] J.Jones,Empires of Light: Edison, Tesla, Westing house,and the Race to Electrify the World, Random House,2004.
[2] P.Mell and T.Grance,The NIST Definition of Cloud Computing,Special Publication 800-145, US Natl Inst.Standards and Technology,Sept,2011.
[3] H. Abu-Libdeh,L Princehouse,and H.Weatherspoon,RACS:A Case for Cloud Storage Diversity,” Proc.ACM Symp.Cloud Computing,ACM,2010:229-240.
[4] 陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009,29(9):2562-2564.