[心得] 警告!不要再用Raid 5了!
看板Storage_Zone (儲存裝置)作者Litfal (Litfal)時間10年前 (2014/12/26 05:28)推噓25(25推 0噓 96→)留言121則, 33人參與討論串1/7 (看更多)
一、前言
我不是什麼危言聳聽,也不是什麼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
今天,因為單身的聖誕節很無聊,
把兩年前的文章整理出來,當作給大家遲來的聖誕禮物吧。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.179.10
※ 文章網址: http://www.ptt.cc/bbs/Storage_Zone/M.1419542936.A.B8A.html
※ 編輯: Litfal (220.135.179.10), 12/26/2014 05:30:26
※ 編輯: Litfal (220.135.179.10), 12/26/2014 05:42:55
※ 編輯: Litfal (220.135.179.10), 12/26/2014 06:04:24
→
12/26 06:32, , 1F
12/26 06:32, 1F
欸,我真的寫反了XD,感謝
推
12/26 06:34, , 2F
12/26 06:34, 2F
推
12/26 07:23, , 3F
12/26 07:23, 3F
→
12/26 07:23, , 4F
12/26 07:23, 4F
→
12/26 07:23, , 5F
12/26 07:23, 5F
→
12/26 07:28, , 6F
12/26 07:28, 6F
→
12/26 07:29, , 7F
12/26 07:29, 7F
→
12/26 07:58, , 8F
12/26 07:58, 8F
沒有說硬碟一次只讀一個bit,但機率就是這樣算的,不需要把問題搞複雜
推
12/26 08:12, , 9F
12/26 08:12, 9F
推
12/26 08:16, , 10F
12/26 08:16, 10F
→
12/26 08:42, , 11F
12/26 08:42, 11F
我是覺得他算錯了,他的NxS = 總容量,但RAID 5的有效容量應該是(N-1)xS
推
12/26 09:57, , 12F
12/26 09:57, 12F
→
12/26 09:57, , 13F
12/26 09:57, 13F
我是覺得RAID5應該淘汰了,另外能請您提供論文嗎?
→
12/26 10:07, , 14F
12/26 10:07, 14F
真的衷心的希望能一直持續下去。
→
12/26 10:25, , 15F
12/26 10:25, 15F
→
12/26 10:26, , 16F
12/26 10:26, 16F
→
12/26 10:27, , 17F
12/26 10:27, 17F
發生URE不代表重建會失敗...
仔細看了一下該文網站上的建置文章,他用的是RAID 1,
搭配SIL3124,用RAID 1、很合理。
推
12/26 10:39, , 18F
12/26 10:39, 18F
→
12/26 10:56, , 19F
12/26 10:56, 19F
→
12/26 10:57, , 20F
12/26 10:57, 20F
→
12/26 10:58, , 21F
12/26 10:58, 21F
還是會有一些狀況讓整顆硬失效,然後就offline。
這篇就是討論當RAID 5 degraded,rebuild時會遇到URE的機率。
另外管理RAID,定期做check consistency是必須的,不過我不想模糊焦點
→
12/26 11:15, , 22F
12/26 11:15, 22F
→
12/26 11:16, , 23F
12/26 11:16, 23F
→
12/26 11:17, , 24F
12/26 11:17, 24F
感謝!的確忘了這部分。習慣了URE自以為理所當然大家都能懂...
→
12/26 11:40, , 25F
12/26 11:40, 25F
感謝指教,如果能指點一下我錯在哪就更讓人高興了。
然後我覺得在這個版喧嘩取眾一點意義也沒有。
→
12/26 11:53, , 26F
12/26 11:53, 26F
→
12/26 11:58, , 27F
12/26 11:58, 27F
→
12/26 11:59, , 28F
12/26 11:59, 28F
這篇專指RAID 5,不包含RAID 10、RAID 50、RAID 60。
→
12/26 12:11, , 29F
12/26 12:11, 29F
還有 53 則推文
還有 7 段內文
→
12/26 21:40, , 83F
12/26 21:40, 83F
→
12/26 21:41, , 84F
12/26 21:41, 84F
→
12/26 21:41, , 85F
12/26 21:41, 85F
→
12/26 21:46, , 86F
12/26 21:46, 86F
→
12/26 21:48, , 87F
12/26 21:48, 87F
→
12/26 21:49, , 88F
12/26 21:49, 88F
推
12/26 23:15, , 89F
12/26 23:15, 89F
→
12/26 23:15, , 90F
12/26 23:15, 90F
→
12/26 23:51, , 91F
12/26 23:51, 91F
→
12/26 23:52, , 92F
12/26 23:52, 92F
→
12/26 23:54, , 93F
12/26 23:54, 93F
→
12/26 23:55, , 94F
12/26 23:55, 94F
推
12/27 00:32, , 95F
12/27 00:32, 95F
→
12/27 00:33, , 96F
12/27 00:33, 96F
→
12/27 01:43, , 97F
12/27 01:43, 97F
※ 編輯: Litfal (220.135.179.10), 12/27/2014 01:46:39
→
12/27 01:46, , 98F
12/27 01:46, 98F
推
12/27 02:05, , 99F
12/27 02:05, 99F
→
12/27 02:05, , 100F
12/27 02:05, 100F
→
12/27 02:07, , 101F
12/27 02:07, 101F
→
12/27 02:08, , 102F
12/27 02:08, 102F
→
12/27 02:08, , 103F
12/27 02:08, 103F
推
12/27 02:11, , 104F
12/27 02:11, 104F
推
12/27 02:17, , 105F
12/27 02:17, 105F
→
12/27 02:18, , 106F
12/27 02:18, 106F
→
12/27 02:18, , 107F
12/27 02:18, 107F
推
12/27 10:07, , 108F
12/27 10:07, 108F
→
12/27 10:07, , 109F
12/27 10:07, 109F
→
12/27 10:09, , 110F
12/27 10:09, 110F
→
12/27 10:10, , 111F
12/27 10:10, 111F
→
12/27 10:13, , 112F
12/27 10:13, 112F
推
12/27 15:20, , 113F
12/27 15:20, 113F
→
12/30 20:22, , 114F
12/30 20:22, 114F
→
12/30 20:25, , 115F
12/30 20:25, 115F
→
12/30 20:25, , 116F
12/30 20:25, 116F
→
12/30 20:26, , 117F
12/30 20:26, 117F
→
12/30 20:27, , 118F
12/30 20:27, 118F
→
12/31 14:43, , 119F
12/31 14:43, 119F
→
01/02 11:41, , 120F
01/02 11:41, 120F
推
11/15 19:51, , 121F
11/15 19:51, 121F
討論串 (同標題文章)
Storage_Zone 近期熱門文章
PTT數位生活區 即時熱門文章