我利用 成功创建了 RAID(镜像)mdadm
。但是,每次启动后我都必须运行以下命令:
mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0
我做错了什么/为什么我需要在启动时运行这些命令?每次(重新)启动时自动启动 RAID 的正确方法是什么?
答案1
注意:您需要以 root 身份登录,或者使用须藤做到这一切……
- 使用您最喜欢的编辑器创建或编辑/etc/mdadm/mdadm.conf文件如下:
如果该文件不存在,请将以下内容粘贴到新的空文件中:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
保存文件
运行以下命令在文件末尾添加对数组配置的引用:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
这会在 mdadm.conf 末尾添加如下一行:
数组 /dev/md0 级别=raid5 设备数量=3 元数据=00.90 UUID=a44a52e4:0211e47f:f15bce44:817d167c
如果 mdadm 命令在 ARRAY 行上方添加了任何其他内容,请将其删除。例如,在我的其中一台机器上,该命令在 ARRAY 行之前返回“mdadm:元数据格式 00.90 未知,已忽略。”。
您的阵列现在应该在启动时自动构建,因此您可以向 /etc/fstab 添加一个条目来挂载它(如果它还不存在)
答案2
我意识到这是一个老问题,但是我在 32 位版本的 Ubuntu Server 12.04 上遇到了这个问题,非常沮丧。
运行mdadm --detail --scan >> /etc/mdadm/mdadm.conf
附加行
数组 /dev/md0 元数据=1.2 名称=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e
重启后,我再也看不到 /dev/md0 了。mdadm --detail --scan
再次运行(不将结果放入文件中),我会看到
数组 /dev/md/ubuntu:0 元数据=1.2 名称=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e
并且手动挂载/dev/md/ubuntu:0
可以正常工作。最后,我也将其放入了 fstab 文件中。
我不确定我哪里做错了,在 Ubuntu 12.04 中是否就是这样工作的,或者这是否是一种不好的做法。只是想分享对我有用的方法。
答案3
我在运行 Raspbian GNU/Linux 8 (jessie) 的 Raspberry Pi 2 上遇到了这个问题。我有一个 RAID 阵列/dev/sda1
,但/dev/sdb1
在启动时无法组装。我的/etc/mdadm/mdadm.conf
文件中有条目
ARRAY /dev/md/0 metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0
(您的数字将会有所不同;请参阅其他答案以了解如何获取此数字。)
我的/etc/fstab
档案里有
/dev/md0 /data ext4 defaults 0 0
(当然/data
确实存在)
与 OP 一样,我可以在启动后手动组装和安装 RAID 阵列,但尽管设置正确,我却无法让它在启动期间自动发生。
我能够按照以下方法解决问题。我调查了脚本/etc/init.d/mdadm-raid
并插入了一行调试代码
ls /dev > /home/pi/devices.txt
重新启动并检查此文件后,我发现初始化时设备/dev/sda
和存在,但分区和丢失。我编辑了文件并插入了以下行/dev/sdb
mdadm-raid
/dev/sda1
/dev/sdb1
/etc/init.d/mdadm-raid
partprobe
在标题之后(即在### END INIT INFO
脚本开始之前)。这导致分区被检测到,因此脚本mdadm-raid
能够组装 RAID 阵列,从而解决问题。希望这对某些人有帮助!
答案4
sudo mdadm -Es >> /etc/mdadm/mdadm.conf
现在按以下方式编辑添加到 /etc/mdadm/mdadm.conf 的行。删除所有内容,但保留基本部分。它应该看起来像
ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643
注意:您可以根据自己的方便在 mdX 中选择 X。
现在重启
sudo update-initramfs -u
sudo reboot
编辑:命令已更正。