- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于纠删码云存储数据可靠性保障
基于纠删码云存储数据可靠性保障
摘要摘要:云存储系统由于其系统复杂性和业务特征,使数据可靠性受到严重挑战。针对云计算环境下带数据去重的云存储系统的内部数据保护问题,提出一种基于纠删码的数据可靠性保障机制,采用多种纠删编码算法及配置方法对去重数据块进行编码保护。该机制具有良好的综合性能与可扩展性。
关键词关键词:云存储;数据可靠性;纠删码;数据去重
DOIDOI:10.11907/rjdk.1431041
中图分类号:TP309.2
文献标识码:A文章编号文章编号2015)004013702
0引言
云存储是云计算服务商提供的一种IaaS模式的基础服务,其通过硬件集群、高速内联网络以及分布式文件系统等资源和技术,将大量设备中的存储资源整合成一个整体,共同对外提供基于网络的数据存取服务。它的业务特点是向外界提供统一、透明的数据操作接口,将所有的分布式存储细节都封装在系统内部[1]。
目前多数云存储系统(网盘、云空间等)为控制系统规模,降低系统建设和管理成本,均采用了数据去重技术来压缩数据量。鉴于其它种类云存储系统的数据保护要求较为简单,现有机制已经能够很好地满足需要。因此,本文针对这种带数据去重的云存储系统,对如何保障其内部数据可靠性进行了研究。
针对去重系统的数据可靠性保障,传统做法包括使用更加可靠的底层存储设施(如RAID阵列),以及对重要的数据块保留更多副本[2]。前者部署方便,对上层透明,但是容错能力差、恢复过程慢;后者容错能力强、恢复过程快,但空间占用多、带宽消耗量大、成本高。因此,这两种技术仅对小规模存储系统以及数据量不太大的核心业务较为实用。对于云存储这种大规模分布式存储系统而言,由于其节点数量和数据规模极其庞大,如果每个节点都采用高端设备,或者系统整体采用复制冗余机制,均会导致整体成本的极大增长,使建设和使用这类系统变得难以承受,从而失去实用性[3]。相对于各类本地存储系统,云存储系统内部的数据重要性高但活跃度较低,因此有条件在系统内使用较为复杂的纠删码来保护数据,以便在存储成本和可靠性间达到更好的平衡。为此,本文采用多种不同的纠删码算法及配置方法对去重数据块进行静态编码,并提出了基于纠删码的云存储系统数据可靠性保障机制(Reliability Guarantee Mechanism for Deduplication Cloud Storage,RGMDCS)。
1纠删码选取
1.1ReedSolomon编码
ReedSolomon编码(下称RS编码)是目前使用最广泛的纠删码之一。RS编码同时具有MDS属性和系统属性,因此它编码生成的n个编码数据片段包含m个原始数据片段以及n-m个校验数据片段,其中任意片段丢失后均可使用任意m个存留的片段来恢复。
RS编码的编码过程可由式(1)描述:
1.2Tornado编码
Tornado编码不具有MDS属性,但具有系统属性。Tornado编码的编解码操作计算开销较小,而且用到的节点数目也较少。因此,Tornado编码比传统的MDS纠删码具有更快的运算速度,其数据修复过程需要更小的数据传输量,非常适合大规模的分布式存储系统。
2静态密码策略
2.1设计方案
考虑到云存储系统面对的数据具有复杂性和多样性,RGMDCS系统采用了Rabin Fingerprinting算法对数据进行变长分块。然而,相关研究表明,若使用变长分块算法对文件进行分块去重,由于数据块大小不同且都比较小(通常为几十字节到几百KB),在存储节点中将数据块直接存储会大大增加设备中的磁盘碎片,导致其访问效率低下,造成系统性能产生较大程度下降[4]。针对这一矛盾,RGMDCS将多个变长的数据包打包成较大的定长对象(Object,一般为几MB)进行存储和管理,定长对象的大小根据不同的应用场景和相关实践来配置。数据块(Chunk)是存储节点的最小数据访问单元,通过对应的数据块标识符(Chunk ID)进行访问。根据数据块的不同大小,各个定长对象包含不同数量的数据块。当从服务接口接收到新的数据块时,存储节点先将积攒的变长数据块打包成固定大小的对象。如果定长对象当前所剩空间不够放置后续数据块,则剩余空间填0(Padding),后续数据块新开一个对象继续放置。随后存储节点对这些对象进行分组并用纠删编码算法对分组进行编码,生成编码对象组(包含原始对象和校验对象),最后将编码对象组内的所有对象分布到不同的节点上存储。
2.2系统业务流程
RGMDCS系统的服务接口接收到客户提交的待存文件后,其分块逻辑则会使用Rabin Fingerprinting算法将文件切割成互不重叠的变长数据块,再使用
文档评论(0)