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

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

Delphi4的Winsocket编程 Delphi4开发WEBMAIL程序 Delphi编写网络程序的安全措施 DELPHI 和 THE INTERNET Delphi开发Web Server程序如何返回图像 Delphi开发Web Server程序响应用户的输入 DELPHI与INTERNET(二) DELPHI与INTERNET(一) Delphi中串行通信的实现 Email 服务器的简单实现-Delphi资料 Internet编程技巧-Delphi资料 SMTP组件的使用方法-Delphi资料 Web Server程序开发环境的建立-Delphi资料 WEB数据库的开发-Delphi资料 Win32 行程通讯的观念与技术-Delphi资料 编程发送E-mail-Delphi资料 调用那个函数得到本机的IP-Delphi资料 动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 任何动态改变/添加网络设置中的 TCP/IP 的 DNS 地址-Delphi资料 如何在程序中动态取得Win98的网络邻居中的工作组及计算机名-Delphi资料 动态设置DNS地址-Delphi资料 读取IE收藏夹内网址的信息-Delphi资料 改网络计算机名-Delphi资料 关于WEB应用程序的打印组件开发初探-Delphi资料 基于TELNET协议的DELPHI程序与LINUX主机通信的实现 监视POP3信箱-Delphi资料 开发WEBMAIL程序-Delphi资料 开发响应用户输入的数据库web Server-Delphi资料 利用Delphi编程发送E-mail 利用Delphi编写Socket通信程序 利用Delphi开发网络数据库应用 使用对象事件的问题。很简单的。 "仅在html帮助中有此项功能"的问题是怎么回事 援助http://expert.csdn.net/Expert/topic/2254/2254118.xml?temp=.6400873 [请教]PB+SQL Server 2000 开发,选装哪些组件最好? 中级程序员的问题 在Tcombobox中如何列出程序所连Sql数据库中所有表 关于打印机使用情况的监控问题 100分 关于delphi +oracle的查询的问题! 高手请进! 请问如何在DW中添加全局变量,并且在DW中显示改变量的值? 请教struts-config.XML参数的涵义 初学者一个水晶报表的简单问题 关于ROSE的问题,高手请进 想给EXCHANGE装个防邮件病毒软件,除了NORTON,还有什么好的软件 请教一个RMI问题! 谁有比较快的许魏的《在别处》和《那一年》的下载地址? asp.net里怎么把光标定位到一个文本框上? 较好的XML编辑器是什么?哪有下载? J2ME的困惑,来着有分! strrchr test 我动态做了个菜单,怎么得到菜单的名称? 两个问题 为什么singleton双重检查成例对Java 语言编译器不成立? 如何访问另一窗体的控件而不实例化窗体? 请教如何将CString类型转换成float类型? 请教:为什么我发的帖子我自己看不到呀? 评书大全~~~~ 登陆服务器 模态窗口中如何后退? exchange 5.5 问题?求救了,急啊 请教一个sql语句查询问题??????(多表关连) 保留贴:屁眼儿当头 请教一个写文件的问题 关于PatIndex 请教:有关分页的问题 Web Services汉字参数传递的问题 如何自动发送email? asp+sql存储过程变量赋值的问题 急! 请问在 MS-SQL Server下 如何 把getdate() 转换成为yyyy-mm-dd 恭喜两位新MVP!其他人继续努力,不经历风雨那见彩虹! 请问谁知道在哪里下在一个vss6.0?急着用!下载完成以后才让吃午饭..... 拜托了 我想做一种像身份牌的名片,我做了一个,但总觉得不真实,请高手改改 读取cookies的奇怪问题 请给出一个判断email输入是否合法的例子。 请教COM+编程问题 求用weblogic做虚拟目录,可以解析多个工程的方案 关于CHM的问题 散分!!!! 今天早上做公车丢手机,郁闷呀. 如何使一字符串变量进行计算? 高谈阔论打一书名 盒中有12个球,其中9个新球,第一次比赛从中任取3个,用后放回盒中,第二次再取3个,求第二次全是新球的概率,又:已知第二次取出的全是新球,求第一次取出全是新球的概率 歼打一书名 春风吹又生,打一书名 我是一个率直又很善良的人,待人一心一意,为何朋友总补诚心待我? 我认为我们应该待人真诚.尊重他人,多为对方着想.让朋友认为你是值得信任的人.帮忙译成英文, 大家都说我是个待人真诚乐于助人的人可是为什么身边缺没有一位知心朋友?大家都说我是个待人真诚,漂亮,乐于助人的人,可为什么身边却没有一位知心朋友?我是个活泼开朗稍有些可爱的女 在三角形ABC中,AB=AC=8,角BAC=120°,取一把含30°角的三角板,把30°的顶点放在BC边上运动(不与链接上文 (不与B、C重合),使一边经过点A ,另一边与AC相交于点F. 三角形BAD与三角形CDF相似吗?若相 "Statutory Services"是什么意思啊? 神釆飞扬、舍己为人、一丝不苟、惊慌失措、调兵遣将、前俯后仰、疲惫不堪、视死如归、置之不理、 分神釆飞扬、舍己为人、一丝不苟、惊慌失措、调兵遣将、前俯后仰、疲惫不堪、视死 weekend,what,going,to,you,are,do,this ,get,to,cinema,can,I,how,the,by,plane,went,Nanjing,I,to,.I,like,kites,flying,spring,in,.are,the,pandas,doing,what用所给单词的正确形式填空My friend Chen Jie wants to be a————(sing)Listen some s 伊朗绞刑余生囚犯免遭再行刑伦敦唐人街罢市抗议歧视华人韩国网军要员涉嫌干涉选举美国商会认为中国企业在美基础设施投资日本明治奶粉要撤出中国市场民调称8成俄人认为俄腐败程度高 地方奥巴马与默克尔通电话否认窃听其手机安理会呼吁马里政府迅速调查联合国维和中俄企业敲定液化天然气购销大单日本虐童面面观中国接受联合国人权审查 美应先审视自南沙十对新人参加水乡婚礼收购国企变身全澳垃圾处理领头羊全美27城华人游行抗议ABC辱华挂27部门牌子 网友惊呼“这是最牛社3分钟汽车变飞机考虑铺地下管道吸走垃圾90对伉俪庆祝“夫妻节”19对新人骑行“脱光”“脱光”后带另一半去爱情主题公园珠海国家口岸办批准开放“临时口岸”仓库工棚起火十几分钟烧剩骨架上位神网游之疯狂人族明末烽火天龙之慕容复国奶爸的逍遥人生秦末暴徒帝囚抗日保安团宋王释天迷卷之饮鸩剑霸噬天下海湾大桥旅游礐石大桥旅游石炮台公园旅游浅草寺旅游银座旅游皇居旅游富士山旅游西安州古城旅游龙马负图寺旅游朱仙镇岳飞庙旅游莺歌旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘