如何确定 mdadm raid 中发生故障或被移除的硬盘?

如何确定 mdadm raid 中发生故障或被移除的硬盘?

我当前的 mdstat:

$ cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md0 : active raid6 sde[8] sdh[4] sdg[1] sdd[6] sdb[5] sdc[7]
      9766914560 blocks super 1.2 level 6, 512k chunk, algorithm 2 [7/6] [UUUUU_U]

unused devices: <none>

这是 mdadm --detail:

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Apr 26 21:52:21 2013
     Raid Level : raid6
     Array Size : 9766914560 (9314.46 GiB 10001.32 GB)
  Used Dev Size : 1953382912 (1862.89 GiB 2000.26 GB)
   Raid Devices : 7
  Total Devices : 6
    Persistence : Superblock is persistent

    Update Time : Tue Mar 28 15:19:34 2017
          State : clean, degraded 
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : server:0  (local to host server)
           UUID : 7dfb32ef:8454e49b:ec03ac98:cdb2e691
         Events : 34230

    Number   Major   Minor   RaidDevice State
       8       8       64        0      active sync   /dev/sde
       1       8       96        1      active sync   /dev/sdg
       4       8      112        2      active sync   /dev/sdh
       5       8       16        3      active sync   /dev/sdb
       6       8       48        4      active sync   /dev/sdd
      10       0        0       10      removed
       7       8       32        6      active sync   /dev/sdc

我的问题是:

  1. 我该如何找出被移除的硬盘?没有技巧和猜测,例如从系统中所有可用的硬盘中减去 mdadm 输出中显示的磁盘组 (ls /dev/sd*) 等...
  2. 为什么 mdadm 可以删除磁盘?如果我运行 smartctl 测试并且成功完成,可以重新添加它吗?

更新 正确答案是 sdf。我通过比较 mdadm 输出中显示的磁盘组和系统中的所有磁盘(sda - 是带有操作系统的启动盘)找到了它,但我仍然觉得这个过程太难了。

答案1

您可以运行mdadm --detail /dev/md0来获取 RAID 阵列的 UUID,在您的情况下它是“7dfb32ef:8454e49b:ec03ac98:cdb2e691”。

然后运行mdadm --examine /dev/sda并检查Array UID它属于哪个。如果相同,并且mdadm --detail /dev/md0输出中缺少 sda,则很可能是被移除的磁盘。

我无法回答mdadm移除磁盘的原因,除此之外您应该能够在dmesg和中找到更多信息/var/log

如果这些地方看起来没问题,并且SMART表明磁盘没问题,那么再次添加它应该是安全的。

我建议您进行配置mdadm --monitor,以便它运行并监控您的 RAID 集,并在发生任何事情时向您发送电子邮件。

答案2

磁盘阵列中的磁盘顺序很重要。您可以在命令的输出中看到它mdadm --detail /dev/md0。在您的示例中,它是:

sde sdg sdh sdb sdd missed sdc

如果磁盘已损坏或拔出,则它仍属于 RAID 阵列。在您的示例中,磁盘是通过 mdadm 命令手动从 RAID 阵列中移除的。smartctl是一个显示磁盘健康状况的好程序。但如果您不知道阵列中有什么磁盘,这个程序就帮不了您。

相关内容