大数据存储技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据存储技术研究
1.背景介绍
大数据已成为当前社会各界关注的焦点。从一般意义上讲,大数据是指无法在可容忍的时间内,用现有信息技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。近年来,大数据的飙升主要来自人们的日常生活,特别是互联网公司的服务。据著名的国际数据公司(IDC)的统计,2011年全球被创建和复制的数据总量为1.8ZB(1ZB=1021B),其中75%来自于个人(主要是图片、视频和音乐),远远超过人类有史以来所有印刷材料的数据总量(200PB,1PB=1015B)。
然而,与大数据计算相关的基础研究,诸如大数据的感知与表示、组织与存储、计算架构与体系、模式发现与效应分析等,目前还没有成体系的理论成果。对于大数据计算体系的研究,一方面,需要关注大数据如何存储,提供一种高效的数据存储平台;另一方面,为了应对快速并高效可靠地处理大数据的挑战,需要建立大数据的计算模式以及相关的优化机制。2.相关工作
为了应对数据处理的压力,过去十年间在数据处理技术领域有了很多的创新和发展。除了面向高并发、短事务的OLTP内存数据库外(Altibase,Timesten),其他的技术创新和产品都是面向数据分析的,而且是大规模数据分析的,也可以说是大数据分析的。
在这些面向数据分析的创新和产品中,除了基于Hadoop环境下的各种NoSQL外,还有一类是基于Shared Nothing架构的面向结构化数据分析的新型数据库产品(可以叫做NewSQL),如:Greenplum(EMC收购),Vertica(HP 收购),Asterdata(TD 收购),以及南大通用在国内开发的GBase 8a MPP Cluster等。目前可以看到的类似开源和商用产品达到几十个,而且还有新的产品不断涌出。一个有趣的现象是这些新的数据库厂商多数都还没有10年历史,而且发展好的基本都被收购了。收购这些新型数据库厂商的公司,比如EMC、HP,都希望通过收购新技术和产品进入大数据处理市场,是新的玩家。SAP除了收购Sybase外,自己开发了一款叫HANA的新产品,这是一款基于内存、面向数据分析的内存数据库产品。
这类新的分析型数据库产品的共性主要是:
架构基于大规模分布式计算(MPP);硬件基于X86 PC 服务器;存储基于服务器自带的本地硬盘;操作系统主要是Linux;拥有极高的横向扩展能力(scale out)和内在的故障容错能力和数据高可用保障机制;能大大降低每TB数据的处理成本,为“大数据”处理提供技术和性价比支撑。
总的来看,数据处理技术进入了一个新的创新和发展高潮,机会很多。这里的主要原因是一直沿用了30年的传统数据库技术遇到了技术瓶颈,而市场和用户的需求在推动着技术的创新,并为此创造了很多机会。在大数据面前,越来越多的用户愿意尝试新技术和新产品,不那么保守了,因为大家开始清晰地看到传统技术的瓶颈,选择新的技术才有可能解决他们面临的新问题。
3.核心技术
1.大数据重复数据删除技术
在大数据时代,数据的体量和增长速度大大超过了以往,其中重复数据也在不断增大。国际数据公司通过研究发现在数字世界中有近75%的数据是重复的,企业战略集团(Enterprise Strategy Group, ESG)指出在备份和归档存储系统中数据的冗余度超过90 %。因此,高效的重复数据删除技术(Cluster Deduplica-tion)成为缩减数据占用空间并降低成本的关键。然而,由于这项技术是计算密集型和读写(I/O)密集型的技术,特别是重复删除运算相当消耗运算资源,要进行大量的读写处理,因此现有系统在存取性能方面还存在很多问题需要解决。在大数据存储环境中,将集群重复数据删除技术有效地融入分布式集群存储架构中,可使存储系统在数据存储过程中对重复冗余数据进行在线去重,并在存储性能、存储效率以及去重率等方面得到优化。
2.具有重复数据删除功能的分布式存储架构
通过设计并实现具有重复数据删除功能的分布式文件系统,可使其具备高去重率、高可扩展性、高吞吐率等特征。分布式重复数据删除系统的架构包括客户端、元数据服务器和数据服务器三部分(见图1)。客户端主要提供集群重复数据删除系统对外的交互接口,并
在所提供的文件操作接口中实现基于重复数据删除的存储逻辑和对数据的预处理,如数据块的划分与“指纹”的提取。元数据服务器实现了对元数据存储、集群的管理与维护,包
括管理在数据存储过程中整个会话,保存与管理分布式文件系统中的元数据,管理和维护系统存储状况,指导数据路由并满足系统存储的负载均衡。
数据服务器主要负责数据去重引擎以及数据的存储和管理。数据服务器通过网络与客户端进行通信,响应客户端的读写请求,
通过网络与元数据服务器异步更新数据服务器的数据接收状况以及节点存储状况。当接收到客户端的写请求时,数据服务器接收数据并在节点内进行冗余数据的去重。
网络通信模块可提供一种能够在客户端与分布式文件系统各节点间进行通信的有效机制,通过远程过程调用交换元数据和少量控制信息,通过流套接口(stream socket)网络传输大量的数据与指纹信息。
3.数据路由策略
基于单节点内的局部去重,即在一个节点内对数据进行去重,确保存储环境中系统的整体性能和存储带宽。需要强调的是,数据的存储位置是关键,原因在于数据路由位置直接影响数据的去重率;根据数据的相似性以及数据局部性的相关理论,基于超块的高效局部相似路由算法可确保全局数据去重的可靠性。
在数据路由粒度方面,超块(SuperBlock)是对上传数据通过分块算法,如可变分块(Content-Defined Chunk-ing,CDC)、固定分块(Fixed-Sized Partition,FSP),进行分块后(见图2),由连续的几个小分块拼接成大的局部块。文件由连续的超块组成,并将超块作为数据路由的单位,发送到选定的节点中进行节点内的冗余数据去重。在数据去重方面,数据相似是指节点中已有超块与新来的超块之间的相似度,Jaccard距离可用于衡量两个超块的相似度。通过有状态的局部相似路由算法,实现数据的路由。
4.大数据编码优化技术
基于纠删码的数据冗余技术是不同于多副本技术的另外一种容灾策略,其基本思想是:通过纠删码算法对k个原始数据块进行数据编码,得到m个纠删码块,并将这k + m个数据块存到不同的数据存储节点中,以此建立容灾机制。当k + m个元素中任意的不多于m个元素出错(包括数据和冗余出错)时,均可通过对应的重构算法恢复出原来的k块数据。这种方法具有冗余度低、磁盘利用率高等特点。