基于云环境下高可靠性对象存储系统的数据组织研究*
2014-09-13张强善严正香
张强善 严正香 徐 澍
(1:信阳职业技术学院网络中心,信阳 464000; 2:信阳职业技术学院计算机系,信阳 464000)
近年来,随着云服务和物联网的蓬勃发展,越来越多的个人和企业选择了将海量数据存储在非本地的远程计算机或者远程服务器上,用户只需要利用互联网提供的数据存储和计算力,就可获取诸如计算力、存储空降、软件服务等云计算模式,降低了企业和个人昂贵的硬件购置成本,用户通过云环境得到如同使用本地设备一样的快乐体验,这就使一大批新的存储技术在云环境下得以充分应用,但这些技术研究与实际的互联网环境中的海量存储目标还有很大的差距.目前,采用诸如Master/Slave结构的主从结构的云存储系统[1]、对等的云存储系统、Hadoop云计算平台下的Scool云存储平台等都能解决云存储系统的部分问题,但是,云存储本身的异构性、分布性、扩展性、透明性、并发性、可靠性以及访问效率等[2]对现有的存储系统提出了更高的技术要求.
1 云存储知识
云存储是指存储系统由第三方进行维护的非现场存储系统,用户的数据不是存储在本地计算机硬盘或其他本地存储设备中,而是保存到远程数据库中,在此过程中由互联网提供远程访问链路.
因此,作为大数据时代的云存储技术与传统的存储技术相比,具有明显的优势:① 灵活方便.用户只需将数据的创建于维护交给云服务提供商,而不需要考虑存储容量、存储设备的类型、数据存储位置、数据的可用性等因素;② 成本低廉.用户租用云服务提供商提供的服务即可满足数据存储需求,避免大量的硬件投入,同时不必安排专门的维护人员,也不必考虑存储空间大小等;③ 量身定制.云存储可以根据用户的实际需求,提供满足用户个性需求的解决方案.
当然,云存储还处在快速发展阶段,必然存在着一些需进一步改善的地方:① 安全问题.由于数据存放在云计算中心,如何才能保证用户的个人隐私数据和敏感信息,这始终是用户最为关注的问题;② 可靠性问题.作为数据存储系统最基本最关键的一项指标,可靠性一直是大家关注的重点.
为此,我们提出了一种基于云环境下的高性能存储系统HPSSCE(High Performance Storage System on Cloud-based Environment)架构.
2 HPSSCE系统的数据组织设计
现有的存储系统一般分为文件存储和数据块存储两种形式.其中,文件存储在高层给用户提供一个逻辑接口,通过该模块使数据可以在不同操作系统平台之间实现共享,但在存储设备数量较多时,文件系统的开销明显加大,使系统性能受到限制.数据块存储尽管能提供更加快速的数据访问,但该访问属于底层访问,由元数据服务器管理,数据共享繁琐.对象存储是将文件存储和数据块存储的优点有机的结合起来,在降低元数据服务器负载的同时,也能提供更好的访问效果.
而对于存储系统的容错技术的发展,目前国内外对存储系统的容错主要有两种研究思路:① 构建组合嵌套RAID;② 多磁盘故障容错的RAID结构.而多磁盘故障容错的RAID结构仍在继续探索中,这种思路主要依赖对新的编码方式的研究,因此,或多或少还存在问题.
近年来,伴随着云服务和物联网的蓬勃发展,存储系统的海量存储和安全性能越来越多地引起关注.
2.1 云存储的体系架构
图1 云存储的体系架构
实现云计算环境下数据存储的基础是由大量存放位置不同的存储设备所构成的存储中心.这些分散的存储设备,利用各自的分布式文件系统,将不同的资源聚合为一个具有高可扩展、性高可靠性的整体,由这些存储中心构建面向用户的云存储服务[3](如图1所示).
数据中心是实现云存储的基础,主要包括各种存储设备,以及对这些存储设备进行管理的文件系统.文件系统可以实现云存储中多个存储设备之间的协同工作,使分布在多个服务器上的文件不受物理位置影响,并提供更为优越的数据访问性能,对外提供同一种服务.服务级别协议是指提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约,服务等级协议是决定云存储服务能否成功的关键因素.应用接口层是云存储服务系统最灵活多变的部分,用户通过云服务接口实现对云端数据的存取操作.
2.2 HPSSCE系统的组织设计
为了构建一种适用于云环境下的高性能存储系统,我们认真研究了RAID10架构,它是一种兼顾存储性能和数据安全等优点的存储架构,在此基础之,我们提出一种基于云环境的高性能的存储系统HPSSCE架构.HPSSCE架构分为两层:上层由多个RAID0实现数据备份,保证数据的安全,从而构成RAID0_X架构,根据不同的安全级别来决定X-1后的阵列对第一阵列的备份数量;下层则是通过容错编码实现多磁盘的磁盘容错功能,这样就把常用数据和不常用数据分开放置,实现常用数据在上层访问的目的,而系统的性能和磁盘空间的利用率都得到大幅提高[4].
HPSSCE两层数据组织的设计思路如下:
对于容量分布,RAID0_X上层容量根据具体的磁盘阵列规模决定其容量,加大下层磁盘容量来提高磁盘的利用率,一般来说用得到80%以上.
对于写操作,用户数据都是先保存在RAID0_X的上层结构中,然后根据用户对数据安全级别的设定,把级别较低的数据保存到RAID0_X阵列的下层备份阵列中,这样用户就可以通过修订数据的安全保护级别来实现数据可靠性操作,从而提高系统性能和数据的快速写入能力.
对于读操作,用户首先从RAID0_X上层中查找数据,RAID0_X的下层搜索则是在系统没有命中的情况下进行,由于系统常用数据保存在RAID0_X上层结构中,这就使读操作命中率会比较高,整个存储系统的读性能也随之提高.
对于数据迁移,由于系统的写操作是在RAID0_X上层中进行,而RAID0_X的下层结构是数据的存储空间,因此在数据访问时,上下两层之间必须进行数据迁移.迁移的规则由上下两层的安全级别决定,数据迁移也必须在具有相同的安全级别之间进行,数据迁移的时机选择在RAID0_X中的某部分数据热度较低和系统相对空闲时进行.
3 HPSSCE系统的数据组织原型系统
根据前面对高性能存储系统的数据组织策略的分析,我们设计了一种基于云环境的HPSSCE原型系统,其系统架构如图2所示.
图2 HPSSCE系统架构
整个系统可分为云用户、云服务接口、服务等级协议和存储系统四个部分,其中,存储系统又分为应用服务器和存储服务器两大部分.云用户把自己的服务请求通过服务接口发送给应用程序,文件系统首先接收这种I/O请求,然后把对文件的访问转换为对OSD对象的访问,OSD启动器再把这种请求转换为标准的SCSI命令,由iSCSI启动器和TCP/IP转发给存储服务器.Cache是数据读写命令查询的起始位置,如果命中,就直接返回结果;如果没有命中,就将请求发给RAID0_X模块,由RAID0_X模块处理该请求,没有查询到的请求将在容错编码模块中进行查询,结果迁移到RAID0_X上层中.
后台数据迁移模块负责在RAID0_X存储池和容错编码存储池之间迁移数据,该模块否则把长时间不使用的数据迁移到容错存储池中,节省存储空间,同时,把多次被访问的数据迁移到RAID0_X存储池,以提高访问性能.
4 结语
通过分析,HPSSCE是一种在云环境中具有多盘容错能力的对象存储系统.该系统采用两层存储结构,系统的容错能力强,能满足系统对性能和安全的需求,可以实现在任意多个磁盘故障时进行数据的有效恢复,同时,用户也可根据实际需要对不同需求的数据设置不同的安全级别来保证数据的安全,读写性能优秀,磁盘空间利用率较高.两层之间的动态数据迁移是下一步研究的重点.
参 考 文 献
[1] 吴吉义,傅建庆,平玲娣,谢 琪.一种对等结构的云存储系统研究[J].电子学报,2011(5):1100-1105.
[2] 崔朝国,刘志明,李 婧,陈晓凡.一种基于Hadoop的Scool云存储平台[J].电脑知识与技术,2013(1):405-406.
[3] 王德政,申山宏,周宁宁.云计算环境下的数据存储[J].计算机技术与发展,2011(4):81-84.
[4] 詹 玲,张强善,万继光.一种高可用对象存储系统的数据组织研究研究[J].计算机科学,2009(11):123-126.