我在工作时的生产服务器上有一个 8 驱动器 RAID 6(500x8)。
昨天我们注意到服务器运行缓慢,经过调查,我发现 RAID 中的 2 个驱动器出现故障,通知系统无法发送电子邮件通知。我们立即关闭服务器,更换了出现故障的 2 个驱动器,并让它们重建,然后重新启动 Windows。
现在启动回 Windows 可以找到,但有时会弹出一些错误,如下图所示:
Puncturing bad block: PD Port 0 - 3:0:0 Location 0x209a3686
Puncturing bad block: PD Port 4 - 7:0:7 Location 0x209a3686
Unrecoverable medium error during recovery: PD Port 0 - 3:0:0 Location 0x209a3686
Puncturing bad block: PD Port 0 - 3:0:0 Location 0x209a3686
Puncturing bad block: PD Port 4 - 7:0:7 Location 0x209a3686
此外,机器上运行的虚拟机似乎无法正确完成 Windows 更新。这可能与此有关,也可能无关。
经过一番调查后,我对 VD 进行了一致性检查,发现了几件事情,其中夹杂着更多与上述相同的事情:
Consistency Check completed with uncorrectable errors on VD: 0
Consistency Check found inconsistent parity on VD strip: ( VD = 0, strip = 1068315)
Consistency Check detected uncorrectable multiple medium errors: ( PD Port 4 - 7:0:7 Location 0x209a3686 VD 0)
Consistency Check found inconsistent parity on VD strip: ( VD = 0, strip = 1067493)
Unexpected sense: PD = Port 0 - 3:0:0Unrecovered read error, CDB = 0x28 0x00 0x1f 0xac 0x8c 0x00 0x00 0x02 0x00 0x00 , Sense = 0xf0 0x00 0x03 0x1f 0xac 0x8d 0xdb 0x0a 0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x00 0x00 0x00
我在一个论坛上看到,像 3:0:0 这样的数字表明问题出在驱动器 0 上,但我不确定,因为这里显示了多个驱动器。(我们更换了驱动器 1 和 5)。
有人能帮我分解一下吗?有没有简单的解决方法,比如进一步更换和重建其他驱动器?
提前致谢
答案1
通常,当驱动器损坏时,RAID 数据就不再可信。您可以尝试将其复制到其他地方,但数据的完整性无法信任。
之后,终止整个 RAID 结构,创建一个带有初始化选项的新结构来强制进行磁盘健全性检查。
最好的方法是主动监控 RAID 状态,以便在第一个磁盘出现故障时检测问题,而不是等到两个磁盘都出现故障。
是时候从备份中恢复了。
答案2
除了 DevOps 的答案之外:重建过程中出现其他错误的情况并不少见。
这通常归因于重建期间压力的增加,但我发现事实并非如此。繁重工作期间的压力不会导致读取错误。相反,这是由于驱动器上以前未检测到的位衰减:当数据几个月甚至几年都没有读取时,某些扇区可能会超出其错误校正,从而无法读取。当在重建期间遇到这些情况且没有剩余冗余时,重建将失败。
因此,重建阵列后,请确保打开每月数据清理、介质巡检、巡检读取或控制器上的任何名称。这样,任何薄弱的扇区都会被及时检测和修复。如果您的控制器没有该选项,请对整个逻辑驱动器运行每月一次的映像清零(例如使用日)。