在了解开源云平台OpenStack的基础上分析了cinder块存储技术和swift对象存储技术,使开发人员能深入地理解OpenStack存储的工作原理与实现过程,为云计算背景下的应用程序开发提供参考。


    数据的备份、安全存储一直是计算机领域关注的热点之一。人们习惯于将文件或数据存储在自己运用的单体物理机上。然而,单体物理机面临着各种各样的不确定性风险,其存储容量是极为有限的,且不具备不受限的扩展能力。因此云存储快速发展。云存储是随着云计算的发展而产生的一个概念,它是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问


    1 OpenStack云平台

        1.1 OpenStack云平台介绍

        OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,是一个自由软件和开放源代码项目。目前获得了业界大多数厂商支持,发展迅速。OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由nova、glance、keystone、cinder、swift、dashboard六个主要的组件组合起来完成一些具体的工作。从2010年问世以来,每半年发布一正式版本。最大特点为开放、灵活,每一模块都支持多多种后端技术,可根据需要选择。目前整体架构仍然处在变化中,新组件不断出现,全部源码用pytllon开发。

        1.2 OpenStack云平台架构

        OpenStack是一个与Amazon EC2兼容的IaaS系统。OpenStack仍然处在变化中,包括的组件不断扩充,OpenStack的不同模块之间不共享任何信息,通过消息中间件进行通讯。因此,不同的模块可以运行在不同的服务器上,也可以运行在同一台服务器上。

        1.3 OpenStack云平台对虚拟技术的支持

        云计算是以分布式计算和虚拟化技术为基础的,虚拟化对云计算平台来说是非常重要的。Xen和KVM是目前获得最广泛的厂商虚拟化技术,紧随其后的是vMware。而LXC和openVZ应用也很广泛。OpenStack是目前对虚拟化技术支持最广的一款云平台,它支持以上的所有虚拟技术。


    2 OpenStack云平台的存储分析

        云计算平台中,虚拟机产生的数据关机后会消失,所以需要提供持久的数据存储方案。OpenStack分别由swift模块及cinder模块提供对象存储及块存储服务。

        2.1快存储cinder

        2.1.1 Cinder特性

        块泛指底层磁盘上的扇区组合,某个文件可以对应一个或者多个这样的块。客户端访问存储系统的接口有两种:网络文件系统接口和SCSI或者ATA接口。Cinder作为块存储有以下特性:

        (1)Cinder为OpenStack实例提供块级存储设备管理服务。

        (2)块存储服务管理块设备的创建、加载、分离服务。块存储卷与Open—Stack计算模块及控制面板已经完整的集成到一起,为云用户管理他们的存储提供支持。

        (3)除了使用基本的Linux Server存储外,还可以将Ceph,NetApp,Nexenta,SolidFire等许多存储封装成统一的调用方式。

        (4)块存储服务适用于对性能敏感的场景,比如数据库,可扩展文件系统。也可以为原始块级提供接入服务。

        (5)快照管理功能提供了强大的接口,可以用块存储卷备份后台数据。快照也可以恢复和创建新的块存储卷。

       2.1.2 Cinder物理架构

        inder只是一个资源管理系统、负责存储资源的分配。cinder把不同的后端存储进行封装,向外提供统一的API。后端存储的可靠性和性能由后端存储负责。openstack没有开发块设备存储系统,cindre只是结合不同后端存储的driver(驱动)提供块设备存储服务,不同的厂商会开发自己存储产品的driver(驱动)。

        以后cinder的开发工作主要集中在shcedule和driver,以便提供更多的功能,支持更多的后端存储。


        2.2对象存储swift

        2.2.1 Swift概念

        OpenStack Object Storage fSwift)是用来创建冗余的、可扩展的对象存储(引擎)的开源软件。swirl使用标准化的服务器存储PB级的访问数据。它并不是文件系统或者实时的数据存储系统,而是一个用于存储永久类型的静态数据的长期存储系统,这些数据可以检索、调整、必要时进行更新。最适合存储的数据类型的首要例子是虚拟机镜像,图片存储,邮件存储,存档备份。因为没有中心单元或者主控结点,swirl提供了更强的扩展性、冗余和持久性。

        2.2.2对象存储的优势

        Swift是对象存储技术,对象是对象存储的基本单元。每个Object是数据和数据属性集的综合体。在传统的存储中,块设备要记录每个存储数据块在设备上的位置。Object维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。Object的大小可以不同,可以包含整个数据结构。例如文件数据块表项、基本存储单元、名字空间、数据、元数据、属性等。

        作为对象存储,它的优势在于它的存储接口是对象;存储系统是块存储设备与文件系统、定位逻辑、应用程序的组合;优点是支持高并行性、可伸缩的数据访问,管理性好、安全性高、适合高性能集群使用;当然也有它自身的缺点,处于发展阶段,相应的硬件、软件支持有待进一步完善。


    结束语

        云存储提供了可靠安全的数据存储。而OpenStack云平台提供了两种存储服务,一种是在线存储服务即cinder,虚拟机关机后的数据仍然存在;另一种是离线对象存储即swift,存储大规模数据,两种服务各行其责。在云存储技术中,cinder和swift都优势明显。



转载于:https://blog.51cto.com/jacker/1431562