随着技术的发展和各行业对云概念理解的深入,云开始在各个层面和各个领域蔓延。它已经变成一种思路、一种潮流,如云计算、云服务、云安全等。它们可以使计算能力、服务、运营能力及安全能力通过一个平台集中提供并控制,并让其成为千千万万的企业和个人可以随需索取的东西。
如何让云深入人们的生活?其中的关键在于开放平台的提供,它可以使云透过标准通用管道,服务于普通百姓人家。可以说,使用云能力的门槛越低、越便利,使用范围才能越来越广。云计算的能力开放,不仅方便最终使用者,更是受益第三方企业,他们能利用开放的接口和服务, 提供超出云计算本身能力的服务。
1 IaaS能力开放架构
1.1 虚拟化能力开放
目前业界已有很多厂商可以提供虚拟化解决方案,如VMWare、 Microsoft、Citrix以及基于开源的Xen/KVM等。各种虚拟化解决方案各有特色,但目前面临的最大问题是:不论是生成的虚拟化文件,还是虚拟化的管理都各自为政、互不兼容。
当前的形式迫切需要一种标准,能向所有参与者提供虚拟化应用的方法,并且减少多个、竞争性的、不兼容的实现所带来的问题。目前,分布管理任务组织已开始使用开放式虚拟机(OVF)格式。OVF支持多虚拟化映像格式,对于任何监管程序的虚拟机都可以使用它引导程序并加载。另外,OVF引导程序是基于数字签名的,确保了免费发布和用户的利益。
虚拟化最主要的参与厂商,像Dell、HP、IBM、微软、VMware以及Citrix都加入了OVF,后几者的加入表明虚拟化厂商参与的重要性,同时也增强了标准被广泛采纳的可能性。
中兴通讯公司在虚拟化的统一管理方面提供了开放的管理平台,能够支持多种底层虚拟化环境,如图1所示。它未来也将可以支持OVF, 并能提供用户侧的监控与网管,自由创建、销毁、迁移及监测各虚拟机及上层应用的状态。由于虚拟机调度可能导致网络设备以及负荷平衡设备的变化,因此将对网络设备也实现统一管理。虚拟化平台向应用层提供可信的虚拟化开放接口,可以让应用系统根据自身需求,动态调度虚拟机。业务系统通过开放的接口调用,就能够实现更加广义的自动化业务弹性可扩展解决方案。
1.2 存储能力开放
存储能力是最基本的能力之一,也是所有数据能够被处理的基础。目前的数据存储主要有3种访问方式:文件存储、对象存储以及块存储。块存储与文件存储面向底层接口,一般来说对应用透明;对象存储属于应用层之上的软接口[1]。
从文件系统的角度来看,云计算主要面向的是分布式文件系统,它是云基础架构中最核心的元素,目前比较著名的有RedHat GFS、IBM 的GPFS及SUN的Luster。这些分布式文件系统对硬件设施的要求较高,往往需要存储节点自身提供数据可靠性的保证。这类文件系统通常会在操作系统核心提供开放接口供文件访问。另外一类是类似Google GFS产品,如开源的HDFS、KFS、阿里巴巴的盘古文件系统等,此类产品使用廉价商用机器搭建分布式文件系统,并在用户态提供开放接口。
不论何种内部实现方式,分布式文件系统都需要提供可靠性存储及可供应用访问的接口。核心域实现的存储开放方式主要是在操作系统内核层面通过专用驱动实现裸设备的暴露,操作系统使用通用的文件系统如Ext3对应用开放。用户域的存储开放方式是Posix接口或专用的私有协议接口。使用用户态开放接口有如下好处:
在用户态文件系统与操作系统松耦合,便于单独升级,稳定性好。
减少操作系统导致的底层交互次数,降低复杂度,提高效率。
接口更丰富,能够实现更好的优化。
安全性更好控制。
当然,用户态开放也有缺点,如接口对应用有侵入性。如果迁移到其他存储系统将需要重新编译相关应用。
对应用户态开放的是通用接口方式,如网络文件系统(NFS)、文件传输协议(FTP)等标准协议。由于这些标准协议制订时并未考虑到分布式问题,所以接口本身的分布式需要重点解决,即接口本身如何寻址、容错、负载均衡等。同时需要重点解决多文件共享访问的读写锁问题。
中兴通讯分布式文件系统对于通用接口方式采用动态域名系统(DNS)结合接口IP虚拟化技术,较好地解决寻址及容错问题,并且通过服务端增加额外一层接口层实现了根据能力的负载均衡技术。
1.3 对象存储技术
直接开放文件系统的存储方式比较适合私有云的构建,对于面向公众服务的公有云服务,我们期望能够和WEB协议(HTTP)兼容。互联网的快速发展对存储系统的容量、性能和功能提出了巨大挑战,主要表现为大容量、高性能、可扩展性、可共享性、自适应性、可管理性,以及高可靠性和可用性,目前市场上没有一种解决方案可以满足所有这些要求。对于快速升级的存储需求,基于对象存储(OBS)技术是一种非常有前景的解决方法,它融合了高速可直接访问的存储网络(SAN)和安全、良好跨平台共享数据的网络附属存储(NAS)的优点。通过对象存储可以很好地屏蔽底层协议及网络结构的复杂性,对象存储的具体特点如图2所示。下一代互联网和PB级存储大规模部署迫切地期待基于对象存储技术的成熟和大规模应用。对象存储设备(OSD) 可以基于独立的设备(如OSD硬盘),也可以在分布式系统上构建。为保证对象的唯一性,面向分布式系统时一般会划分对象组,确保在不同对象组内对象具有唯一性。
对象设备内部管理元数据(空间管理)。
对象ID是访问该对象的唯一标志(每个OSD设备唯一)。
图3所示的是OSD安全模型,它是一个基于证书的访问控制系统,由4个实体组成:应用客户端、安全服务、策略/存储管理者及对象服务。
对象存储一般都要包含如下操作:读、写、列表、删除、获取元数据,例如Amazon 简单存储服务(S3)面向各种应用提供了面向对象的S3。
对象存储主要是面向应用开放,目前各种系统接口尚未完全统一。提供WebService或RESTful的接口比较便于应用的透明接入,但提供基于长链接的定制化客户端接入则比较容易做到高效访问。
中兴通讯开发的分布式键值访问系统就属于典型的对象存储方式。它将数据区划分为不同的桶,每个桶内的对象对应唯一的键。通过键信息,可以获取对应的访问权限验证元数据信息和值信息。为了保证系统的可扩展性,整个系统搭建成无主网络,并且可以做到元数据信息以及键值信息的自动分布与备份。系统为提高性能,同时支持了持久化存储与非持久化存储机制。
1.4 块存储能力开放
块存储将存储区域划分成固定大小的小块,是传统裸存储设备的存储空间对外暴露方式,如图4所示。传统设备的块存储面向的是单一的物理设备,而到了云计算环境,块存储设备也将面临分布式环境。
在云计算中提供块存储能力对于虚拟机与存储系统的有机结合有着其他存储方式无法替代的作用[2]。因为很多应用软件并没有按照云存储形式进行改造或优化,例如大部分的数据库软件。如果想要在虚拟机中有效地部署并使用这些应用,提供块存储能力必不可少。
块存储的一个问题是安全性较差。因并非直接对应用暴露接口,而是面向操作系统暴露底层设备,因此对于存储的内容往往没有较好的办法进行控制。
中兴通讯配合虚拟机技术,实现了分布式的块存储访问模式。通过块存储,能够将多台机器上的物理存储设备虚拟化,并且重新切分,分配给需要使用的虚拟机。使用块存储设备还可以很好地利用淘汰下来的旧存储设备,通过存储虚拟化接口层,将不同的物理底层设备接口进行屏蔽[3-4]。
通过存储虚拟化层整合各种物理存储设备,并将它的内空间按固定的大小统一切片。然后向客户端提供块存储接口,并将多个切片后的小块存储区域通过存储虚拟化层统一调度并组成客户所需要的卷大小,如图5所示。每个小的切片都会由接口将客户机的块访问请求直接映射成为物理机的块访问请求。