![当一个驱动器丢失时,raid 1 被错误地检测为 raid 0](https://linux22.com/image/1582453/%E5%BD%93%E4%B8%80%E4%B8%AA%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%A2%E5%A4%B1%E6%97%B6%EF%BC%8Craid%201%20%E8%A2%AB%E9%94%99%E8%AF%AF%E5%9C%B0%E6%A3%80%E6%B5%8B%E4%B8%BA%20raid%200.png)
我正在学习突袭,所以这也许是一些基本问题,但没有在任何地方涉及......
当我创建 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
你肯定做错了什么。从头开始尝试该过程并发送你执行的所有步骤。它一定有效。