这是超级用户论坛上问题的重复:https://superuser.com/questions/1404338/raid-1-badly-detected-as-raid-0-when-one-drive-is-missing
我希望这里的某个人可能知道该怎么做,因为这是一个 Ubuntu 论坛,并且这个问题影响着 ubuntu 的安装。
我在 VirtualBox VM 上安装了 Ubuntu 18.04.2(KVM VM 也存在此问题)。我创建了一个包含两个磁盘的软件 RAID 1。当我移除其中一个磁盘时,系统错误地将 RAID 设置检测为 RAID 0。
ubuntu@ubuntu:~$ sudo mdadm -D /dev/md0
[sudo] password for ubuntu:
/dev/md0:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : ubuntu:0 (local to host ubuntu)
UUID : 08ad8f87:f1e25c0a:b8058a10:d1886a27
Events : 72
Number Major Minor RaidDevice
- 8 17 - /dev/sdb1
目前解决这个问题的方法是使用 bash 脚本检测它并运行以下命令:
sudo mdadm --stop /dev/md0
sudo mdadm --assemble --scan
之后,它似乎处于预期状态,即 RAID 1 设置中缺少一个磁盘:
ubuntu@ubuntu:~$ sudo mdadm -D /dev/md0
[sudo] password for ubuntu:
/dev/md0:
Version : 1.2
Creation Time : Tue May 7 11:11:05 2019
Raid Level : raid1
Array Size : 10475456 (9.99 GiB 10.73 GB)
Used Dev Size : 10475456 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Tue May 7 13:41:08 2019
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : ubuntu:0 (local to host ubuntu)
UUID : 08ad8f87:f1e25c0a:b8058a10:d1886a27
Events : 39
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
- 0 0 1 removed
只要我没有用一个磁盘重新组装 RAID 1,我就可以重新连接丢失的磁盘,一切就可以正常启动。如果我用一个磁盘重新组装了 RAID 1,那么我需要运行:
sudo mdadm --manage /dev/md0 --add /dev/sdc1
然后,新磁盘将与正在工作的 RAID 1 磁盘同步,并且我将再次拥有一个完全组装的 RAID 1 阵列。
那么问题是为什么只有一个磁盘的 RAID 1 会被检测为 RAID 0?我是否缺少配置?
答案1
一位同事提出了一个很好的解决方案。基本上就是创建一个在启动时运行的 systemd 服务,并确保 madadm 启动 RAID 阵列。启动阵列的命令是:
/sbin/mdadm --manage --run /dev/md127
在良好的 RAID 阵列上,此命令不会执行任何操作,因为 RAID 已启动。在不良阵列上,此命令将在 RAID 安装前启动 RAID。