磁盘发生故障后,mdadm 显示非活动 raid0 阵列,而不是降级的 raid6

磁盘发生故障后,mdadm 显示非活动 raid0 阵列,而不是降级的 raid6

我一直在运行带有 8 磁盘 raid 6 阵列的 Ubuntu 18.04 系统,该阵列在出现故障磁盘时崩溃(我只是在崩溃后才注意到有故障磁盘)。该 raid 阵列已在多次 Ubuntu 安装中幸存下来,因此这不是我第一次遇到故障磁盘,通常我会让阵列保持运行,直到收到替换磁盘,但这次我无法让它再次运行(我的计划是先让它再次运行,然后只有当我确定阵列可以恢复时才订购替换磁盘)。

我已断开故障驱动器的连接,其他 7 个驱动器似乎仍在运行,但 mdadm 似乎认为这 7 个驱动器是 raid 0 阵列的一部分,而不是 raid 6 阵列的一部分。因此,目前,我没有足够的勇气去尝试任何可能具有破坏性的事情,至少要先确认这样做比破坏数据更有可能成功(多年来,我断断续续地备份过,但上面可能还有一些照片尚未备份……是的,我知道我需要一个更好的备份策略,而且一如既往,这将是我在修复此问题或确定无法修复后要做的第一件事)。

当我运行时mdadm --assemble --scan我得到以下输出:

mdadm: /dev/md127 assembled from 7 drives - not enough to start the array while not clean - consider --force.

我想尝试该--force选项,但输出mdadm --detail /dev/md127如下:

/dev/md127:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 7
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 7

              Name : Ares:RaidStorage  (local to host Ares)
              UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
            Events : 1627931

    Number   Major   Minor   RaidDevice

       -       8       32        -        /dev/sdc
       -       8        0        -        /dev/sda
       -       8      112        -        /dev/sdh
       -       8       80        -        /dev/sdf
       -       8       48        -        /dev/sdd
       -       8       16        -        /dev/sdb
       -       8       96        -        /dev/sdg

而且由于mdadm --assemble --help--force涉及修改超级块,我担心运行--force会用 raid 0 阵列的信息覆盖超级块。

我让 mdadm 检查成员设备,它们仍然认为它们是 8 磁盘 raid 6 阵列的一部分(我希望这意味着仍然有恢复的机会):

root@Ares:/# for i in a b c d f g h; do mdadm --examine /dev/sd$i; done
/dev/sda:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : 1e104c8a:529eb411:a7fd472a:5854d356

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : 712f8115 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : d3bb43b7:9f39be47:102328fa:2bab3f5e

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : ab7d4456 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : 325a0adf:3d917a47:977edea3:db21d42a

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : 494b0c89 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : 6c0200a0:37b50833:683a868b:ebfb9e94

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : 47416ea1 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : b91d04d3:3f1508ad:687bb30f:7d6fc687

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : 6b999e8b - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 4
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1960 sectors, after=944 sectors
          State : active
    Device UUID : 64ba7519:7d47e97c:21c5622a:18df9eca

    Update Time : Fri Mar  1 21:50:02 2019
  Bad Block Log : 512 entries available at offset 72 sectors
       Checksum : df7c2710 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 5
   Array State : AAAAAAA. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdh:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1
           Name : Ares:RaidStorage  (local to host Ares)
  Creation Time : Mon Jun 25 18:19:09 2012
     Raid Level : raid6
   Raid Devices : 8

 Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
     Array Size : 17581590528 (16767.11 GiB 18003.55 GB)
  Used Dev Size : 5860530176 (2794.52 GiB 3000.59 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
   Unused Space : before=1968 sectors, after=944 sectors
          State : active
    Device UUID : 493cfa55:b00800db:40c8fbc4:c94dabbb

    Update Time : Fri Mar  1 21:50:02 2019
       Checksum : 5b4dbb3 - correct
         Events : 1627931

         Layout : left-symmetric
     Chunk Size : 512K

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

为了完整起见,这里还有一些可能相关的其他命令的输出:

root@Ares:/# mdadm --examine --scan
ARRAY /dev/md/RaidStorage  metadata=1.2 UUID=8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1 name=Ares:RaidStorage

root@Ares:/# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>

root@Ares:/# cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/RaidStorage  metadata=1.2 UUID=8f7270c4:ec9e19f5:afa4d7c7:2fcb1ee1 name=Ares:RaidStorage

# This configuration was auto-generated on Mon, 01 Oct 2018 20:35:13 +0200 by mkconf

为了排除我的 Kubuntu 安装中某些配置错误的可能性,我还尝试mdadm --assemble --scan从 Kubuntu USB 记忆棒进行安装,但效果与从我的正常安装运行完全相同。

我的问题如下:

  1. 为什么所有驱动器都认为它们是我的 8 磁盘 raid 6 阵列的一部分,但mdadm --assemble --scan仍然导致 raid 0 阵列处于非活动状态?
  2. 我可以安全地拨打电话吗mdadm --assemble --scan --force
  3. 如果 2 上没有:我该如何说服 mdadm 将我的 7 个磁盘视为 8 磁盘 raid 6 的一部分?

答案1

这对我有用:

  • 进入/etc/mdadm/mdadm.conf
  • 编辑阵列的行并添加 raid 级别和磁盘编号。我的是

    level=raid6 num-devices=6
    

    显然你需要说 8 个设备:)

看起来我的系统严重过热——两个盒子放在一个狭小的空间里,磁盘都出问题了。一个磁盘掉了,我以为是它搞砸了,另一个磁盘就消失了,但当我检查事件时,我发现有 5 个磁盘有同样的问题,第一个掉出来的磁盘排在后面。

设置完成后mdadm.conf,我重新启动了系统,检查所有磁盘是否都已检测到,然后命令assemble需要选项--force(可怕),但运行正常并开始自行检查。然后重新添加第一个要退出的磁盘,看起来它刚刚更新了它,现在一切都干净了。

相关内容