我在托管系统中遇到了磁盘故障,并更换了故障驱动器。在恢复过程中,另一个驱动器上发生了磁盘错误。
原始错误发生时:
md2 : active raid6 sdf3[5](F) sdd3[3] sdg3[6] sdc3[2] sdb3[7] sde3[4] sdd3[3] sda3[0]
104849920 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/6] [UUUUU_U]
修复后添加驱动器:
root@rescue ~ # mdadm /dev/md2 -a /dev/sdf3
mdadm: added /dev/sdf3
root@rescue ~ # cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid6 sdf3[7] sda3[0] sdg3[6] sde3[4] sdd3[3] sdc3[2]
104849920 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/5] [U_UUU_U]
[>....................] recovery = 0.9% (200576/20969984) finish=5.1min speed=66858K/sec
看来 sda3 已经从阵列中消失了
重建完成:
md2 : active raid6 sdf3[7](S) sda3[0] sdg3[6] sde3[4](F) sdd3[3] sdc3[2]
104849920 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/4] [U_UU__U]
According to the error log the rebuild probably stopped at the error:
Jul 18 13:17:02 rescue kernel: [ 3648.976435] sd 6:0:0:0: [sde] Unhandled sense code
Jul 18 13:17:02 rescue kernel: [ 3648.976441] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jul 18 13:17:02 rescue kernel: [ 3648.976445] Sense Key : Medium Error [current] [descriptor]
Jul 18 13:17:02 rescue kernel: [ 3648.976451] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Jul 18 13:17:02 rescue kernel: [ 3648.976464] sd 6:0:0:0: [sde]
Jul 18 13:17:02 rescue kernel: [ 3648.976470] sd 6:0:0:0: [sde] CDB:
Jul 18 13:17:02 rescue kernel: [ 3649.063660] md/raid:md2: read error not correctable (sec
tor 13785320 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063664] md/raid:md2: read error not correctable (sector 13785328 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063667] md/raid:md2: read error not correctable (sector 13785336 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063670] md/raid:md2: read error not correctable (sector 13785344 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063672] md/raid:md2: read error not correctable (sector 13785352 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063675] md/raid:md2: read error not correctable (sector 13785360 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063678] md/raid:md2: read error not correctable (sector 13785368 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063681] md/raid:md2: read error not correctable (sector 13785376 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063684] md/raid:md2: read error not correctable (sector 13785384 on sde3).
Jul 18 13:17:02 rescue kernel: [ 3649.063748] ata7: EH complete
Jul 18 13:17:02 rescue kernel: [ 3649.121786] md: md2: recovery done.
此时,有什么方法可以恢复(例如重新添加 sda3)?
答案1
你现在三软件 RAID6 上的硬盘(不是两块:注意状态为[U_UU__U]
)坏了,其中两块似乎在 RAID 重建过程中出现故障。是时候跳过大部分硬件并从备份中恢复了。
答案2
在这些情况下,通常可以恢复数据。您应该能够在降级模式下重建 RAID 并复制大部分数据,但在复制过程中的某个时刻,RAID 可能会崩溃。在这种情况下,您可以再次重建 RAID 并避免使用导致 RAID 崩溃的目录来复制其他数据。
或者,为了获得最佳效果,您可以拍摄发生故障的驱动器的图像。然后使用这些图像执行恢复工作。
使用 smartctl 检查驱动器的 SMART 状态。它应该可以帮助您验证哪些驱动器良好以及哪些驱动器有问题。
SMART 信息加上 mdadm --examine 的输出将有助于确定重新制作 RAID 的最佳方法。