说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

XOR的黄色大象:Erasure Code为Hadoop节省数据恢复带宽

HTML文档下载 WORD文档下载 PDF文档下载
如何在尽可能少的成本下,保证数据安全,或在数据丢失后实现快速恢复?这的确是个不小的挑战。在Azure和Facebook中都使用了Erasure Code,这是一种替代Hadoop三副本和传统Reed Solomon Code的高效算法。

来自南加州大学和Facebook的7名作者共同完成了论文《 XORing Elephants: Novel Erasure Code for Big Data》。论文作者开发了Erasure Code家族的新成员——Locally Repairable Codes(即本地副本存储,以下简称LRC,它基于XOR。),明显减少修复数据时的I/O和网络流量。他们将这些编码应用在新的Hadoop组件中,并称之为 HDFS–Xorbas,并在Amazon AWS上和Facebook内部做了测试。

从Reed Solomon code到LRC

大约十年前,业界开始采用 Reed Solomon code对数据分发两份或三份,替代传统的RAID5或RAID6。由于采用了廉价的磁盘替代昂贵的存储阵列,所以这种方法非常经济。Reed Solomon code和XOR都是Erasure Code的分支。其中,XOR只允许丢失一块数据,而Reed Solomon code可以容忍丢失多块数据。

但标准的Reed Solomon code并不能很好的解决超大规模Hadoop负载。因为数据修复的时间和花费(主要为I/O和网络流量)成本较高。同时,在一段时间内,指数级增长的数据超出了互联网公司的基础设施能力。三副本有时候也不能满足更高的可靠性需求。

现在,这些互联网巨头设计的存储系统标准为:即便四个存储对象同时失效(这些对象包括磁盘、服务器、节点,甚至整个数据中心),也不能失去任何数据(目前Reed Solomon code是采用(10,4)策略,即10个数据块生成4个校验文件,可以容忍丢失4块数据。)。从这篇论文来看,Facebook采用Erasure Code方式后,相对于Reed Solomon code只需要60%的I/O和网络流量

论文作者分析了Facebook的Hadoop集群中的3000个节点,涉及45PB数据。这些数据平均每天有22个节点失效,有些时候一天的失效节点超过100个,见图1。


图1:日节点失效图

Hadoop集群的网络经常被被动占用,几个活跃的磁盘就可以占满1Gb带宽,修复失效数据产生的拥堵是不可能忽略不计的。一个理想的存储方案不仅要保证存储效率,还要减少修复数据所需的流量

LRC测试结果的主要指标:

  • 磁盘I/O和网络流量比Reed Solomon code减少一半;
  • LRC比Reed Solomon code多占用14%的存储空间;
  • 修复时间大幅缩短;
  • 更强的可靠性;
  • 对网络流量需求降低将实现适当的数据物理分布,甚至跨数据中心分布

表1:LRC与Reed Solomon code、传统Hadoop三副本策略对比。LRC比Reed Solomon code的无故障运行时间提升两个数量级,修复流量减少一半。

包括 HDFS-3544在内,业界正在不断追求高可靠下对网络带宽的节省方法,这对于互联网巨头和云计算基础架构服务商而言的意义不言而喻。由南加州大学、韦恩州立大学和微软共同参与的《 Simple Regenerating Codes》也在朝这个方向努力。值得注意的是,前文所说的LRC、HDFS-3544和《Simple Regenerating Codes》都是通过增加本地数据,来减少修复数据需要的网络流量

在 ATC2012上,微软Azure工程师Cheng Huang和他的同事分享了《 Erasure Coding in Windows Azure Storage》。Cheng Huang表示,微软在Azure上也使用了LRC技术。 这里可以看到Cheng Huang此次分享视频。另外,Cheng Huang也参与了《Simple Regenerating Codes》。

在国内,Azure在世纪互联北京、上海的两个数据中心部署了服务。在接受CSDN采访时,微软云计算与服务器事业部总经理严治庆 透露:

Windwos Azure上的数据要存放6份,即使是虚机的本地存储也不例外。在中国,没有一家公有云计算的公司愿意去承诺三个9这样的 SLA,但微软会承诺3个9或更高。

关于HDFS–Xorbas、LRC和GFS2

目前,HDFS–Xorbas基于Facebook的HDFS-RAID版Hadoop( GitHub入口、 Apache入口)修改而来,并在 GitHub上托管代码。

HDFS–Xorbas项目由 Maheswaran Sathiamoorthy维护,他是一名南加州大学谢明电子工程部的候选教授。咨询公司TechnoQWAN创始人Robin Harris在 文章中表示:论文中的几名作者已经创立了公司。

论文作者之一的 Dhruba Borthakur是Facebook的Hadoop工程师,他在2009年的一篇 博客中对Erasure Code进行了介绍:

我知道使用Erasure Code的想法来自 DiskReduce,这是一帮来自卡内基梅隆大学的家伙搞出来的。于是我借用了这个想法,并在Apache Hadoop上增加了这一功能 HDFS-503。

Dhruba强调,HDFS Erasure Code只是在HDFS之上的代码,并没有对HDFS内部代码进行修改。这样做的原因是HDFS代码已经十分复杂,不想自找麻烦把它弄的更复杂。

Dhruba还在Hadoop Summit 2012中的一个关于HDFS的 研讨会上谈到了HDFS-RAID在Facebook内部运行的情况。数据工程师 梁堰波在 博客中分享了Dhruba的观点:

存放在HDFS上的数据分为热数据和冷数据两种。热数据一般是存放三备份,因为这些数据经常会被用到,所以多备份除了高效冗余外还能起到负载均衡的作用。对于冷数据,并非一定要在HDFS里面保存3个副本。Dhruba介绍了两种不同的RAID方案,对于不太冷的数据块A/B/C,通过XOR方式产生校验数据块,原来的数据块A/B/C各保留2个副本,校验数据块也有两个副本。这样,副本系数就从3减小到了2.6(理论值)。

对于很冷的数据,方案更加激进,由10个数据块通过Reed Solomon code生成4个校验文件,对于原来的数据块,只保留一个副本,校验数据块有2份副本。这样,副本系数就降到了1.2。

梁堰波在 博客分享了Dhruba介绍的分布式RAID文件系统实现原理,在2009年Dhruba的博客中也对此进行了介绍,可以分别查阅。

当然,Hadoop不过是GFS的开源实现,那么Google是如何解决数据修复带来的高成本呢?在Google GFS2(Colossus)中使用了Reed Solomon code来复制。在Google去年发表的《 Spanner: Google's Globally-Distributed Database》( CSDN摘译稿)中透露:

Reed Solomon code可以将原先的3副本减小到1.5副本,提高写入性能,降低延迟。

但是关于GFS2的信息,Google透露非常有限。Google首席工程师Andrew Fikes在Faculty Summit 2010会议上分享了《 Google的存储架构挑战》,他谈到了Google为什么使用Reed Solomon  code,并列举了以下理由:

  • 成本。特别是跨集群的数据拷贝。
  • 提升平均无故障时间(MTTF)。
  • 更灵活的成本控制和可用性选择。

参考资料:

  • 王锐坚的博客
  • EMC中国研究院 颜开的博客
  • Highscalability
  • StorageMojo

(文/ 包研  审校/仲浩) 

欢迎关注 @CSDN云计算微博,了解更多云信息。

拥抱Spark,机遇无限——Spark Summit 2013精彩回顾 1月10日:改变世界的iPhone七岁了,你是传奇! 同洲电子推出首款手机操作系统960OS 免费授权使用 如何在Windows 8.1的IE11中打开同步选项卡? 25年老对手评价微软:换CEO可行,但是太迟了 【PPT集萃】十位一线专家分享Spark现状与未来(三) 万元奖品等你拿!2014创客118新年大Party! Firefox OS的2013回顾和2014展望 Strom8 CEO:搞好手游开发,合伙人很重要 2013年Q4全球PC出货量同比下滑6.9% 已连续下滑七个季度 一周消息树:2013年十大产品、图书、公司盘点 专访Wunderlist主设计师Jan Martin:永远不要盲目跟风流行趋势 研发周报:超实用的JavaScript技巧及最佳实践 2013最吃香的技能:Java称霸、Android势头正猛 移动周报:最火原型设计工具盘点 “京东电商云”起航,零售企业及品牌商是重点 教育乃立国之本:教育类开源项目大汇集 Hugo Barra首度谈离开谷歌后在中国工作的感受 对中国赞不绝口 母婴行业最早试水者 优谈宝宝借助轻应用全面布局移动产品线 腾讯云平台部总经理纪顺友:微云将彻底迈过文件传输的门槛 豌豆“荚”油!B轮融资1.2亿美元的豌豆荚 2013年终盘点:10款最精巧的硬件开发板 SquareWear:可替代Lilypad Arduino的开发板 开放数据:2014年最热门的竞争领域 IE11虚拟机免费面向广大开发者 九城搭建的一个以Hadoop为基础的大数据平台 Windows 8复杂性的代价到底有多大? 在发布前,第一代iPhone其实并不完善 市场占有率调查:iOS 7秒杀Android 4.4 AWS会赢、OpenStack会消亡、Connected Cars可防僵尸攻击 谷歌以32亿美金收购iPod之父的创业公司Nest 物联网时代来临 我为中国队骄傲,因为他们很拼搏,输球未输志!没有完整看完比赛的那帮家伙别瞎叫!!! 各位pb高手,求教如何用powerbuilder做绘图程序? ChinaDNS不能访问了。 大家来赌 中国——巴西 的结果(我的预测 0:10) 我的asp为什么不能发送EMAIL? 我太弱智了,居然希望能赢!!!郁闷,散100分 动态sql语句,用execute immediate 执行,为什么出错? 马上有韩国和日本的比赛 如何得到一个存储过程的的参数 请问对XP的更新也就是Windows Update,怎样才能不基于安装历史来更新(比如重装了操作系统但注册表还是用原来的)?就是说怎样再从头全部 唉,,为2:0放送200分........ ASP-interdev的问题 怎樣獲得上一頁的地址 在Datagrid中怎样实现RadioButton的单顶选定 项目协助 请问汇编支持递归吗? 编译环境是masm32 怎样将菜单放在TCoolBar上? 如何有效地调试程序?debug?? t d 中国队输了,用50分泄愤 弱智中国队 观中哥之战。 请问:Access2000中什么函数等同于SQL Server中的SubString? 各位水友请对中国队今天的表现发表意见。。。。 中国队第一场(对哥斯达黎加)输0:2,灌水啊~~~~ 各位水友来发表对中国对的看法。。。。 中国队本界比赛肯定不会进球了 MDI中,子窗口之间的切换如何响应,包括第一次打开或新建?立马结贴。 中国队完败,放分…………他妈的,输的一点理由都没有!! 中国队没有希望了,心情不好! 散分! 中国队意志力太差!!! 建模问题:pb源程序用什么工具转换成模型、状态图或是类结构? 救救我,如何同时打印两个数据集 日期型的字段如何附值? 中国队输了,估计很难翻身了。。。。不爽中。。。。。散分!!!!!!!!! 请问用VB开发。DLL,调试该怎么调试啊? 为什么不能编译成DLL了???? 我国损失多少钱啊 csdn上的高手请来开一下 帮帮我~~~! 各位大虾,求救!我想从"July 21 2002 12:30AM"这种时间格式中取出年(就是2002),不知道php中有没有这种直接取年的功能?需要的是能直 建模问题:pb源程序用什么工具转换成模型、状态图或是类结构? 巴西后防是铜墙铁壁???战士们,进一个吧!以慰国人!~! Win2000 开机时出现xmnt2000 program not found...的提示信息。是怎么回事? 如何实现类似联众的游戏大厅的游戏模块下载后,安装后能自动挂上大厅?? sql plus启动问题(ora-01034,27101) 建模问题:pb源程序用什么工具转换成模型、状态图或是类结构? 初学者的问题,在windows2000命令提示符下无法执行lgdt指令? 我想说我是他大爷 帮帮俺吧!!! 中国队输了,真他妈的郁闷。中国队因该发挥的更好 请大家给我推荐一些关天加密解密算法的书,好吗?谢谢 弱电解质的电离平衡常数的定义:在一定条件下电离达到平衡时,溶液中电离所生成的各种离子浓度以其在化学方程式中的计量为幂的乘积,跟溶液中未电离分子的浓度以其在化学方程式中的 Al(OH)3+3HCl=AlCl3+3H2O中,Al(OH)3是溶液吗?HCl是稀是浓?说的时候,是说氢氧化铝胶体与稀盐酸反应,还是说氢氧化铝固体与稀盐酸反应? 毛细血管都是分布在小动脉和小静脉之间吗急如果在15分钟之内回答此问题者,我可以提高对他的悬赏分 关于论说人的灵魂生活精神世界的文字 HCL是否能鉴别NA2CO3和NA2SO3答案说可以的 我觉得不妥 小静脉与小静脉之间连通毛细血管吗 生活中什么人具有小草精神的人 50字左右 人一死就是世界都不在了我们存在在这个世界上存在思想意识死后思想意识也不存在了 这不是莫大的痛苦吗?死亡后一切物质 思想都没有了 死亡又是不可避免的 每想到这里心里就有一种莫 升华凝华的运用 这个世界上的第一个生物是什么? 世界就是物质的世界,所以别谈什么精神生活啦!混个人模狗样的就行了,有钱才是爷!什么纯洁,浪漫,尊严.没钱都玩儿蛋去!百度也你吗抽了! 人死后去哪里?意识还存在吗? 9.75克锌与( )摩尔的盐酸刚好反应,放出-()摩尔的氢气,溶液中有-()摩尔的锌离子和-()摩尔氯离子距离计算过程 【推荐】什么是人的精神生活? 人为什么会死,死后是不是会有另一个世界 两根电阻丝的阻值R1>R2,现在将R1R2分别接在电压为U的电源上,消耗功率W1和W2,再将R1R2分别串联和并联后接到电压为U的电源上,消耗功率为W3和W4,则四个功率的大小关系正确的是A W1>W2>W3>W4B W 欧阳修的丰乐亭记1.为什么要以“丰乐亭”来命名这个亭子?2.作者在《丰乐亭记》中表现出了与《醉翁亭记》一样的政治理想,就是————(不超过5个字) 人死了意识海还会存在吗?是否还存在那些精神世界呢? 13.14 血液经过肾小球后,流出的是____(动脉血,静脉血) 9、衡量心脏泵血功能的主要指标是( ) A、心排出量 B、中心静脉压 C、心率 D、动脉血压 1.下列关于光反射的说法中,错误的是()a.镜面反射的光不一定是平行光 b.镜面反射遵守反射定律c.电影银幕对光的反射式镜面反射 d.白纸的表面对光的反射是漫反射2.对于光路可逆性原理,下 血液流经肾小球后,出球小动脉比入球小动脉含量减少的是? 说说你们对死后人的意识还存在嘛?会不会有另一个世界 “al与hcl反应是否放热” 在正常情况下,血液流经肾小球时,出球小动脉中的蛋白质浓度比入球小动脉中蛋白质的浓度高,为什么? 人的心脏每分钟大约要泵多少毫升的血?患者信息:男 62岁 河南 郑州 将进酒(古诗) 溺水死亡属于非正常死亡吗?是否应该到派出所开死亡证明?死亡证明到派出所开?还是到单位开? 入球小动脉中流的是什么血,出球小动脉流的是什么血assassin1031,你的答案似乎与别人不一样? 需要配置浓度为3.3摩尔每升的氯化钾,需要多少克的氯化钾 溺水多久会死亡 入球小动脉、出球小动脉、重吸收作用后的血管是什么血?我觉得都是动脉血, 3.3摩尔的氯化钾怎么配 举二十个生活中升华的现象 入球小动脉和出球小动脉都流动脉血吗如题.为什么啊 现将足量的氯化银分别放入下列物质中:1,10毫升0、1摩尔每升氯化钾溶液 2,30毫升0、02摩尔每升氯化钙溶3,40毫升0、03摩尔每升氯化氢溶液 4,10毫升蒸馏水 5,50毫升0、05摩尔每升硝酸银溶液.氯 求让世界充满爱作文,500字左右,主要那些生活比较苦的人 发现有人溺水后,再给他做人工呼吸前,为什么? 最古老的现今活着的生物是什么生物? 以(精神生活的魅力)为题写一篇不少于600字的作文! 在AL3+ →AL(OH)3 → ALO2- →(X)→ AL3+的系列变化中,判断X为——?在AL3+ →AL(OH)3 → ALO2- →(X)→ AL3+的系列变化中,判断X为——?A:HCL B :NAOH C :AL(OH)D:CO2 当血液流经肾小管后,血液还是动脉血吗? 《丰乐亭记》欧阳修为什么快乐 不用任何试剂鉴别HCL溶液和Na2CO3溶液任取一未知溶液滴入另一未知溶液中,若立即有气泡放出,则滴加的试剂为碳酸钠溶液.若开始时并无气泡冒出,滴入一定量后,才有气泡冒出,则滴加的时HCL溶 为什么从肾小球毛细血管网流出的是动脉血为什么从臀大肌处的毛细血管网流出的的血液是静脉血 肾动脉,入球小动脉,出球小动脉中流动的是( )说明肾小球中的周围组织未从其内血液中吸收( ) 心泵防内漏是靠什么起作用的 下列物质中 两种物质都能和盐酸反应,且相互之间也能反应的是 A氢氧化钙 碳酸钠 B 氢氧化钠 硫酸下列物质中 两种物质都能和盐酸反应,且相互之间也能反应的是A氢氧化钙 碳酸钠B 氢氧化钠 肾小球的出球小动脉与入球小动脉的血液中的大分子物质浓度相比,浓度为什么增加?肾小球的过滤作用,把大分子蛋白质过滤回来了,所以出球小动脉大分子物质浓度不应该减小吗? 三国志 武帝纪一 的全文译文是陈寿版裴松注的《三国志》里的 魏一 武帝纪一的译文 游泳过程中出现溺水的情况怎么抢救? Fe(OH)2和Fe(OH)3能与酸反应吗? 实验观察中,判断小动脉,小静脉和毛细血管这三类血管的依据是什么 关于溺水的急救知识 、写出Fe(OH)3、Co(OH)3与HCl反应的方程式,说明它们的不同点及造成这一不同的原因 有关静脉与动脉,毛细血管的所有知识谢 溺水急救知识1 溺水后,发生心搏骤停,判断有无血液循环的最好方法是什么?2 如果溺水者既无呼吸也没脉搏,则需在人工呼吸的基础上进行胸外按压.按压频率为每分钟几次?按压与人工呼吸的比 Fe与CO反应吗? 小动脉、小静脉和毛细血管有何不同如题,毛细血管是连接最小的动脉和最小的静脉之间的血管(苏教版七年级生物下册),但小动脉和小静脉与毛细血管之间不同在什么地方?希望给与简单正
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘