大规模数据存储技术之Erasure Code(EC编码)

一、背景

  • 传统各大互联网公司在大规模数据存储,包括私有云和公有云,技术选型上基本核心都是n-way replication,如典型的1主3备的架构。
  • n-way replication技术在带来高可用性的同时,伴随着巨大的冗余存储成本,因此近年来各大公司都在用很多trick减少冗余备份的投入
  • EC编码的理论已经有20多年的历史了,但知道最近几年再P2P领域中发挥作用才被大家重视起来

二、EC技术

1、What

erasure code可以认为是RAID的通式,任何RAID都可以转换为特定的erasure code。在传统的RAID中,仅支持少量的磁盘分布,当系统中存在多个分发点和多节点时,RAID将无法满足需求。比如RAID5只支持一个盘失效,即使是RAID6也仅支持两个盘失效,所以支持多个盘失效的算法也就是erasure code是解决这一问题的办法。(Erasure Code作为可有效提升存储效率、安全性和便捷性的新兴存储技术)

定义:erasure code是一种技术,它可以将n份原始数据,增加m份数据(用来存储erasure编码),并能通过n+m份中的任意n份数据,还原为原始数据。定义中包含了encode和decode两个过程,将原始的n份数据变为n+m份是encode,之后这n+m份数据可存放在不同的device上,如果有任意小于m份的数据失效,仍然能通过剩下的数据还原出来。也就是说,通常n+m的erasure编码,能容m块数据故障的场景,这时候的存储成本是1+m/n,通常m<n。因此,通过erasure编码,我们能够把副本数降到1.x。

Paste_Image.png

2、Where

凡是需要通过冗余来进行高可用的场景。但总体来说,主要运用于存储和数字编码领域。

  • 阵列
    如果磁盘阵列需要使用高级特性,比如需要能够容错两个磁盘失效(RAID6),那么可以用n+2的模式;如果想容错4个磁盘失效,则可使用n+4的模式。
  • 云存储
    erasure code是云存储的核心技术,最初诸如hadoop, GFS,CEPH等都采用的是n-way replication来做冗余,但是这样会带来极大的成本开销,因此几乎各大公司都在用erasure code替代n-way replication,之后我还会简要介绍一下具体他们使用的模式。
  • P2P领域
    erasure code 的理论起码也有20年的历史了,但真正实践可能也就最近几年的时间,在P2P领域,动态的分布和智能的容错,特别是对短暂失效是非常关键的。以往的算法或多或少都有点山寨的感觉,而借助erasure code之后,将会使P2P的算法更具有数学的严谨性。
  • 数字编码
    erasure code本身就是出自编码理论,所以在这一块具有先天的优势。

3、How

最常见的Erasure Code是Reed Solomon算法,如图,RS codes定义了一个(n + m) * n的分发矩阵(Distribution Matrix) 。

Paste_Image.png

1) Encode

对每一段的n份数据,我们都可以通过B * D 得到得到对n份数据的Encode结果即n+m分数据。

Paste_Image.png

2) Decode

Decode的过程对应着存在数据受损时,可以由任意n份数据恢复出其他受损数据。这个过程分成2个阶段:恢复原始数据、恢复编码数据。

假设如上图中的原始数据D1~5对应的编码后存储数据中D1, D4, C2 失效

a) 恢复原始数据

Step1: 可以同时从矩阵B和B*D中,去掉相应的行,得到下面的等式:

Paste_Image.png

Step2: 用Survivors数据恢复原始数据D1~5,我们只需简单的做矩阵乘法:

Paste_Image.png

因为(B')^-1 * B' = I 单位矩阵,所以我们就秋得了原始矩阵D:

Paste_Image.png
b) 恢复编码数据

矩阵B是已知的,原始数据D已经完成恢复,只需要再做一次Encode的过程即可。因为是矩阵乘法,只取出受损数据对应的行进行矩阵乘即可。

参考文档[http://blog.csdn.net/sinat_27186785/article/details/52034588]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278

推荐阅读更多精彩内容