我必须在 Ubuntu 服务器 12.04 上设置软件 raid(level1)。它应通过 Samba 提供网络中的文件。该服务器具有以下磁盘:
- 250gb Sata hdd(Ubuntu 安装在该驱动器上)
- 2 TB Sata 硬盘(RAID 阵列中的第一个磁盘,数据磁盘)
- 2 TB Sata 硬盘(第二个数据磁盘)
我在每个数据磁盘上创建了一个分区,类型为 Linux raid autodetect。在第二步中,我使用以下命令创建了 raid1:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
之后,我将数组添加到 mdconf:
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
问题是:重启后,阵列在路径 /dev/md0 上不可用。相反,它会被重新组装为 /dev/md/0,但这不太可靠。有人能解决这个问题吗?
答案1
我记得 md0 一直作为不同的设备名称出现。
答案是在设置 mdmadm.conf 后,运行update-initramfs -u
它,基本上将 mdmadm.conf 复制到初始 ramdisk,以便它在下次重启后可以工作。
答案2
检查一下/etc/mdadm/mdadm.conf
该文件中应指定的设备。您可以更改该文件,使 raid 卷以不同的方式出现。您可能会看到一行类似于以下内容的内容。
ARRAY /dev/md/0 metadata=1.2 UUID=7d2bf7e5:dc6edd5c:3ca12e46:8c9e5d4b
这意味着 mdadmin 设备/dev/md/0
将由所有具有 RAID 元数据将其标识为 的设备组成UUID=7d2bf7e5:dc6edd5c:3ca12e46:8c9e5d4b
。
只要您不更改 mdadm.conf,该 RAID 卷几乎总是会这样/dev/md/0
。 在我见过的任何发行版中它都不会发生不可预测的变化。
使用较新的 1.2 元数据,您还可以为 RAID 卷分配逻辑名称。
因此,在我的系统上,我为卷设置了一个名称,并像这样配置了我的 mdadm.conf。在我看来,这些逻辑名称使卷更易于移植到其他系统,而且由于此名称作为元数据的一部分存储,因此如果为阵列分配有意义的名称,则更容易识别内容。
ARRAY name=zoredache:3tb-r1-vol1
ARRAY name=zoredache:3tb-r1-vol2
设备显示为/dev/md/3tb-r1-vol1
、 和/dev/md/3tb-r1-vol2
。