为什么我创建时的 /dev/md1 现在显然被称为 /dev/md127 或 /dev/md127p1?

为什么我创建时的 /dev/md1 现在显然被称为 /dev/md127 或 /dev/md127p1?

我最近安装了一台新的 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/md1mdadm --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

  1. 使用以下命令确保您正在处理正确的 UUID:

    mdadm --detail /dev/md* | grep -e /dev/md -e UUID
    
  2. 编辑您的数组列表,如果不确定,您可以使用 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
    

    按您的喜好命名您的数组。

  3. 使用以下命令确保您正在挂载正确的文件系统:

    blkid /dev/md*
    

    /etc/fstab这种方式包含这些:

    UUID=...
    
  4. 我怀疑您可能错过的最重要的一步是更新您的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 的“容器”概念)

相关内容