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

看板Storage_Zone (儲存裝置)作者 (Litfal)時間10年前 (2014/12/26 05:28), 10年前編輯推噓25(25096)
留言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
1分之10的14次方? 10分之1的14次方? 都幾?
12/26 06:32, 1F
欸,我真的寫反了XD,感謝

12/26 06:34, , 2F
推分享
12/26 06:34, 2F

12/26 07:23, , 3F
推。小疑問,如果rebuild的範圍一定是完整的硬碟容
12/26 07:23, 3F

12/26 07:23, , 4F
量,也不見得每次rebuild的時候,都剛好把整個硬碟
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
誰告訴你硬碟一次讀1個位元的 你讀給我看看
12/26 07:58, 8F
沒有說硬碟一次只讀一個bit,但機率就是這樣算的,不需要把問題搞複雜

12/26 08:12, , 9F
=推 很認真分享也有用的文章 要是我大概打150字
12/26 08:12, 9F

12/26 08:16, , 10F
我不用完美重建,只要大部分資料救得回來
12/26 08:16, 10F

12/26 08:42, , 11F
跟這裡算出來的不一樣? http://ppt.cc/pULH
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
要真像你寫的這樣 RAID5早就淘汰了
12/26 09:57, 13F
我是覺得RAID5應該淘汰了,另外能請您提供論文嗎?

12/26 10:07, , 14F
我們公司機房raid5做了超久 都沒事
12/26 10:07, 14F
真的衷心的希望能一直持續下去。

12/26 10:25, , 15F
是說...重建成功機率這麼低的話
12/26 10:25, 15F

12/26 10:26, , 16F
那這篇文章 #1ItoI13z 這間公司是傻子?
12/26 10:26, 16F

12/26 10:27, , 17F
貼錯 這篇才對 #1Iu6j51i
12/26 10:27, 17F
發生URE不代表重建會失敗... 仔細看了一下該文網站上的建置文章,他用的是RAID 1, 搭配SIL3124,用RAID 1、很合理。

12/26 10:39, , 18F
樓上你貼那篇跟RAID5的關系是?
12/26 10:39, 18F

12/26 10:56, , 19F
高級Raid Controller都有Patrol read/scrubbing機制
12/26 10:56, 19F

12/26 10:57, , 20F
不會讓你嚴重到已經一顆offline要重建才發現
12/26 10:57, 20F

12/26 10:58, , 21F
某些bit是壞掉的狀況....
12/26 10:58, 21F
還是會有一些狀況讓整顆硬失效,然後就offline。 這篇就是討論當RAID 5 degraded,rebuild時會遇到URE的機率。 另外管理RAID,定期做check consistency是必須的,不過我不想模糊焦點

12/26 11:15, , 22F
樓上, 那如果不是甚麼高級Raid Card呢...
12/26 11:15, 22F

12/26 11:16, , 23F
英文後面有per bits read才對 不然亂翻沒人看得懂
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
software-raid也有(manual)consistency checking...
12/26 11:53, 26F

12/26 11:58, , 27F
網路儲存公司買了2萬顆硬碟沒可能不RAID的吧?
12/26 11:58, 27F

12/26 11:59, , 28F
如果URE對RAID重建事關重大還會買一堆消費級的用嗎?
12/26 11:59, 28F
這篇專指RAID 5,不包含RAID 10、RAID 50、RAID 60。

12/26 12:11, , 29F
不太可能像你這個這麼低 低於99.9%就已經很嚴重了
12/26 12:11, 29F
還有 53 則推文
還有 7 段內文
12/26 21:40, , 83F
不然我是不是該說RAID 10/01叫RAID 0了?
12/26 21:40, 83F

12/26 21:41, , 84F
認命吧 乖乖用RAID5 不然就是認份用排程做冷備份
12/26 21:41, 84F

12/26 21:41, , 85F
總之資料真的重要 比起RAID 多複製一分以上才實際
12/26 21:41, 85F

12/26 21:46, , 86F
這個做法在現有的RAID定義中沒有定義 但是其實很常
12/26 21:46, 86F

12/26 21:48, , 87F
見 高階一點的Storage都有 如果覺得不應該算RAID5應
12/26 21:48, 87F

12/26 21:49, , 88F
用 那就叫RAID51吧
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
還是同樣一句話看資料重要性,重要就raid1加異地
12/26 23:51, 91F

12/26 23:52, , 92F
不重要就raid幾隨便自己爽就好,包括記憶體也會出錯
12/26 23:52, 92F

12/26 23:54, , 93F
至於資料中心,每個檔案都有兩份三份
12/26 23:54, 93F

12/26 23:55, , 94F
btrfs的raid5有人用過嗎?
12/26 23:55, 94F

12/27 00:32, , 95F
btrfs 一直都還在「體驗」階段 不敢在重要機器上面
12/27 00:32, 95F

12/27 00:33, , 96F
實際拿來應用
12/27 00:33, 96F

12/27 01:43, , 97F
R幾沒差~重要會異地備份 公司只是陽春R5+hotspare
12/27 01:43, 97F
※ 編輯: Litfal (220.135.179.10), 12/27/2014 01:46:39

12/27 01:46, , 98F
法日美各有一份完整備份 各據點要自己保留15天備份
12/27 01:46, 98F

12/27 02:05, , 99F
查了一下 國外2007就有人討論 2010 2013繼續延燒
12/27 02:05, 99F

12/27 02:05, , 100F

12/27 02:07, , 101F
加上電腦還有其他層的容錯機制 其實還在可以接受的
12/27 02:07, 101F

12/27 02:08, , 102F
範圍。反之如果是真的重要一個bit都不能錯
12/27 02:08, 102F

12/27 02:08, , 103F
那就raid6或raid51吧
12/27 02:08, 103F

12/27 02:11, , 104F
推樓上danny8376大的連結
12/27 02:11, 104F

12/27 02:17, , 105F
在現今公有雲的服務中,就算號稱99.95%的可靠性,
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
danny那個連結的結論明明就是否定那個算法 假設太強
12/27 10:07, 108F

12/27 10:07, , 109F
這篇的標題聳動 有點譁眾取寵 實務上不是這樣
12/27 10:07, 109F

12/27 10:09, , 110F
請原PO提出實驗數據證明你的結果吧 不然沒參考價值
12/27 10:09, 110F

12/27 10:10, , 111F
低於50%的話 rebuild個幾次就會失敗吧
12/27 10:10, 111F

12/27 10:13, , 112F
我們公司16*4TB的RAID5磁碟陣列 怎麼換硬碟沒遇到過
12/27 10:13, 112F

12/27 15:20, , 113F
Raid5 容錯,備份另外作
12/27 15:20, 113F

12/30 20:22, , 114F
TLER是WD的ERC 不要這麼針對WD好嗎?
12/30 20:22, 114F

12/30 20:25, , 115F
另外RAID 5有校驗位元 發生URE時除非另外幾顆也掛
12/30 20:25, 115F

12/30 20:25, , 116F
不然資料是100%
12/30 20:25, 116F

12/30 20:26, , 117F
不要小看陣列的演算法好嗎?
12/30 20:26, 117F

12/30 20:27, , 118F
你可以把這篇發給各DATA CENTER 看他們理不理你...
12/30 20:27, 118F

12/31 14:43, , 119F
一定是爆硬碟的悲憤文wwwwwwww
12/31 14:43, 119F

01/02 11:41, , 120F
DC當然不會理啊 早就沒再用RAID5了 何必管RAID5怎樣
01/02 11:41, 120F

11/15 19:51, , 121F
推!
11/15 19:51, 121F
文章代碼(AID): #1Kd86OkA (Storage_Zone)
討論串 (同標題文章)
文章代碼(AID): #1Kd86OkA (Storage_Zone)