- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大数据分布式存储的冗余研究.doc
大数据分布式存储的冗余研究
摘要:随着分布式存储的广泛应用,分布式的冗余机制也越来越受关注。该文使用马尔可夫链模拟系统的集群状态,对典型的HDFS分布式存储的冗余做了详细的研究和分析,并由数学模型计算出系统的失效率。在保证系统数据安全的情况下,得出一个合理的数据备份数目。并且从理论和试验中证明了该设计可以达到预期的效果。
关键词: 数据库;大数据;分布式存储;HDFS
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)19-0001-02
近年来,在大数据的环境下,数据的存储出现了许多新的需求,关于数据的可靠性已经越来越被受到重视,所以数据的冗余已经成为研究的热点。现在的系统都是大规模并且需要时长时间稳定运行的,而信息的数量和可靠性正是现在大多是企业所要面临的问题和挑战,这就需要对系统的数据冗余程度的可靠性进行详细的分析和研究。而冗余的策略中备份数据的数目和系统的可靠性密切相关,如果设置太少,就会发生在突发情况下数据的丢失和不易恢复,如果备份设置太多,就会造成存储成本的提高和资源的利用不合理。将分布式存储系统建立模型,然后分析HDFS的冗余机制,在保证系统的可靠性的前提下,得出一个合理的备份数目。
1 分布式存储系统冗余模型
分布式存储的可靠性是通过数据的冗余和存储节点的协作来保证的。分布式存储系统中的冗余机制可以调高数据的可靠性和系统的高可用性。是把同一数据存储在多不同的节点实现数据的可用性,就算是个别节点的数据丢失,剩余其他的节点也可以重构原有数据,其原理如图1所示。
复制是最简单的数据冗余策略。是将一个文件复制成多个备份然后分别存储到系统其他不同节点,一旦发生数据丢失,只要其中一个节点有备份,就可以完整的得到数据。一般来说,如果文件的复制的备份数目越多,数据的可用性和可靠性就越高。但是往往随着备份的数目的增加,会造成硬盘利用率的下降,由于增加了数据的备份,也间接的调高了读写效率[1]。备份数目对系统的可用性影响很大,如果创建的太少就会发生数据丢失并且会造成数据热点,如果设置的太多则会造成存储成本的提高和磁盘空间的浪费。HDFS复制的默认数据备份数是3份,即在数据写入的时候,系统就会默认的复制成三份,然后根据一个备份机制分别存在不同的节点[2]。关于备份数目的影响因素:可以手动调整备份数目;备份所在节点存储空间不够就会发生备份块的丢失;如果备份的默认数目是3,但是节点数目低于3,就会发生数据快的备份数目不够的情况,一般来说,HDFS的三份备份需要得三个节点。
分布式存储复制冗余的数据的结构与数据修复过程如图所示,图1中文件复制成S个备份,图2则显示即使有S-1个节点的数据失效,也能重构原文件。
所有的数据按照固定大小(默认的是64M或者是128M)划分成block,称为基本块,然后各节点会自动的再进行备份,得到的数据称为备份块。
图3就是HDFS分布式存储系统的一个基本框架,图中绿色的数据块表示基本块,白色的数据块表示备份块,客户端1在读取数据块1的时候,会优先请求节点 1 提供的1的基本块,只有在读取失败后才会委托节点1提取在节点2,3,4中的备份块。客户端2写入文件 2,首先会在节点3写入基本块3,由节点3将基本块复制将备份存储在其他节点上。分布式存储系统包含许多能复制数据的存储节点,如果这些节点都是足够可靠,则整个系统就是可靠的[3]。而使用的HDFS就是默认的有三个备份,但是系统某些节点总会发生意外,出现故障,会从集群中撤离。对于撤离的节点,系统不再能从这些节点获得任何数据,如果只是一台发生故障,还不会影响整个集群,但是同时有多台服务器发生故障[4],就可能发生数据丢失的后果。一般来说,如果我们要对系统升级,一般会滚动重启,要么也是逐个节点数据转移下线,然后升级再上线[5]。
集群的节点一般有三种状态,即在线、离线和死亡,分别用状态1、状态2和状态3表示,用包含这三种状态的马尔可夫链来模拟整个集群。假设单个节点都是从状态 1开始,一般都是状态1和状态2的互相转换,最坏的状态是状态3。状态变换图如图4所示:
节点的在线时间t,离线时间都满足指数分布[6]。
使用马尔可夫链模拟[7]整个系统。假设在某个时间点,总共有n个备份,有k个可用备份,而剩下的n-k个备份是需要修复的。如果此时的系统有k个可用备份块,定义此时的系统状态为k,若k个可用备份中任何一个失效则系统转为状态k-1,如果n-k个待修复备份中任何一个被修复则系统转为状态k+1。
以下的图5模型是一个连续马尔可夫链,此时的系统有n个备份,定义系统节点是小的概率是kλ,定义系统节点修复的概率是(n-k)。状态0为起始态,表明没有任何可用备份,
文档评论(0)