当前位置:存储产品专区/SAN/NAS → 正文

RAID 6磁盘组之乱谈

责任编辑:editor003 |来源:企业网D1Net  2013-02-22 10:55:01 本文摘自:51CTO

RAID 6磁盘组有很多值得学习的地方,这里我们主要介绍RAID 6磁盘组,包括介绍RAID 6和Reed-Solomon编码等方面。既然是讲原理,那些“为什么需要RAID 6磁盘组”、“RAID 6的优势”等内容就都省去了。直接进入枯燥无趣的理论。

一.RAID 5和XOR运算

为了照顾初学者,还是先把相关基本概念介绍一下,老手可以跳过这部分直接看下面。(别低头!是看本帖下面,想些什么呐~)XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。实在懒得用插入符号功能,大家就凑合着看吧。

两个数字之间的XOR运算定义是:

1 XOR 1 = 0

1 XOR 0 = 1

0 XOR 1 = 1

0 XOR 0 = 0

(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。010是男的,101是女的。Sorry,扯远了。)

多个数字XOR的时候,有两个特点:

A)结果与运算顺序无关。也就是 (a XOR b) XOR c = a XOR (b XOR c)。

B)各个参与运算的数字与结果循环对称。如果 a XOR b XOR c = d,那么a = b XOR c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。

磁盘阵列中的RAID 5之所以能够容错,就是利用了XOR运算的这些特点。上面例子中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校验。碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。

在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe,注意不是Stripper),然后再对每组条带做XOR。

P1 = 数据a XOR 数据b XOR 数据c

P2 = 数据d XOR 数据e XOR 数据f

P3 = 数据g XOR 数据h XOR 数据i

P4 = 数据j XOR 数据k XOR 数据l

扫盲部分就讲这么多,再不懂就google吧,满山遍野都是RAID 5算法的介绍。

二.RAID 6和Reed-Solomon编码

本来想写成“李德-所罗门编码”,但那样就不方便大家一边看帖子一边google了。Reed-Solomon编码是通讯领域中经常碰到的一个算法,已经有15年以上的历史了。(靠!讲存储嘛,跟通讯有个鸟关系?)其实很多校验算法都是通讯领域最先研究出来,然后才应用到其他领域的。前面说到的XOR算法对一组数据只能产生一个校验,搞通讯的工程师们觉得不够可靠,于是就研究出很多能对一组数据产生多个校验的算法。Reed-Solomon编码是其中应用最广泛的一个,咱们以前经常用的ADSL、xDSL、高速 Modem都有采用。后来手机、卫星电视、数字电视、CD唱片、DVD、条码系统、还有……(有完没完!说存储呢!)连高级点儿的服务器内存也用这个算法做校验和纠错。(总算跟存储沾上点儿边~)

现在存储的工程师也觉得RAID 5中只能容忍一颗磁盘离线不够理想,需要一种容忍多颗磁盘离线的技术,自然就会想到Reed-Solomon编码啦。把这种算法应用到存储中,就可以让N颗磁盘的空间装应用数据,M颗磁盘的空间装校验码(对一组N个数据生成M个校验,但实际上校验码是分散在所有磁盘上的),这样只要离线的磁盘不大于M颗,数据就不会丢失。

Reed-Solomon编码理论中有一个公式:N + M + 1 = 2的b次方(在电脑里写公式真是麻烦!)其中b是校验字的位数。(校验字是生成校验过程需要用的一个东东,不是最后的校验码。)举例来说,如果用8位的字节做校验字,那么M + N = 255,而RAID 6是特指M = 2,这样N = 253。就是说,用8位字节做校验字的话,理论上一个RAID 6磁盘组可以容下253颗磁盘。当然啦,实际应用中,太多的磁盘一起做运算会严重影响性能,所以阵列控制器和芯片的设计者都会把磁盘组的容量限制在16颗左右。(做了这么多无聊算术题,还是没提RAID 6到底是啥!)

三.RAID 6磁盘组实现

RAID 6这个概念所指的意义太混乱。从功能上讲,能实现两颗磁盘掉线容错的,都叫RAID 6。(至少我认识的销售们都这么认为。)但是实行这一功能的方式却有很多很多。Intel的P+Q RAID 6,NetApp的RAID-DP,HP的RAID 5-DP,还要很多实验室中的原型机都能实行这个功能。但是由于机制不同,各种所谓的RAID 6,其性能表现、磁盘负载分布、错误恢复方式都完全不同。你让我从哪说起好哩?

关键字:XOR运算顺序

本文摘自:51CTO

x RAID 6磁盘组之乱谈 扫一扫
分享本文到朋友圈
当前位置:存储产品专区/SAN/NAS → 正文

RAID 6磁盘组之乱谈

责任编辑:editor003 |来源:企业网D1Net  2013-02-22 10:55:01 本文摘自:51CTO

RAID 6磁盘组有很多值得学习的地方,这里我们主要介绍RAID 6磁盘组,包括介绍RAID 6和Reed-Solomon编码等方面。既然是讲原理,那些“为什么需要RAID 6磁盘组”、“RAID 6的优势”等内容就都省去了。直接进入枯燥无趣的理论。

一.RAID 5和XOR运算

为了照顾初学者,还是先把相关基本概念介绍一下,老手可以跳过这部分直接看下面。(别低头!是看本帖下面,想些什么呐~)XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。实在懒得用插入符号功能,大家就凑合着看吧。

两个数字之间的XOR运算定义是:

1 XOR 1 = 0

1 XOR 0 = 1

0 XOR 1 = 1

0 XOR 0 = 0

(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。010是男的,101是女的。Sorry,扯远了。)

多个数字XOR的时候,有两个特点:

A)结果与运算顺序无关。也就是 (a XOR b) XOR c = a XOR (b XOR c)。

B)各个参与运算的数字与结果循环对称。如果 a XOR b XOR c = d,那么a = b XOR c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。

磁盘阵列中的RAID 5之所以能够容错,就是利用了XOR运算的这些特点。上面例子中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校验。碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。

在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe,注意不是Stripper),然后再对每组条带做XOR。

P1 = 数据a XOR 数据b XOR 数据c

P2 = 数据d XOR 数据e XOR 数据f

P3 = 数据g XOR 数据h XOR 数据i

P4 = 数据j XOR 数据k XOR 数据l

扫盲部分就讲这么多,再不懂就google吧,满山遍野都是RAID 5算法的介绍。

二.RAID 6和Reed-Solomon编码

本来想写成“李德-所罗门编码”,但那样就不方便大家一边看帖子一边google了。Reed-Solomon编码是通讯领域中经常碰到的一个算法,已经有15年以上的历史了。(靠!讲存储嘛,跟通讯有个鸟关系?)其实很多校验算法都是通讯领域最先研究出来,然后才应用到其他领域的。前面说到的XOR算法对一组数据只能产生一个校验,搞通讯的工程师们觉得不够可靠,于是就研究出很多能对一组数据产生多个校验的算法。Reed-Solomon编码是其中应用最广泛的一个,咱们以前经常用的ADSL、xDSL、高速 Modem都有采用。后来手机、卫星电视、数字电视、CD唱片、DVD、条码系统、还有……(有完没完!说存储呢!)连高级点儿的服务器内存也用这个算法做校验和纠错。(总算跟存储沾上点儿边~)

现在存储的工程师也觉得RAID 5中只能容忍一颗磁盘离线不够理想,需要一种容忍多颗磁盘离线的技术,自然就会想到Reed-Solomon编码啦。把这种算法应用到存储中,就可以让N颗磁盘的空间装应用数据,M颗磁盘的空间装校验码(对一组N个数据生成M个校验,但实际上校验码是分散在所有磁盘上的),这样只要离线的磁盘不大于M颗,数据就不会丢失。

Reed-Solomon编码理论中有一个公式:N + M + 1 = 2的b次方(在电脑里写公式真是麻烦!)其中b是校验字的位数。(校验字是生成校验过程需要用的一个东东,不是最后的校验码。)举例来说,如果用8位的字节做校验字,那么M + N = 255,而RAID 6是特指M = 2,这样N = 253。就是说,用8位字节做校验字的话,理论上一个RAID 6磁盘组可以容下253颗磁盘。当然啦,实际应用中,太多的磁盘一起做运算会严重影响性能,所以阵列控制器和芯片的设计者都会把磁盘组的容量限制在16颗左右。(做了这么多无聊算术题,还是没提RAID 6到底是啥!)

三.RAID 6磁盘组实现

RAID 6这个概念所指的意义太混乱。从功能上讲,能实现两颗磁盘掉线容错的,都叫RAID 6。(至少我认识的销售们都这么认为。)但是实行这一功能的方式却有很多很多。Intel的P+Q RAID 6,NetApp的RAID-DP,HP的RAID 5-DP,还要很多实验室中的原型机都能实行这个功能。但是由于机制不同,各种所谓的RAID 6,其性能表现、磁盘负载分布、错误恢复方式都完全不同。你让我从哪说起好哩?

关键字:XOR运算顺序

本文摘自:51CTO

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^