从 Ubuntu mdadm RAID 中删除磁盘会将阵列标记为非活动状态,而不是降级

从 Ubuntu mdadm RAID 中删除磁盘会将阵列标记为非活动状态,而不是降级

我在 VirtualBox 下的 Ubuntu 14.10 上设置 mdadm raid 1 阵列。一切正常:

The raid 1 is set up with /dev/sdc1 and /dev/sdd1:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdd1[2] sdc1[0]
      1045952 blocks super 1.2 [2/2] [UU]

unused devices: <none>

但是,如果我拔掉其中一个磁盘(例如 /dev/sdb),我将获得以下结果:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdc1[2](S)
      1046016 blocks super 1.2

unused devices: <none>

这不是我所期望的...我期望的是降级的 Raid 1 阵列,而不是非活动阵列。我做错了什么?

我的 mdadm.conf 列出的数组如下:

# definitions of existing MD arrays
ARRAY /dev/md/0  level=raid1 num-devices=2 devices=/dev/sdc1,/dev/sdd1 metadata=1.2 UUID=ffa72d1e:a18e2f76:2d336ad8:5f01069b name=ubuntu:0

答案1

首先,感谢 archbishop 为我指明了正确的方向。诀窍是停止阵列(即使它已经处于非活动状态),然后允许组装/运行完成。

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

显而易见的是,最后一步是重新安装阵列。

sudo mount -a

答案2

mdadm(8) 说:

如果 mdadm 找不到阵列的所有组件,它将组装阵列但不激活它,除非给出 --run 或 --scan。要保留此行为(即使使用 --scan),请添加 --no-degraded。请注意,“所有组件”是指超级块中记录的阵列上次运行时存在的组件数量。如果阵列已降级,并且丢失的设备不是新问题,它仍将被组装。只有新丢失的设备才会导致阵列无法启动。

如果你只是想让镜像运行,请尝试

mdadm --assemble /dev/md0 --run

这应该会让你进入降级模式。

相关内容