DC娱乐网

RAID 重建期间,为什么第二块盘最容易死?

在很多公司里,RAID 故障的剧情往往是这样的:“有一块盘坏了,没事,RAID 顶得住。”“盘已经换上,开始 Rebui

在很多公司里,RAID 故障的剧情往往是这样的:

“有一块盘坏了,没事,RAID 顶得住。”

“盘已经换上,开始 Rebuild 了。”

“怎么又坏了一块?!”

如果你觉得这是运气不好,那说明你低估了 RAID 重建阶段的风险。

RAID 重建期,是整个生命周期里最危险的阶段

无论是 RAID 5、RAID 6,还是 RAID 10,只要进入 Rebuild 状态,都会出现三个明显变化:

磁盘 IO 模型彻底改变所有“健康盘”被迫进入满负荷扫描任何潜在的硬件缺陷都会被无限放大

所以有一句在数据中心里流传很广的话:

“RAID 不是死在坏盘那一刻,而是死在重建那几天。”

RAID 重建到底在干什么?

很多人对 RAID Rebuild 的理解停留在一句话:

“把数据重新算一遍。”

这句话不算错,但远远不够具体。

重建意味着什么?

当一块盘损坏后,RAID 5 会进入降级状态,此时:

数据 = 剩余数据块 + 校验块每一次读,都要动态计算缺失数据

当你插入新盘并开始重建,控制器要做的是:

从头到尾,扫描每一个 Stripe,用剩余磁盘 + 校验,重新生成新盘上的全部数据

注意几个关键词:

从头到尾每一个 Stripe全盘顺序读

这意味着什么?

所有存活磁盘都会被完整读一遍,而且是一块不落。

为什么第一块盘已经“证明不行”,第二块反而更危险?

直觉上很多人会觉得:

“最容易坏的不是已经坏过的那块吗?”

但现实恰恰相反。

同一批磁盘,寿命曲线高度一致

在企业环境里,RAID 阵列中的磁盘通常具备以下特征:

同一品牌同一型号同一批次同一上线时间同一工作负载

换句话说:

它们是“一起服役、一起变老”的。

第一块盘坏掉,并不是个例,而是一个信号:

这一批磁盘,已经整体进入高风险区间。

第一块盘坏,往往不是“突发事故”

大多数磁盘并不是瞬间死亡的,而是经历过:

坏扇区逐渐增加SMART 指标慢慢恶化读错误次数上升

只不过平时业务 IO:

是随机的是局部的很多坏块根本“没被读到”

而 RAID 重建,正好会精准踩中这些地雷。

重建期间,磁盘遭遇了哪些“非人道待遇”?

这是今天最核心的一部分。

在正常业务中:

某些冷数据可能几年不被访问某些扇区一直处于“沉睡状态”

但重建期间:

每一块盘每一个扇区都必须被完整读取

结果就是:

所有潜伏的物理缺陷,都会在这一次被强制暴露。

这也是为什么你经常看到:

重建到 30% 报错重建到 70% 阵列直接掉线URE

这里必须讲一个关键概念:不可恢复读错误(URE)。

简单说就是:

磁盘在读取某个扇区时即便反复重试也无法返回正确数据

对单盘系统来说,URE 可能只是:

“一个文件读不了”

但对 RAID 5 来说,后果是:

致命的。

因为在重建过程中:

某一 Stripe 已经缺一块盘再遇到 URE就等于该 Stripe 数据永远无法还原

阵列当场宣告失败。

大容量磁盘,把概率问题变成必然事件

早期 500GB、1TB 磁盘时代,URE 还算“低概率事件”。

但现在呢?

8TB12TB18TB20TB+

理论上:

你重建一次 RAID 5,本质上就是在赌:在这十几 TB 的连续读取中,不会遇到一次 URE。

这不是技术问题,是数学问题。

重建 IO + 业务 IO重建不是后台“悄悄干活”

很多人以为:

“重建是后台任务,不影响业务。”

现实是:

重建 IO 极其密集还无法完全被限速控制器优先级往往高于业务

于是磁盘同时承受:

顺序读(重建)随机读写(业务)

这是机械硬盘最不擅长的混合负载模式。

温度、震动、电压,一起上压力

在这种负载下,磁盘会出现:

温度显著上升寻道频率暴涨马达与磁头长期满载

对一块“本就接近寿命终点”的磁盘来说,这基本等同于:

加速送走。

RAID 6、RAID 10 就安全吗?

很多人会问:

“那我用 RAID 6 / RAID 10,是不是就没这问题了?”

RAID 6能容忍 2 块盘同时损坏对抗 URE 的能力更强但重建时间更长磁盘压力持续时间更久

风险不是消失,而是被推迟。

RAID 10重建只涉及镜像对不需要全阵列扫描重建速度快风险显著低于 RAID 5/6

这也是为什么:

核心业务系统,更偏向 RAID 10。

真正重要的一句老话

RAID 不是备份。

RAID 解决的是:

可用性问题

备份解决的是:

生存问题