[心得] 警告!不要再用Raid 5了!

楼主: Litfal (Litfal)   2014-12-26 05:28:53
一、前言
我不是什么危言耸听,也不是什么RAID排斥,也不是我爆了RAID5的悲愤警世文
完完全全只是数学问题。
有心有空看数学流程的,请继续看下去。没空的也请相信我。
不管你用的是主机板的RAID、还是用NAS的、抑或是高阶阵列卡,
是Software-based RAID、Hardware-based RAID、抑或是Driver-based,
只要你用的是消费级的硬盘,且容量上TB等级,
不要再用RAID 5了
不要再用RAID 5了
不要再用RAID 5了
现在还再用RAID5的请赶快升级成RAID6。
就算你有10颗Hot Spare也一样。
因为
当你遇到问题时
你完全成功重建的机率
比你想像中的

接下来开始解释为什么,会有硬盘规格和数学,
有心有空看数学流程的,请继续看下去。没空或看到数学就头痛的,
也请听进我一席话。
二、URE
硬盘有个参数,叫 uncorrectable read error,
更详细一点的说叫 Non-recoverable read errors per bits read
简称ure,其中文为每位元读取发生无法复原的读取错误
一般消费级硬盘(包括消费级NAS碟),这个参数官方通常是给
1/10E14
(读做10分之1的14次方,或10的负14次方,或零点零零零零零零零零零零零零零一)
是个看起来很小的值。
什么意思呢?
平均每读取100,000,000,000,000位元,就会读到1位元坏掉、且无法修复的资料。
或是
平均每读取12.5TB,就会读到1位元坏掉、且无法修复的资料。
挖靠!这样看起来更小了。
这个数值大家就先记在心里。
企业级的硬盘,ure通常是1/10E15甚至1/10E16。
三、RAID 5
再来提提RAID 5。
RAID 5是啥,我就不细说了,不知道的你也不应该组RAID 5...
RAID 5成员其中之一离线后,状态会变为降级(degraded),
此时,若有备援、或是手动换一颗加入,则会进入重建状态(rebuild),
重建时,会读取所有资料,算出离线成员的资料,并写入备援碟。
所有资料 = RAID 5可用容量,若你拿2TBx3组,就是4TB。
重建是否成功、能否保全资料,就看能否正确的读取所有资料了。
PS. 一般RAID与档案系统无关,控制器不会知道你的硬盘哪里有、放了多少资料。
所以,重建时是对整组RAID、所有磁区去做。
例外是一些软件层的RAID,本身即是档案系统、或位于档案系统之下,
在档案系统的层级加入RAID概念,是可能只针对有资料的部分做重建的。
如ZFS、ReFS。
四、完美重建成功机率
接下来,就是高中数学了,
我们有
单次事件发生机率 ure
事件次数 = 可用容量
那,我们就能算多次事件下,发生(或不发生)的机率了:
完全不发生ure(不出错)的机率(完全成功重建)
= (1 - 单次机率) ^ (次数)
= (1 - ure) ^ (容量)
带入
ure = 1/10E14
可用容量 = 4TB(32x10E12位元)
完全不发生ure的重建机率 = (1-1/10E14)^(32x10E12)
喔数字都好大,怎么算? 你可以用高级计算机、Excel或是取Log搭配一般计算机。
反正我直接告诉你答案:
使用消费级硬盘组成4TB可用容量的RAID 5,一个位元都不坏的成功重建机率 =
72.6%
顺便再多给几个资料点
4TB = 72.6%
6TB = 61.9%
8TB = 52.8%
我不知道你对这个机率是否满意。
我个人是很不满意啦。
若考虑容错的真义,4TB的状况对我来说尚可接受。
但在现在单颗4TB性价比如此高,谁会组个4TB的RAID5阿!
当然你可以用企业级、URE较低的硬盘,那是可以把机率提升到90%以上。
但也没十分高,下面会附上表格。
五、发生read error时
重要:read error和上述的URE不尽相同,但这边提一下让大家参考
发生Read error时,根据硬盘与阵列控制卡的行为与设定,会有几种状况,
实际的情况比较复杂,我简单列几个出来:
1. 硬盘根本没发现read error!但是读出来的资料是错的。
结果:你的资料坏了1bit(通常不止),而且不会主动发现!
严重性:看你的资料价值。
2. 硬盘发现Read error,可能是Checksum failed,并开始硬盘内的ERC。
2.a. 修复成功,严格说来这样就不算URE。
2.b. 花过多时间修复,被RAID踢掉。
结果:这颗就离线了,如果你正在重建,恭喜你!RAID Failed!
如果你的RAID无法手动调整RAID组态...那状况是有点严重。
2.c. 因TLER设定而及时放弃修复:
结果:RAID控制器收到错误讯息并记录;
如果有容错,则会尝试用其他颗硬盘资料,重建这个位元。
如果容错失效(如RAID5重建中),则会通常控制器跳过这个位元。
六、RAID 5 完美重建机率
容量
URE 4TB 6TB 8TB 10TB 12TB 14TB 16TB
1E-14 72.63% 61.90% 52.76% 44.96% 38.32% 32.66% 27.83%
1E-15 96.85% 95.32% 93.81% 92.32% 90.85% 89.41% 87.99%
1E-16 99.65% 99.47% 99.29% 99.12% 98.94% 98.76% 98.59%
七、后记
这篇的原稿我是在2013/1/16完成的,
当时我用的是消费级2TBx8,犹豫要上RAID 5还是RAID 6,
于是就查规格、动手算,果断RAID 6。
有空再分享RAID 6的计算部分。
现在呢?
那些2TB都卖光了XD
今天,因为单身的圣诞节很无聊,
把两年前的文章整理出来,当作给大家迟来的圣诞礼物吧。
作者: filiaslayers (司马云)   2014-12-26 10:39:00
楼上你贴那篇跟RAID5的关系是?所以一间买两万颗硬盘的公司只会用RAID5?讲话没逻辑不要让人见笑了原po也只说不要用raid5,你要无限上纲是你家的事

Links booklink

Contact Us: admin [ a t ] ucptt.com