[讨论] URE 与 raid

楼主: HamalAri (哈马‧阿里)   2014-12-27 18:18:38
以 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 才比较可能发生

Links booklink

Contact Us: admin [ a t ] ucptt.com