mdadm - 过时阵列和当前阵列具有相同的 UUID。当前阵列不会在启动时组装

mdadm - 过时阵列和当前阵列具有相同的 UUID。当前阵列不会在启动时组装

我很少问问题,但是谷歌搜索没有找到这个问题,所以我来了。

我在 Ubuntu 14.04 Server 版本上运行的 mdadm 软件 Raid 存在问题。具体来说,我似乎有两个 Raid 阵列设置了相同的 UUID,一个是旧的,一个是新的,这意味着它无法在启动时组装,导致启动挂起,因为它无法挂载我的某些文件系统。

我将详细说明我做了什么,以及我认为这个问题出现在哪里。我正在寻找的是如何清除现已过时的阵列的细节,以便我的 Raid 在启动时正确组装。

很久以前,我有一个由两个 2TB 驱动器组成的 Raid1 阵列。系统不位于此阵列上,它有一个专用磁盘,因此这纯粹是为了数据。

我开始空间不足,所以将这两个驱动器迁移到 Raid5。到目前为止一切顺利。

然后我通过添加 2 个 2TB 备用磁盘并将阵列扩展到这些备用磁盘来扩展我的阵列。我认为问题就出在这里。

然后,考虑到阵列的大小和重建时间,我决定运行 Raid6,因此我将 2 个现有的 1TB 驱动器条带化以制作 2TB Raid0,并在这些驱动器上扩展 Raid 6。这就是我现在的情况,Raid 6 由 4 个 2TB 驱动器 + 1 个 2TB Raid 0 组成(总共 10 TB,6 TB 可用空间,4 TB 奇偶校验)。

在这次升级过程中的某个时刻,我似乎搞砸了某件事。检查 Raid 的结果显示如下:

sudo mdadm --examine --scan -v
ARRAY /dev/md/1 level=raid0 metadata=1.2 num-devices=2 UUID=913834a2:63afa2cd:a84e864a:96353af5 name=fileserver:1
   devices=/dev/sdd1,/dev/sda1
ARRAY /dev/md/0 level=raid5 metadata=1.2 num-devices=2 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   spares=2   devices=/dev/sde,/dev/sdf
ARRAY /dev/md/0 level=raid6 metadata=1.2 num-devices=5 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   devices=/dev/sdg1,/dev/sdh1,/dev/sde1,/dev/sdf1,/dev/md/1

看到那 2 个具有不同 Raid 级别但 UUID 相同的 /dev/md0 了吗?糟透了,是吧?看起来,带有 2 个备用磁盘的 Raid5 仍处于配置中,并且没有被覆盖,因为同一阵列扩展到那 2 个备用磁盘,然后扩展到 Raid6。关键是,我可能搞砸了,因为我的初始阵列引用了整个磁盘 (/dev/sd[ef]),而我的 Raid6 引用了整个磁盘分区 (/dev/sd[efgh]1)。

结果是我无法使用以下命令组装数组:

sudo mdadm --assemble --scan

因为它尝试用 2 个备用磁盘组装 Raid5,但无法完成。我必须发出以下命令来组装阵列:

sudo mdadm --assemble /dev/md0 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/md1

它工作正常并且我的 Raid6 再次在 /dev/md0 上可用...但是,这意味着当我的服务器无法在启动时将文件系统挂载到 Raid 时,它现在需要手动干预,这非常不方便,因为这意味着我必须亲自去服务器[S] 跳过失败的挂载。

以下是我的 conf 文件和其他 mdadm 输出(同时我的 Raid6 成功运行)以帮助进一步诊断解决方案。

mdstat:

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdg1[0] md1[5] sdf1[3] sde1[4] sdh1[2]
      5860145664 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/5] [UUUUU]

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

unused devices: <none>

mdadm --detail

sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
   Raid Devices : 5
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Sun Sep 27 14:00:17 2015
          State : clean
 Active Devices : 5
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : team-canfield:0  (local to host team-canfield)
           UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
         Events : 1231852

    Number   Major   Minor   RaidDevice State
       0       8       97        0      active sync   /dev/sdg1
       2       8      113        1      active sync   /dev/sdh1
       4       8       65        2      active sync   /dev/sde1
       3       8       81        3      active sync   /dev/sdf1
       5       9        1        4      active sync   /dev/md/1

mdadm.conf:

cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# 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

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# 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/1 metadata=1.2 UUID=913834a2:63afa2cd:a84e864a:96353af5 name=fileserver:1
ARRAY /dev/md/0 metadata=1.2 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0

mdadm——检查——扫描-vvvv:

sudo mdadm --examine --scan -vvvv
mdadm: No md superblock detected on /dev/md0.
/dev/sdg1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
   Raid Devices : 5

 Avail Dev Size : 3906764976 (1862.89 GiB 2000.26 GB)
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : e39fa659:9010941e:034e58b6:f88f7542

    Update Time : Sun Sep 27 14:00:17 2015
       Checksum : 18244273 - correct
         Events : 1231852

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AAAAA ('A' == active, '.' == missing)
/dev/sdg:
   MBR Magic : aa55
Partition[0] :   3907027120 sectors at         2048 (type fd)
/dev/sdh1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
   Raid Devices : 5

 Avail Dev Size : 3906764976 (1862.89 GiB 2000.26 GB)
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : cc416705:bf6220eb:9201a515:c044aabd

    Update Time : Sun Sep 27 14:00:17 2015
       Checksum : 6af29ee4 - correct
         Events : 1231852

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AAAAA ('A' == active, '.' == missing)
/dev/sdh:
   MBR Magic : aa55
Partition[0] :   3907027120 sectors at         2048 (type fd)
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
   Raid Devices : 5

 Avail Dev Size : 3906764976 (1862.89 GiB 2000.26 GB)
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : dbd3c13e:269dde52:0b07e3cf:d8d2e4fc

    Update Time : Sun Sep 27 14:00:17 2015
       Checksum : 583feee - correct
         Events : 1231852

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAAA ('A' == active, '.' == missing)
/dev/sde:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid5
   Raid Devices : 2

 Avail Dev Size : 3906767024 (1862.89 GiB 2000.26 GB)
     Array Size : 1953381888 (1862.89 GiB 2000.26 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8089c55e:df3a826b:7df2e4b9:dbff7a97

    Update Time : Sat Sep  5 14:59:00 2015
       Checksum : 7f43d8a - correct
         Events : 514

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : spare
   Array State : AA ('A' == active, '.' == missing)
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
   Raid Devices : 5

 Avail Dev Size : 3906764976 (1862.89 GiB 2000.26 GB)
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : de9ae300:e4382032:a5fd89c9:c966255b

    Update Time : Sun Sep 27 14:00:17 2015
       Checksum : feceec37 - correct
         Events : 1231852

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AAAAA ('A' == active, '.' == missing)
/dev/sdf:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid5
   Raid Devices : 2

 Avail Dev Size : 3906767024 (1862.89 GiB 2000.26 GB)
     Array Size : 1953381888 (1862.89 GiB 2000.26 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 3b86b670:f4812448:e474f7b5:b214454c

    Update Time : Sat Sep  5 14:49:56 2015
       Checksum : a7651675 - correct
         Events : 513

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : spare
   Array State : AA ('A' == active, '.' == missing)
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 913834a2:63afa2cd:a84e864a:96353af5
           Name : fileserver:1
  Creation Time : Thu Sep 10 11:52:39 2015
     Raid Level : raid0
   Raid Devices : 2

 Avail Dev Size : 1953523104 (931.51 GiB 1000.20 GB)
    Data Offset : 16 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8745a084:7e031e4f:da72b198:e548d755

    Update Time : Thu Sep 10 11:52:39 2015
       Checksum : 48772d61 - correct
         Events : 0

     Chunk Size : 512K

   Device Role : Active device 1
   Array State : AA ('A' == active, '.' == missing)
/dev/sdd:
   MBR Magic : aa55
Partition[0] :   1953523120 sectors at         2048 (type 83)
mdadm: No md superblock detected on /dev/sdc1.
/dev/sdc:
   MBR Magic : aa55
Partition[0] :    976771072 sectors at         2048 (type 83)
mdadm: No md superblock detected on /dev/dm-2.
mdadm: No md superblock detected on /dev/dm-1.
mdadm: No md superblock detected on /dev/dm-0.
mdadm: No md superblock detected on /dev/sdb5.
/dev/sdb2:
   MBR Magic : aa55
Partition[0] :   1953021952 sectors at            2 (type 8e)
mdadm: No md superblock detected on /dev/sdb1.
/dev/sdb:
   MBR Magic : aa55
Partition[0] :       497664 sectors at         2048 (type 83)
Partition[1] :   1953021954 sectors at       501758 (type 05)
/dev/md/1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
           Name : team-canfield:0  (local to host team-canfield)
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
   Raid Devices : 5

 Avail Dev Size : 3906783232 (1862.90 GiB 2000.27 GB)
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 3906763776 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : cc54a0b1:0a5cf703:e7e0b1d2:0bab9231

    Update Time : Sun Sep 27 14:00:17 2015
       Checksum : 60f83822 - correct
         Events : 1231852

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 4
   Array State : AAAAA ('A' == active, '.' == missing)
/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 913834a2:63afa2cd:a84e864a:96353af5
           Name : fileserver:1
  Creation Time : Thu Sep 10 11:52:39 2015
     Raid Level : raid0
   Raid Devices : 2

 Avail Dev Size : 1953523104 (931.51 GiB 1000.20 GB)
    Data Offset : 16 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8e41dd73:0e90d173:852facd8:f3009a34

    Update Time : Thu Sep 10 11:52:39 2015
       Checksum : 7b252ab0 - correct
         Events : 0

     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA ('A' == active, '.' == missing)
/dev/sda:
   MBR Magic : aa55
Partition[0] :   1953523120 sectors at         2048 (type 83)

最后一张显示磁盘 /dev/sd[ef] 都是 Raid5 的一部分,而它们的主(也是唯一的)分区是 Raid6 的一部分

那么,有没有办法在不丢失数据的情况下销毁 Raid5 信息?我没有备份空间来重建阵列并重新复制所有内容。

我想我可以将 mdadm.conf 更新为以下内容:

DEVICE partitions

它会忽略 Raid5,但是,我觉得这只是在掩盖漏洞,下次我更改 Raid 配置时,我无疑会再次遇到类似的问题。真的,我只想销毁这个幻影 Raid5 的所有证据,其 UUID 与我的活动 Raid6 相同。有人愿意吗?

非常感谢!

答案1

好的,我想我已经解决了这个问题。我将介绍我采取的步骤,以防其他人遇到此问题。此外,这种技术是有风险的,因为我目前正在运行由 3 个 5 个分区组成的降级 Raid6 阵列。

停止阵列:

$ sudo mdadm --stop /dev/md0
 mdadm: stopped /dev/md0

将过时的 Raid5 阵列中第一个磁盘的超级块清零

$ sudo mdadm --zero-superblock /dev/sdf

检查数组以查看它是否被删除:

$ sudo mdadm --examine --scan -v
ARRAY /dev/md/1 level=raid0 metadata=1.2 num-devices=2 UUID=913834a2:63afa2cd:a84e864a:96353af5 name=fileserver:1
   devices=/dev/sdd1,/dev/sda1
ARRAY /dev/md/0 level=raid5 metadata=1.2 num-devices=2 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   spares=1   devices=/dev/sde
ARRAY /dev/md/0 level=raid6 metadata=1.2 num-devices=5 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   devices=/dev/sdg1,/dev/sdh1,/dev/md/1

奇怪的是,此时我丢失了 Raid6 的两个分区 (sd[ef]1)。不过好在 Raid5 只有一个备用分区。

将剩余的超级块清零:

$ sudo mdadm --zero-superblock /dev/sde

再检查一遍:

$ sudo mdadm --examine --scan -v
ARRAY /dev/md/1 level=raid0 metadata=1.2 num-devices=2 UUID=913834a2:63afa2cd:a84e864a:96353af5 name=fileserver:1
   devices=/dev/sdd1,/dev/sda1
ARRAY /dev/md/0 level=raid6 metadata=1.2 num-devices=5 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   devices=/dev/sdg1,/dev/sdh1,/dev/md/1

过时的 Raid5 现已消失。现在是关键时刻,是否可以将分区恢复到 Raid6:

$ sudo mdadm --assemble /dev/md0 /dev/sdg1 /dev/sdh1 /dev/md1 /dev/sde1 /dev/sdf1 --force
mdadm: cannot open device /dev/sde1: No such file or directory
mdadm: /dev/sde1 has no superblock - assembly aborted

$ sudo mdadm --assemble /dev/md0 /dev/sdg1 /dev/sdh1 /dev/md1 /dev/sdf1 --force
mdadm: cannot open device /dev/sdf1: No such file or directory
mdadm: /dev/sdf1 has no superblock - assembly aborted

不是 :/ 这是个坏消息,我担心我的数据会出问题。尝试组装剩下的 3 个分区:

$ sudo mdadm --assemble /dev/md0 /dev/sdg1 /dev/sdh1 /dev/md1  --force
mdadm: /dev/md0 has been started with 3 drives (out of 5).

呼!成功了!

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdg1[0] md1[5] sdh1[2]
      5860145664 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/3] [UU__U]

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

好吧,我们的系统严重受损,但至少它已经重建。我挂载了阵列以确保我的数据完好无损,当我看到所有数据都还在时,我松了一口气。注意:此时最好不要挂载阵列。我认为这可能是在这些步骤中稍后能够发出 --re-add 而不是 --add 之间的区别。

我觉得重启是个好主意,所以我就重启了。我仍然在启动时卡住,但这并不奇怪,因为我的阵列已降级。

当它重新上线时,我再次检查:

$ sudo mdadm --examine --scan -v
ARRAY /dev/md/1 level=raid0 metadata=1.2 num-devices=2 UUID=913834a2:63afa2cd:a84e864a:96353af5 name=fileserver:1
   devices=/dev/sdd1,/dev/sda1
ARRAY /dev/md/0 level=raid6 metadata=1.2 num-devices=5 UUID=18235f5c:bd4892c0:7616a677:626ae2e8 name=team-canfield:0
   devices=/dev/sdg1,/dev/sdh1,/dev/sdf1,/dev/sde1,/dev/md/1

可能吗?现在可以看到 Raid6 的所有 5 个分区,而 Raid5 却不见了。

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdg1[0](S) sdh1[2](S) sde1[4](S) sdf1[3](S)
      7813529952 blocks super 1.2

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

unused devices: <none>

哦天哪,这当然太好了,难以置信。我的阵列中缺少一个分区,所有现有成员都列为备用。

好了,我们已经走到这一步了。让我们停止数组:

$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0

并尝试组装扫描:

$ sudo mdadm --assemble --scan

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdg1[0] md1[5] sdh1[2]
      5860145664 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/3] [UU__U]

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

太棒了!我们重新上线了,这是我从 Raid5 升级到 Raid6 以来第一次能够成功发出此命令。但是,我们仍然处于降级状态,/dev/sd[ef]1 不见了。

我将停止阵列并尝试强制重新组装,并明确命名成员分区:

$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0

$ sudo mdadm --assemble /dev/md0 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/md1 -v --force
mdadm: looking for devices for /dev/md0
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdg1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdh1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/md1 is identified as a member of /dev/md0, slot 4.
mdadm: added /dev/sdh1 to /dev/md0 as 1
mdadm: added /dev/sde1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdf1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/md1 to /dev/md0 as 4
mdadm: added /dev/sdg1 to /dev/md0 as 0
mdadm: /dev/md0 has been started with 3 drives (out of 5).

好的,这真是个好消息。显然超级块仍然存在于这些分区上,尽管目前无法将这两个分区添加到活动状态。

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdg1[0] md1[5] sdh1[2]
      5860145664 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/3] [UU__U]

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

unused devices: <none>

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Sep  4 00:57:56 2015
     Raid Level : raid6
     Array Size : 5860145664 (5588.67 GiB 6000.79 GB)
  Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB)
   Raid Devices : 5
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Thu Oct  1 23:57:14 2015
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : team-canfield:0  (local to host team-canfield)
           UUID : 18235f5c:bd4892c0:7616a677:626ae2e8
         Events : 1231860

    Number   Major   Minor   RaidDevice State
       0       8       97        0      active sync   /dev/sdg1
       2       8      113        1      active sync   /dev/sdh1
       2       0        0        2      removed
       3       0        0        3      removed
       5       9        1        4      active sync   /dev/md/1

因此它们已恢复为已删除状态。让我们尝试重新添加它们:

$ sudo mdadm --manage /dev/md0 --re-add /dev/sd[ef]1
mdadm: --re-add for /dev/sde1 to /dev/md0 is not possible

$ sudo mdadm --manage /dev/md0 --re-add /dev/sdf1
mdadm: --re-add for /dev/sdf1 to /dev/md0 is not possible

该死,当然不是。好吧,让我们检查一下分区上的事件,看看它们是否真的被识别为阵列的一部分:

$ sudo mdadm --examine /dev/sd[a-z]1 | egrep 'Event|/dev/sd'
mdadm: No md superblock detected on /dev/sdb1.
mdadm: No md superblock detected on /dev/sdc1.
/dev/sda1:
         Events : 0
/dev/sdd1:
         Events : 0
/dev/sde1:
         Events : 1231852
/dev/sdf1:
         Events : 1231852
/dev/sdg1:
         Events : 1231860
/dev/sdh1:
         Events : 1231860

好的,显然 1.2m 中仅 8 个事件就足以使 --re-add 无法进行。这很遗憾,可能是因为我在早期安装 raid 以检查它是否完好无损,否则看起来我实际上已经设法将外围磁盘的超级块清零,同时保持分区上的超级块和数据完好无损(我显然不知道超级块是如何工作的)。

好吧,此时除了将两个分区重新添加到阵列中并让其重建之外没有其他真正的选择:

$ sudo mdadm --manage /dev/md0 --add /dev/sd[ef]1
mdadm: added /dev/sde1
mdadm: added /dev/sdf1

太棒了!现在让我们检查一下进度:

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdf1[7] sde1[6] sdg1[0] md1[5] sdh1[2]
      5860145664 blocks super 1.2 level 6, 512k chunk, algorithm 2 [5/3] [UU__U]
      [>....................]  recovery =  0.0% (84312/1953381888) finish=1930.4min speed=16862K/sec

md1 : active raid0 sdd1[1] sda1[0]
      1953522688 blocks super 1.2 512k chunks

一天的构建时间不算太长,因为从 Raid5 迁移到 Raid6 花了 7 天时间。这将是可怕的 24 小时,因为我祈祷重建过程中我的阵列不会发生任何事情,但看起来它已经成功了。

因此我们了解到:

  • Raid6 在丢失 5 个分区中的 2 个分区时,正如预期的那样,功能完好
  • 使用 mdadm 时不要混合驱动器和分区。

相关内容