mdadm raid 中缺少设备,但是它存在并且看起来正常?

mdadm raid 中缺少设备,但是它存在并且看起来正常?

我有 4 个设备上的 raid 5:sda10 sdh10 sdi10 sdf10。所有这些设备都可用,并且 smart 未显示错误(sdf 有,但我用新磁盘替换了它,重新同步,但随后显示当前情况)。

在 /proc/mdstat 中,该数组如下所示:

md19 : inactive sdh10[2](S) sdi10[4](S) sdf10[5](S)
      1171482624 blocks super 1.2

如您所见,sda10 丢失了。但是,根据 --query,应该没问题:

=# mdadm --query --examine /dev/sda10
/dev/sda10:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 9216999b:8dab944b:564530eb:4a61e078
           Name : blob:19  (local to host blob)
  Creation Time : Sat Jan 21 21:05:44 2017
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 780988416 (372.40 GiB 399.87 GB)
     Array Size : 1171482624 (1117.21 GiB 1199.60 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : 8fdf8a46:4a84989c:e20fb280:c38053ea

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Mar 15 01:09:45 2019
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : b72fe223 - correct
         Events : 1848

         Layout : left-symmetric
     Chunk Size : 512K

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

在另一台设备上,阵列状态看起来有所不同:

=# mdadm --query --examine /dev/sdh10
/dev/sdh10:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 9216999b:8dab944b:564530eb:4a61e078
           Name : blob:19  (local to host blob)
  Creation Time : Sat Jan 21 21:05:44 2017
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 780988416 (372.40 GiB 399.87 GB)
     Array Size : 1171482624 (1117.21 GiB 1199.60 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262056 sectors, after=0 sectors
          State : clean
    Device UUID : a6b44214:e50eb531:dc76d0f6:867db6ec

Internal Bitmap : 8 sectors from superblock
    Update Time : Fri Mar 15 01:14:45 2019
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : 9284b6cb - correct
         Events : 5956

         Layout : left-symmetric
     Chunk Size : 512K

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

我尝试停止阵列,并使用--scan进行安放,或者手动提供设备名称,但无济于事。

我 100% 确定 sda10、sdh10 和 sdi10 上的数据没有问题。sdf10 是新磁盘,因此可以重新同步。

有什么方法可以修复这次袭击吗?

答案1

奇怪的是,您的 --examine 输出显示该阵列由 4 个设备组成,但 /proc/mdstat 显示成员设备 2、4 和 5,因此现在至少有 6 个设备(索引从 0 开始)。所以出了点问题。最好停止当前阵列并重新创建它。

您应该能够使用以下命令停止并重新组装 MD 设备:

mdadm --stop /dev/md19
mdadm --create --metadata=1.2 --level=4 -n 4 --chunk=512K --layout=left-symmetric /dev/md19 /dev/sda10 missing /dev/sdh10 /dev/sdi10

在其他设备上使用 --examine 检查“活动设备”编号。系统之前的错误组装可能覆盖了此编号,如果您能确保设备的正确顺序,这将很有帮助。

以上假设 /dev/sdh10 为“活动设备 2”,/dev/sdi10 为“活动设备 3”,并且旧设备 1 已发生故障。不要指定 /dev/sdf10 而不是 ,missing这样一开始就不会发生重新同步。

尝试在生成的 md 设备上运行 fsck。如果出现大量错误,则中止 fsck,停止 md 设备,然后尝试其他命令。

一旦您拥有正常工作的阵列,您就可以添加替换驱动器:

mdadm --add /dev/md19 /dev/sdf10

以上所有内容均来自个人经验,来自移除错误驱动器的情况(不是故障驱动器,而是剩余的工作驱动器之一)。使用上述显式汇编,我恢复了阵列和文件系统。它完全可能不适合您,可能是因为阵列已损坏。总而言之,请自行承担风险。

相关内容