我最近安装了一台新的 Debian 9(“stretch”)机器。
最初它有 2 个驱动器。我使用 Debian 安装程序将它们配置为 RAID1,它给了我/dev/md0
一个
/etc/mdadm/mdadm.conf:
含有
# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 UUID=3d21d0e0:2758c58e:962b5191:98e225c1 name=MYHOSTNAME:0
并/proc/mdstat
显示:
md0 : active raid1 sda1[0] sdb1[1]
488253440 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk
该设备我在 ) 中格式化为ext4
并通过 UUID 作为“/”安装/etc/fstab
。一切正常,正如预期的那样。
后来我添加了几个更大的驱动器。对它们进行分区(每个分区上首先有一个小的交换分区)并使用它们进行配置mdadm -C -n 2 -l raid1 /dev/md1 /dev/sdc2 /dev/sdd2
(这绝对是我所做的,因为它仍然在我的 root 的 shell 历史记录中,以及几个后续的mdadm --examine /dev/md1
和mdadm --detail --verbose /dev/md1
)。
我还添加了一行/etc/mdadm/mdadm.conf
(仅遵循初始设备的模式):
ARRAY /dev/md/1 metadata=1.2 UUID=47492bd7:08d1fd1c:418dad41:2aa7d77f name=MYHOSTNAME:1
当然,我ext4
格式化了设备并添加了一个 UUID 条目以/etc/fstab
将其安装在我选择的/data
安装点上。
这一切似乎都工作正常,并且在机器多次重新启动后,我很高兴对新磁盘进行大量的 rsync。
然而今天我碰巧看了一眼 etc/mtab 和 /proc/mdstat,我注意到我的 /dev/md1 似乎已经消失并变成了 /dev/md127 (在 /proc/mdstat 中)和/或 /dev/md127p1在 /etc/mtab 中:
/proc/mdstat:
显示:
md127 : active raid1 sdc2[0] sdd2[1]
3904788480 blocks super 1.2 [2/2] [UU]
bitmap: 2/30 pages [8KB], 65536KB chunk
md0 : active raid1 sda1[0] sdb1[1]
488253440 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk
和
/etc/mtab:
显示:
/dev/md0 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
/dev/md127p1 /data ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
一切似乎仍然运转良好,但到底发生了什么?我之前(诚然是很多年前)在其他几台机器上以几乎相同的方式配置了 RAID1,并且 RAID 阵列最终被称为/dev/md0
和/dev/md1
。这是从哪里来的,和127
之间有什么区别?有什么方法可以将它们重命名为,或者这是我所坚持的?/dev/md127
/dev/md127p1
/dev/md1
答案1
使用以下命令确保您正在处理正确的 UUID:
mdadm --detail /dev/md* | grep -e /dev/md -e UUID
编辑您的数组列表,如果不确定,您可以使用 nano:
nano /etc/mdadm/mdadm.conf
让它包含你想要的数组的 UUID;或仔细检查它:
ARRAY /dev/md/0 metadata=1.2 name=MYHOSTNAME:0 UUID=3d21d0e0:2758c58e:962b5191:98e225c1 ARRAY /dev/md/1 metadata=1.2 name=MYHOSTNAME:1 UUID=47492bd7:08d1fd1c:418dad41:2aa7d77f
按您的喜好命名您的数组。
使用以下命令确保您正在挂载正确的文件系统:
blkid /dev/md*
以
/etc/fstab
这种方式包含这些:UUID=...
我怀疑您可能错过的最重要的一步是更新您的
initramfs
:update-initramfs -u
应该是这样。我自己在同一系统上也遇到了完全相同的问题。如果我错过了某个步骤或忘记了某些内容,请发表评论,我将在明天早上编辑此答案。
问答:
这个127是哪里来的?
由于您忘记更新您的initramfs
,因此在启动过程中系统不知道您的新阵列,并且默认情况下从末尾开始命名(127)。
/dev/md127
和 和有什么区别/dev/md127p1
?
/dev/md127
是数组的名称/dev/md127p1
是阵列上分区的名称
OP补充信息:
如上所述,这update-initramfs -u
似乎确实至关重要!然而,事实证明还可以进行更多的调整,我将在这里编辑,而不是在不同的答案或评论中:
经过上述步骤后,我有了/dev/md0
和/dev/md1p1
。奇怪的是,查看 /proc/partitions 我可以看到/dev/md1
和A /dev/md1p1
。一些谷歌搜索让我怀疑这与 /proc/mdstat.conf 中描述的默认行为有关:
# 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
并且确实添加了一个非- 注释掉的行
DEVICE partitions
意味着我刚刚/dev/md0
在/dev/md1
下次重新启动后。
(看看一些带有 mdadm raid 的旧 Debian 机器,我发现它们也都有明确的DEVICE partitions
线路,而且我从来没有故意使用或想要使用 mdadm 的“容器”概念)