md Raid6 阵列在重启时消失

md Raid6 阵列在重启时消失

在我扩大 raid6 阵列后,它在重启时消失了。我认为问题在于磁盘已满,而不是分区已满,因此扩大了 2 倍。有人提出,驱动器无法正确识别的另一个可能原因是,我在重新添加到新阵列之前没有将超级块归零。可能是两者兼而有之?以下是发出的命令(从历史记录中提取,格式化为具有一致的驱动器号):

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sd[b-c]1

#将 ROC raid 10 完整备份到这些驱动器上,在将大多数文件复制到其他驱动器后,检查以确保重新启动后可以正常工作。

mdadm --create /dev/md1 --level=6 --raid-devices=4 /dev/sd[d-g]1

#时间传递到同步驱动器,然后从 md0 rsync 数据,重新启动。

mdadm -S /dev/md0
mdadm /dev/md0 -r /dev/sd[b-c]

#注意下面缺少的分区号。

mdadm /dev/md1 --add /dev/sdb
mdadm /dev/md1 --add /dev/sdc
mdadm -list
mdadm --detail /dev/md1
mdadm --grow --raid-devices=6 --backup-file=/media/FastRaid/md1_grow.bak /dev/md1

重新启动后,raid6 消失,并由 2 个 raid0 阵列替换,一个处于活动状态 (sdb/sdc),一个处于非活动状态 (sdd-sdg)。以下是我通过检查超级块得到的结果:

/dev/sdb1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : e8db27d6:0dbd1ac5:4456c304:0b43f09c

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : dfd187c0 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
    Array UUID : 501c08da:5069a3d8:b2982a5d:ab56c37c
        Name : tim-server:0  (local to host tim-server)
Creation Time : Tue Dec 13 22:01:10 2022
    Raid Level : raid0
Raid Devices : 2

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=0 sectors
        State : clean
    Device UUID : 3ce84b05:607f8565:456e7f83:88b83052

    Update Time : Tue Dec 13 22:01:10 2022
Bad Block Log : 512 entries available at offset 8 sectors
    Checksum : e35ce3e5 - correct
        Events : 0

    Chunk Size : 512K

Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : eaf10189:940aeaf8:947efe82:5d0e4aea

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : e38a1bd9 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 1
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 5c34a9c7:bcc3f190:d1719a9c:8aa2b722

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : c429edf - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 3
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 12d1e3a8:b8749f59:654bcca4:4f4750df

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : 7af56ae7 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

Device Role : Active device 0
Array State : AAAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdg1:
        Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
    Array UUID : 929a14c9:adaf502a:53658e03:90a19fce
        Name : tim-server:0  (local to host tim-server)
Creation Time : Wed Dec 14 11:18:57 2022
    Raid Level : raid6
Raid Devices : 6

Avail Dev Size : 7813770895 (3725.90 GiB 4000.65 GB)
    Array Size : 15627540480 (14903.58 GiB 16002.60 GB)
Used Dev Size : 7813770240 (3725.90 GiB 4000.65 GB)
    Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
        State : clean
    Device UUID : 72085967:835efe92:cb268a64:4d192b52

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 18 06:31:11 2022
Bad Block Log : 512 entries available at offset 24 sectors
    Checksum : a5623977 - correct
        Events : 26630

        Layout : left-symmetric
    Chunk Size : 512K

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

我曾经停用过 md0,因此我用 重新创建了它mdadm -A -o /dev/md0 /dev/sdb1 /dev/sdc1。现在的情况是/proc/mdstat

cat /proc/mdstat

Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (read-only) raid0 sdb1[0] sdc1[1]
  7813770240 blocks super 1.2 512k chunks

md1 : inactive sdf1[0](S) sde1[3](S) sdd1[1](S) sdg1[2](S)
    15627541790 blocks super 1.2

unused devices: <none>

如果我尝试,mount /dev/md0 /media/tmp_md_raid我会得到:mount: /media/tmp_md_raid: wrong fs type, bad option, bad superblock on /dev/md126, missing codepage or helper program, or other error.。 如果我尝试:mdadm -A -o /dev/md1 /dev/sdf1 /dev/sde1 /dev/sdd1 /dev/sdg1我会得到:

mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sde1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
mdadm: /dev/sdg1 is busy - skipping

所有 smartctl 都表示所有驱动器都正常。我不确定我应该先尝试 mdadm --assemble --force 还是先尝试 mdadm --create --assume-clean。我是否应该尝试第二个并设置 -o 以查看是否可以重新创建阵列并查看数据而不会破坏恢复?感谢您的任何建议。

答案1

看起来您有 6 个设备阵列 (AAAAAA),但只有 4 个组件设备可用 ( /dev/sd[defg]1)。容量计算证实了这一点:需要 6 个 4TB 磁盘来创建 16TB RAID6 阵列。

由于这是 RAID6,并且所有 4 个可用设备似乎都处于同步状态,因此可以运行,但只能在所谓的完全退化模式。在此模式下,要读取任何块,它需要从所有驱动器读取一个条带(这是 I/O 密集型的)并执行重建(它使用奇偶校验综合征,这涉及 CPU 密集型的伽罗瓦域计算),并且要写入一个块,它需要读取整个条带,计算新的奇偶校验综合征并写入至少三个设备(这总体上是更加 I/O 密集型的)。

如果阵列正在运行,但某个设备在使用过程中发生故障,Linux 别无选择,只能返回到此状态,这就是拥有 RAID 阵列的全部意义所在。您可能已经猜到了,此状态下的性能非常差,丢失数据的风险非常高,这就是为什么您不应该长时间在此状态下运行阵列。理想情况下,除了工作设备外,您还提供热备用设备,这样它就可以在检测到任何组件故障后立即开始重建。

但在启动过程中,它不知道某些设备是否永久丢失,或者由于交错启动或其他初始化延迟而无法使用。过早激活阵列将使较晚的设备失去同步并强制进行长时间的重新同步,在此期间,阵列将经历如上所述的最差性能特征。这促使等待较晚出现的设备。Linux 不会默认自动激活部分可用的阵列,即使有足够的设备至少在某些降级模式下运行它。

但你,作为管理员,可以力量这样做。为此,重新组装阵列--force

mdadm --stop /dev/md1
mdadm --force --assemble /dev/md1 /dev/sd[defg]1

更准确地说,如果可用的设备数量少于当前设备的超级块中记录的数量(在您的情况下,记录的是上次所有设备都可用),它将不会自动组装阵列;当您使用mdadm -f/正确删除设备时mdadm -r顺序正确移除设备或强制组装设备时,它会记录该情况,然后阵列将自动组装相同的降级状态。

如果这个数组不包含有价值的数据,最好重新创建它。初始化感觉快点而不是添加设备和遭受重建。

相关内容