[心得] 警告!不要再用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