URE 與 raid - 儲存設備

Table of Contents

以 mdadm 和 raid 5 為例
URE 發生時,硬碟的控制晶片 ECC 失敗通常會整個 block/sector 給零
到作業系統上只壞 1bit 比較可能是其它原因
假設有 3顆 硬碟 (先進格式化 實體的 block = 4k )作 raid5

而 mdadm 使用的 chunk 64k ,檔案系統的 block 是 4k
假設檔案系統的 block 有和 raid 的 chunk 對齊

其中的一個 stripe 會長這樣,每個 ■ 為 4k (即磁碟的實體 block/sector)
也就是這 raid 其中的一個 128k 會長這樣

磁碟1 ■■■■■■■■■■■■■■■■ chunk 1
磁碟2 ■■■■■■■■■■■■■■■■ chunk 2
磁碟3 ■■■■■■■■■■■■■■■■ parity




今天 磁碟 3 掛掉了,磁碟 1 因為 URE 壞了一個 block

磁碟1 ■■■■■■■■■■■■■■■ chunk 1
磁碟2 ■■■■■■■■■■■■■■■■ chunk 2
磁碟3 parity

最好運的情況是檔案系統損失 4k
( 如果剛好壞的碟在URE stripe 是 parity block
並且非常剛好檔案系統的 block 就是磁碟的 block )




不過壞碟在發生 URE 的 stripe 是資料的情況比機率比較大

磁碟1 ■■■■■■■■■■■■■■■ chunk 1
磁碟2 ■■■■■■■■■■■■■■■■ parity
磁碟3 chunk 2

這時候至少就壞 64 + 4 k 了




不過以上情況都太樂觀了
raid chunk 大小常見 128 以上,512 最多
raid 上掛了 1 block 檔案系統可以知道並處理也不常見
這些情況反而是 zfs 或 btrfs 這種檔案系統層級 raid 才比較可能發生

--

All Comments

Jack avatarJack2014-12-29
越來越專業了,快推! XD
Bethany avatarBethany2014-12-30
RAID-5的 Parity是平均分佈在各個硬碟的,RAID-3 or
RAID-4才是集中在一顆硬碟