当一个驱动器丢失时,raid 1 被错误地检测为 raid 0

当一个驱动器丢失时,raid 1 被错误地检测为 raid 0

我正在学习突袭,所以这也许是一些基本问题,但没有在任何地方涉及......

当我创建 raid 1、更新/etc/mdadm/mdadm.conf为[1]、运行 update-initramfs -u 时,我可以重新启动并挂载它。一切都很好。现在我移除一个驱动器并重新启动,以模拟严重故障。raid 将被错误地检测为 raid 0(为什么?)、不活动(为什么?因为我们“只有一半的 raid0?”)并且因此无法使用。我期望看到的是活动的、降级的驱动器,而不是这种致命的。出了什么问题?请参阅 [2] 了解错误状态描述。

相关问题:如果据称所有分区(即 DEVICE 变量中定义的分区)都应扫描 raid UUID,那么为什么 mdadm.conf [1] 包含devices=/dev/sdb1,/dev/sdc1该内容?那么为什么要生成此部分?它的用途是什么?为什么不改用分区 UUID?它甚至可以在这里使用吗?

[1] mdadm.conf

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 alfonz19gmail.com

MAILFROM vboxSystem

# definitions of existing MD arrays

# This configuration was auto-generated on Sun, 10 Feb 2019 09:57:56 +0100 by mkconf
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:0 UUID=16624299:11ed3af5:3a8acd02:cd24d4d0
   devices=/dev/sdb1,/dev/sdc1
root@mmucha-VirtualBox1:~# cat /etc/mdadm/mdadm.conf 

[2] 错误状态:

root@mmucha-VirtualBox1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : inactive sdb1[0](S)
      5236719 blocks super 1.2

unused devices: <none>
root@mmucha-VirtualBox1:~# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 1
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 1

              Name : mmucha-VirtualBox1:0  (local to host mmucha-VirtualBox1)
              UUID : 16624299:11ed3af5:3a8acd02:cd24d4d0
            Events : 19

    Number   Major   Minor   RaidDevice

       -       8       17        -        /dev/sdb1

UPDATE 创建步骤

我想分享一些非交互式的东西,但“sfdisk”界面和功能对我来说不起作用;当我要求它创建 gpt 磁盘标签类型并写入时,它“说”没问题,但什么也没做。嗯。很抱歉,您在这里获取的是 fdisk 命令。

描述:我为现有 VM ubuntu 18.04 创建了 2 个新磁盘,为两者设置了 gpt 分区表,为两者创建了 1 个分区,创建了 raid 1,创建了 ext4fs,挂载,创建了一些测试文件,更新了 mdadm.conf,运行 update-initramfs -u。重启,验证,成功。关机,移除 sde 驱动器,启动。同样的失败。

Ubuntu 版本:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic

fdisk:

fdisk /dev/sdd
g
n
1


t
29
p
w

印刷:

VDisk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E16A3CCE-1EF7-3D45-8AEF-A70B45B047CC

Device     Start      End  Sectors Size Type
/dev/sdd1   2048 10485726 10483679   5G Linux filesystem

/dev/sde 也一样:

Disk /dev/sde: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AEE480EE-DFA8-C245-8405-658B52C7DC0A

Device     Start      End  Sectors Size Type
/dev/sde1   2048 10485726 10483679   5G Linux filesystem

突袭创建:

mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[d-e]1

 mdadm --detail /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Feb 21 08:54:50 2019
        Raid Level : raid1
        Array Size : 5236672 (4.99 GiB 5.36 GB)
     Used Dev Size : 5236672 (4.99 GiB 5.36 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Feb 21 08:55:16 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : mmucha-VirtualBox1:1  (local to host mmucha-VirtualBox1)
              UUID : 1c873dd9:87220378:fc4de07a:99db62ae
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       65        1      active sync   /dev/sde1

格式化和安装:

mkfs.ext4 /dev/md1 
mkdir /media/raid1
mount /dev/md1 /media/raid1/

mdadm --detail --scan --verbose >> /etc/mdadm.conf

update-initramfs -u

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 alfonz19gmail.com

MAILFROM vboxSystem

# definitions of existing MD arrays

# This configuration was auto-generated on Sun, 10 Feb 2019 09:57:56 +0100 by mkconf
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:0 UUID=16624299:11ed3af5:3a8acd02:cd24d4d0
   devices=/dev/sdb1,/dev/sdc1
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:1 UUID=1c873dd9:87220378:fc4de07a:99db62ae
   devices=/dev/sdd1,/dev/sde1

就是这样。如前所述,如果您现在移除 1 个硬盘,您将无法安装 raid:

sudo mdadm --detail /dev/md1
/dev/md1:
           Version : 1.2
        Raid Level : raid0
     Total Devices : 1
       Persistence : Superblock is persistent

             State : inactive
   Working Devices : 1

              Name : mmucha-VirtualBox1:1  (local to host mmucha-VirtualBox1)
              UUID : 1c873dd9:87220378:fc4de07a:99db62ae
            Events : 23

    Number   Major   Minor   RaidDevice

       -       8       49        -        /dev/sdd1

更新 2:我在 arch 上测试了相同的命令(减去 update-initramfs -u),它正常工作,没有出现任何问题。我重新启动到 ubuntu VM,其中我有 2 组 1 级 2 驱动器 raid。我再次移除了一个驱动器,它工作正常:干净降级。自上次以来我甚至没有运行过该 VM。好的,然后我从另一组中移除了一个驱动器。所以现在我应该在 md0 和 md1 上有 2 个干净降级的驱动器。但我在 md0 和 md127 上有 2 个干净降级的驱动器。但我知道这一点,所以我知道我必须停止 md127,运行mdadm --assemble --scan以将其恢复到 md1,运行update-initramfs -u,重启后它应该很好。但令人惊讶的是它不是。我有预期的 md0 和 md1,但每组都缺少 1 个驱动器,而 1 个处于状态clean degraded,另一个处于inactive不良级别。但停止并重新组装再次解决了这个问题。所有这些都发生在没有修改 mdadm.conf 的情况下。

这是很深奥的魔法。

答案1

我也遇到了同样的问题突袭1阵列报告为raid0。不知道为什么,但这帮我解决了这个问题

mdadm --stop /dev/md0
mdadm --assemble /dev/md0 --run

编辑:我没有尝试在降级状态下重新启动。使用上述命令启动阵列后。我将备份磁盘添加到阵列中

mdadm --manage /dev/md0 --add /dev/sdX

md0开始重新同步。之后我的电脑重启正常。

我想你的情况需要添加一些内容 配置文件 文件。我会尝试将级别添加到数组中,例如

ARRAY /dev/md0 level=raid1 ...

答案2

你肯定做错了什么。从头开始尝试该过程并发送你执行的所有步骤。它一定有效。

相关内容