我使用以下设备创建了 RAID:
sudo mdadm --create --verbose /dev/md1 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
sudo mdadm --create --verbose /dev/md2 --level=mirror --raid-devices=2 /dev/sdb2 /dev/sdc2
sudo mdadm --detail --scan
返回:
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
我将其附加到/etc/mdadm/mdadm.conf
,如下所示:
# mdadm.conf
#
# 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
# 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
# This file was auto-generated on Mon, 29 Oct 2012 16:06:12 -0500
# by mkconf $Id$
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
cat /proc/mdstat
返回:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb2[0] sdc2[1]
208629632 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdb1[0] sdc1[1]
767868736 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ls -la /dev | grep md
返回:
brw-rw---- 1 root disk 9, 1 Oct 30 11:06 md1
brw-rw---- 1 root disk 9, 2 Oct 30 11:06 md2
所以我认为一切都很好并且我重新启动了。
重启后,/dev/md1 现在是/dev/md126/dev/md2 现在是/dev/md127??????
sudo mdadm --detail --scan
返回:
ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
cat /proc/mdstat
返回:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 sdc2[1] sdb2[0]
208629632 blocks super 1.2 [2/2] [UU]
md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
767868736 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ls -la /dev | grep md
返回:
drwxr-xr-x 2 root root 80 Oct 30 11:18 md
brw-rw---- 1 root disk 9, 126 Oct 30 11:18 md126
brw-rw---- 1 root disk 9, 127 Oct 30 11:18 md127
一切还没有失去,我:
sudo mdadm --stop /dev/md126
sudo mdadm --stop /dev/md127
sudo mdadm --assemble --verbose /dev/md1 /dev/sdb1 /dev/sdc1
sudo mdadm --assemble --verbose /dev/md2 /dev/sdb2 /dev/sdc2
并验证一切:
sudo mdadm --detail --scan
返回:
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
cat /proc/mdstat
返回:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdb2[0] sdc2[1]
208629632 blocks super 1.2 [2/2] [UU]
md1 : active raid1 sdb1[0] sdc1[1]
767868736 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ls -la /dev | grep md
返回:
brw-rw---- 1 root disk 9, 1 Oct 30 11:26 md1
brw-rw---- 1 root disk 9, 2 Oct 30 11:26 md2
因此,我再次认为一切都很好,然后我重新启动。
再次重启后,/dev/md1/dev/md126并且 /dev/md2 是/dev/md127??????
sudo mdadm --detail --scan
返回:
ARRAY /dev/md/ion:1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md/ion:2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
cat /proc/mdstat
返回:
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126 : active raid1 sdc2[1] sdb2[0]
208629632 blocks super 1.2 [2/2] [UU]
md127 : active (auto-read-only) raid1 sdb1[0] sdc1[1]
767868736 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ls -la /dev | grep md
返回:
drwxr-xr-x 2 root root 80 Oct 30 11:42 md
brw-rw---- 1 root disk 9, 126 Oct 30 11:42 md126
brw-rw---- 1 root disk 9, 127 Oct 30 11:42 md127
我在这里遗漏了什么?
答案1
我在这里找到了答案,RAID 从 md127 开始,而不是从 md0 开始简而言之,我从以下内容中删除了 /etc/mdadm/mdadm.conf 定义:
ARRAY /dev/md1 metadata=1.2 name=ion:1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 metadata=1.2 name=ion:2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
到:
ARRAY /dev/md1 UUID=aa1f85b0:a2391657:cfd38029:772c560e
ARRAY /dev/md2 UUID=528e5385:e61eaa4c:1db2dba7:44b556fb
并运行:
sudo update-initramfs -u
我是远的来自一位专家的介绍,但我的理解是这样的......
内核在正常组装阵列时间之前组装了阵列。内核组装阵列时不使用 mdadm.conf。由于分区已由内核组装,因此跳过了使用 mdadm.conf 的正常阵列组装。
调用sudo update-initramfs -u
告诉内核再次查看系统以确定如何启动。
我相信拥有更多知识的人会纠正我/详细说明这一点。
使用以下行来更新系统上存在的每个相应内核的 initrd:
sudo update-initramfs -k all -u
答案2
sudo update-initramfs -u
就是我所需要的全部修复方法。我没有在 /etc/mdadm/mdadm.conf 中编辑任何内容。
答案3
我遇到过同样的问题。
这个解决方案解决了我的问题: http://aubreykloppers.wordpress.com/2012/07/06/mdadm-devmd127/
答案4
我设法通过以下方式复制了该问题:
当“软件更新程序”询问我是否要更新软件包(包括“Ubuntu 基础”和内核)时,我说:好的。新安装的内核使用当前内核/系统的设置。然后我创建了阵列。只有当前运行的内核使用新的 RAID 设置进行更新。一旦我重新启动,新内核对 raid 一无所知,并给它一个 md127 名称!