RAID 阵列发生故障,现在无法重新启动;mdadm --examine 显示驱动器运行正常,但 --assemble 失败,缺少两个磁盘

RAID 阵列发生故障,现在无法重新启动;mdadm --examine 显示驱动器运行正常,但 --assemble 失败,缺少两个磁盘

这是 Mint 21.1 x64 Linux 系统,多年来,该系统已将磁盘添加到 RAID 阵列中,直到现在我们拥有一个 10 个 3TB 的阵列和一个 5 个 6TB 的阵列。四个硬盘从阵列中掉落,每个阵列两个,显然是由于一个控制器发生故障。我们已经更换了控制器,但阵列并没有恢复功能。mdadm --assemble报告无法启动任一阵列,磁盘不足(每个阵列有两个发生故障,我并不感到惊讶);mdadm --run报告 I/O 错误(系统日志似乎表明这是因为它无法启动所有驱动器,但没有迹象表明它试图启动两个显然不正常的驱动器),但我仍然可以找到mdadm --examine故障磁盘,它们看起来完全正常。以下是来自功能正常的驱动器的输出:

mdadm --examine /dev/sda
/dev/sda:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : 6e072616:2f7079b0:b336c1a7:f222c711

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:30:27 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : 2faf0b93 - correct
         Events : 21397

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 9
   Array State : AAAAAA..AA ('A' == active, '.' == missing, 'R' == replacing)

以下是故障驱动器的输出:

mdadm --examine /dev/sdk
/dev/sdk:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : d62b85bc:fb108c56:4710850c:477c0c06

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:27:31 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : d53202fe - correct
         Events : 21392

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 6
   Array State : AAAAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)

编辑:这是第二个故障驱动器的检查报告;正如您所看到的,它在整个阵列脱机的同时发生故障。

# mdadm --examine /dev/sdl
/dev/sdl:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 829c0c49:033a810b:7f5bb415:913c91ed
           Name : DataBackup:back  (local to host DataBackup)
  Creation Time : Mon Feb 15 13:43:15 2021
     Raid Level : raid5
   Raid Devices : 10

 Avail Dev Size : 5860268976 sectors (2.73 TiB 3.00 TB)
     Array Size : 26371206144 KiB (24.56 TiB 27.00 TB)
  Used Dev Size : 5860268032 sectors (2.73 TiB 3.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=944 sectors
          State : clean
    Device UUID : 35ebf7d9:55148a4a:e190671d:6db1c2cf

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Apr  2 04:27:31 2023
  Bad Block Log : 512 entries available at offset 24 sectors
       Checksum : c13b7b79 - correct
         Events : 21392

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 7
   Array State : AAAAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)

第二个阵列(5x6TB)在两分钟后因两个磁盘故障而断线。该阵列上的两个故障磁盘和另一个阵列上的两个故障磁盘都连接到单个 4 端口 SATA 控制器卡,该卡当然现已被替换。

我发现最有趣的事情是,故障驱动器似乎报告自己处于活动状态,但mdadm并不同意这一点。journalctl似乎无法追溯到 4 月 2 日,所以我可能无法找出发生了什么。有人知道我可以做些什么来让这个野兽重新上线吗?

答案1

  1. 在尝试任何可能造成破坏的命令之前,请务必对阵列中的所有驱动器进行映像级备份mdadm。有了这些备份,您以后可以尝试在虚拟机外进行恢复。
  2. 检查Update time输出中出现故障的驱动器字段,以mdadm --examine /dev/sdX确定驱动器从阵列中掉出时事件的确切顺序。有时第一个驱动器故障未被注意到,在尝试安装文件系统时,将该旧驱动器联机会导致灾难性故障。
  3. mdadm --assemble --force /dev/mdX在您的情况下,两个驱动器同时发生故障,因此使用或强制阵列联机应该是安全的mdadm --assemble --force --scan。如果不是这种情况,您应该通过为 指定阵列成员驱动器,仅强制联机最后一个从阵列中掉下来的驱动器mdadm --assemble --force /dev/mdX /dev/sda /dev/sdb missing /dev/sdd,请注意驱动器的顺序很重要。
  4. 由于您只能使用明确的设备列表才能开始工作,因此assemble我认为您的阵列目前处于降级状态,/dev/sdh标记为脱机。查看输出以cat /proc/mdstat确定这一点,然后进行备份、排除硬件故障并完全重建阵列。

相关内容