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

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云计算微博,了解更多云信息。

英特尔亚太研发总经理何京翔:数据化时代背后的智慧 云络网络科技CEO Steve Mushero:游戏行业的云运维 腾讯游戏运营管理中心总监刘栖铜:腾讯游戏云的理想与实践 一号专车产品总监曹景辉:LBS应用仍有无限的创新空间 昆仑游戏总裁张益豪:做好中国游戏的海外代理 游族首席运营官陈礼标:重点打造全球化IP 我是怎么利用微信月收入三万以上的! 我的Y Combinator黑客马拉松之感! 最炫HTML5 JavaScript框架Famo.us融资2500万美元 看板先驱David J. Anderson:看板方法拉动互联网时代敏捷变革 《近匠》增强现实开发团队LegendTech:AR技术现已加入15元豪华午餐 微软新技术:简单修改,手机摄像头摇身变3D深度相机 Black Hat USA安全隐患盘点及黑客奥斯卡颁奖 MDCC免费展位报名火热!数量有限,征集进行中 迪游信息科技CEO张晓雷:中日游戏面面观 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉! 微信公众平台开发——如何保证access_token长期有效? 拼的就是速度!超快HTML5 2D渲染引擎Pixi.js 一周消息树:百度“涉黄”遭警告,网盘内容审核的四种方式 微信开发商现状调查:接口限制成主要困扰 行业需求多样是最大难点 小米:海外扩张需谨慎,信息安全或成最大掣肘 AMD FX系荣耀归来 或成大众新宠! 脑洞大开:《80天环游地球》同名游戏诞生记 2014微信开发者大会 最后30个参会名额! 林仕鼎创业产品“云校”正式上线:让教育个性化、多元化、均衡化 14岁少年开发者:伍兴云的智能家居“梦” Xcode 6 Beta 6发布闹乌龙,着重改进Swift语言 当API遇到云平台,开发者面临的新抉择! 《近匠》欧朋流量宝,工具类应用开发之道 《近匠》Bmob:免费无限制的公有云服务 MDCC应用征集最新动态:3D手游成热点、硬件种类丰富 有关上网设主机的问题(双网卡)(在线等) directx8中哪只函数支持播放内存中的声音文件 万分紧急!!!!!!先谢过! 那里又"绝世宝贝"下载? 哪位大哥帮翻译一句话!非常感谢!!!!!!!!!! 请问一个问题:用acdsee如何把点阵图转化成矢量图? cdonts在客户端发送附件,为什么失败? 第一行,第一列错误是什么回事阿? 怎样计算php里的时间差,mysql的时间差? 关于控制台程序 BYTE型怎么 输出到文件(急) 广州IT俱乐部活动讨论 OleContainer1对象如何使打开的文件嵌在OLE里面,而不是在外部打开DOC文档. 寻兼职程序员,开发一个的屏幕取词工具软件 那里有interdev下载?在线等 小弟初学vb.net,现有一题急需帮忙. oracle9客户端连接oracle816:tns 出错: 写文件换行,再按行读出 ASP开发工具的讨论!大家都用什么开发工具!DreamWeaverMX有没人用啊?看起来功能挺强的! 哪位大哥用过toplink连接oracle数据库的,请进 如何获得给定的文件的路径,比如文件"a.txt"发路径? (((SOS)))在WebForm中怎么样用程序隐藏dataGrid由属性生成器生成的按钮列(删除。。。) 高分求帮助 请问一般在VB中,该如何维护ACCESS数据库 asp的Response.Write的问题? 你们难道没遇到过这个问题? 大虾们救命!!!在线等待.................. 在次提醒!女孩不要看! ADODB.Stream 错误 '800a0bbc' 用sql的朋友们进来看看,问题不是很难,帮帮我。谢谢。 寻兼职程序员,开发一个的屏幕取词工具软件 怎么在sdk编程中设置editbox的初始值 大虾们救命!!!在线等待................. 如何能够屏蔽WM_SIZEING的消息. 关于DataGrid的问题 找房子的问题?有办法的帮个忙! sql server 与oracle的数据类型 充分发挥网络优势和自由精神,共同开发维护我们自己的网站 遍历表单中的文本框,为何只出现第一个值 请教如何在VB中调用我在SQL中建好的带参数存储过程? 天天泡程序人生,无心向学,欲罢不能,咋办? 怎样向一个数组里面写入数据,使这些数据满足下面的条件? 请各位看看这个网站www.green-net.com.cn,一家不错的深圳通信公司,现在急缺研发人员(包括软件,测试,用服,市场人员),待遇从优。有 updete数据窗口时新insert的数据出现重复问题?紧急! 关于textbox和回车的问题 高分求一个VB源码分析工具CodeReview? 如何得到注册表的网上学习资料?拜托各位大虾指点。 我想买一个bbs论坛! 寻兼职程序员,开发一个屏幕取词工具软件 XP的IIS怪事特别多,怎么就连不上.mdb呢? cshadow(影子)大侠能不能给我 重发一次上次的没收到 物理在空间运动到最高点时,急 我认为是 0 长石和石英有什么区别 花岗闪长岩与花岗斑岩如何区分在野外如何不借助工具区分二者 物理中有直线运动,平面内的运动,那么物体能不能在空间内做运动 正长石,石英,霞石,钾纳长石的区别? 科技发展利大还是弊大,请列举事例.过了今晚就不要了 当我在高速运动的地铁地铁在高速运动时 在身体不接触任何东西的情况下向上跳 这时候我是不是会飞到后面去 如何在显微镜下区别石英,长石? 关于原电池标准电动势同一电对,两种不同浓度的电解质构成的电池的原电池的标准电动势是多少?是0吗,那么平衡常数Kθ是多少,也是0? 为什么快速运动的物体的相片模糊 (我想知道物理原理)那能不能说由于物体运动太快 光子达到底片的很少 磁体上磁性强弱分布(),()磁性强,()磁性弱 电路有两个并联阻值是R的电阻,电源的内阻也是R,问其中一个电阻的功率是总功率的多少倍. 下列不属于自然资源特征的 A、自然资源的数量是巨大的但又是有限的 B.自然资源的质量在各个地区是有下列不属于自然资源特征的A、自然资源的数量是巨大的但又是有限的 B.自然资源的质 LED灯管电源坏了怎么办?我是做室内照明工程的,接了几个灯管的小工程,发现电源总会坏,而且电源坏了灯体没坏也要一起更换,非常麻烦和浪费钱,有什么办法能解决这个问题吗?我在网上查了有 原电池的电动势与什么有关?为什么?是如何影响的? 如何区分花岗岩与片麻岩与砂岩 LED灯管电源的好坏怎么判定? 原电池电动势的产生 如何区分片麻岩与混合片麻岩? 液晶显示器灯管怎么判定坏了?我的一台三星液晶显示器开一会,然后就黑了.但是电源灯是正常的,去问人说是灯管坏了,于是把显示器拆了,花了80块钱买了4根灯管,但是那个卖的人说,不一定是 西南为何如此干旱阅读答案.知道的进来... 花岗岩、长石石英砂岩和花岗片麻岩有什么共同点和不同点? 有两个电阻R1=10欧,R2=5欧,当它们串联在9V的电源时,把它们并联在同一个电源上,电路总功率是多少? 暖手宝里有一个类似日字形状的东西,这是电极式的暖手宝么我见网上说电极的容易爆炸,电极式的就是摸着是两根柱体,我的摸着就是一个日字形状的东西,也没有固定,网上说电热丝是环形的, 科技发展利大还是弊大?请举几条具体事例 科技发展利大的事例 电池标准电动势Eθ,电池电动势E,标准电极电势之间关系是什么啊能斯特方程里面E=E(标准)-(RT)/(nF)ln([Zn2+]/[Cu2+]),所求得的E是哪个电动势?电池标准电动势Eθ还是电池电动势E? 将4g硫粉与7.56g铁粉混合加热使之充分反应后,使反应后的固体物质与足量的稀盐酸反应.(1)标准状况下可以生成气体多少升?(2)实际所得气体明显少于上述所求体积的主要原因是多少?(3 石英砂岩与长石石英砂岩的区别及含量各是多少? 关于科技发展利大的例子 将8.4g的铁粉与3.2g硫粉均匀混合,在敞口事关中加热,充分反应后,待残物冷却后加入盐酸那么理论上可收集到标准状况下的气体为多少? 光照到物质上,其强弱跟物体的温度没有关系.是对的还是错的 科技发展利大的例子 将4克硫粉和10g铁粉混合加热,使其充分反应,问:(1)可生成硫化亚铁多少克?往反应的混合物中加足量盐酸,可生成气体多少毫升?这题中回答第二问还有一题,如何除去二氧化硫中的二氧化碳, 关于曲线运动,为什么质点做S型曲线运动时在S的中间点怎么没加速度 石英岩和石英斑岩的区别在哪里? 中东的 匮乏,其主要原因是中东地区 、 、 . 质点的切向加速度,法向加速度及加速度哪些为零哪些不为零?匀速直线,曲线运动,变速直线,曲线运动 水沫子与玉石英岩的区别,石英岩主要成分是什么?,石英岩有一连串的气泡么? 中东地区最缺乏什么 中东地区缺水原因 闪长斑岩如何野外编录描述?全风化与强风化 为什么鱼能在水里游来游去 1w正白光LED大功率LED灯...输入电压3.2-3.6v.我现在要用12V电源供电...1w正白光LED大功率LED灯...输入电压3.2-3.6v.我现在要用12V电源供电,要串联多少个1w正白光LED大功率LED灯?才能稳定在12V的电源下 辉绿玢岩和煌斑岩的区别? 为什么鱼在水里一直游来游去感觉好像很不安 中东地区的国家为什么缺水,比如阿拉伯国家他们为什么那么缺水,他们受什么气候的影响呢! 电视上说的会爆炸的暖手宝是什么样的暖手宝 什么类型的 鱼儿在水里游来游去把句子写生动 中东地区最缺水的地区是?哪一个地形区? 请问,花岗质碎斑岩属于什么岩类?请问,花岗质碎斑岩属于什么岩类,成分、结构、构造、成因是什么?那么花岗斑岩、花岗质斑岩、碎斑岩呢?有什么区别? 帮我出十道《海底两万里》的名著阅读题 LED模组 串联贴3个2835灯珠 电压3.6V,电流60mA.使用12V的电源.改用多大的电阻?一个灯珠一个电阻 花岗岩和斑岩,哪种更硬? 《海底两万里》名著阅读题人教版..急1、《海底两万里》是法国生物学家凡尔纳的三部曲之一,他的另两部作品是、().  2、《海底两万里》主要讲述()号潜艇的故事.凡尔纳的小说之所 12V直流电源上用1个3.2V,350MA的LED怎么用?12V直流电源上用1个3.2V,350MA的LED电源电路图样接? 请问:花岗斑岩中长石斑晶长轴呈定向排列的可能原因有哪些呀? 光的强弱和什么有关?我们视觉感觉到的强光弱光,是光的什么性质决定的呢? 50W电灯和100W电灯所发出的光子本质区别? 使用12V电源,3个3W的LED灯珠串联,每个灯珠电压3.5v左右,电流700HA、要用几W几欧电阻、多谢! 花岗斑岩属于岩浆岩吗
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘