解决方案

解决方案

问题

我创建了一个 RAID 1 配置,将其命名为 /dev/md1,但是当我重新启动时,该名称始终更改为 /dev/md127

答案1

解决方案

我找不到具有已创建的 RAID 1 配置的解决方案,因此请备份您的数据,因为对于此解决方案,我将告诉您需要先删除 RAID 1。实际上,我只是删除了正在使用的虚拟机并创建了一个新虚拟机。
所以这将适用于 Debian 10,并且适用于干净的机器

创建一个新的干净的 raid1 配置

在我的例子中,我有 3 个虚拟磁盘,所以我运行这样的命令(请记住,首先您需要创建相同大小的分区并类型为 Linux raid 自动检测)

sudo mdadm --create /dev/md1 --level=mirror --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

编辑 mdadm.conf

转到文件/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

在前一个文件中添加对数组的引用

以 root 身份登录并执行此操作

sudo mdadm --detail --scan >> /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
ARRAY /dev/md1 metadata=1.2 name=buster:1 UUID=1279dbd2:d0acbb4f:0b34e3e1:3de1b3af

ARRAY /dev/md1metadata=1.2 name=buster:1 UUID=1279dbd2:d0acbb4f:0b34e3e1:3de1b3af (这是引用数组的新行)

如果该命令在 ARRAY 行之前添加了某些内容,请将其删除。

万一

跑步sudo update-initramfs -u

永久挂载您的 raid 的一个分区

安装它是可选的,但我认为这将需要使用 RAID1 的存储。

  1. 获取分区的 UUIDsudo blkid
  2. /etc/fstab使用这一行新代码进行编辑,UUID=d367f4ed-2b37-4967-971a-13d9129fff4f /home/vagrant/raid1 ext3 defaults 0 2 将 UUID 替换为您在分区中获得的 UUID,将文件系统替换为您在分区中获得的文件系统

我现在的内容/etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/vda1 during installation
UUID=b9ffc3d1-86b2-4a2c-a8be-f2b2f4aa4cb5 /               ext4    errors=remount-ro 0       1
# swap was on /dev/vda5 during installation
UUID=f8f6d279-1b63-4310-a668-cb468c9091d8 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
UUID=d367f4ed-2b37-4967-971a-13d9129fff4f /home/vagrant/raid1 ext3 defaults  0      2

UUID=d367f4ed-2b37-4967-971a-13d9129fff4f /home/vagrant/raid1 ext3 defaults 0 2 (这里你可以清楚地看到我添加的行)

现在您可以重新启动

现在这个名字不会改变。
如果我运行sudo fdisk -l我会得到这个(我将只显示相关信息)

Disk /dev/md1: 1022 MiB, 1071644672 bytes, 2093056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x37b2765e

Device     Boot Start     End Sectors  Size Id Type
/dev/md1p1       2048 2093055 2091008 1021M 83 Linux

如果我跑步df -Th我会得到

Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  227M     0  227M   0% /dev
tmpfs          tmpfs      49M  3.4M   46M   7% /run
/dev/sda1      ext4       19G  4.1G   14G  24% /
tmpfs          tmpfs     242M     0  242M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     242M     0  242M   0% /sys/fs/cgroup
/dev/md1p1     ext3      989M  1.3M  937M   1% /home/vagrant/raid1
tmpfs          tmpfs      49M     0   49M   0% /run/user/1000

你看那也已经挂载了。最后,如果我跑步cat /proc/mdstat,我会得到

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 sdd1[2] sdc1[1] sdb1[0]
      1046528 blocks super 1.2 [3/3] [UUU]

unused devices: <none>

raid1 正在与 sdb1、sdc1 和 sdd1 一起工作。
现在就完成了!您可以重新启动,您的团队名称将永远保留。

我使用的所有资源,以便我找到适合我的解决方案

https://superuser.com/questions/287462/how-can-i-make-mdadm-auto-assemble-raid-after-each-boot
https://ubuntuforums.org/showthread.php?t=2265120
https://askubuntu.com/questions/63980/how-do-i-rename-an-mdadm-raid-array
https://serverfault.com/questions/267480/how-do-i-rename-an-mdadm-raid-array
https://bugzilla.redhat.com/show_bug.cgi?id=606481

有些比其他解决方案更适合此解决方案,但是他们全部帮助我找到了这个解决方案。
哇,你读了很多书不是吗?现在您的问题已经解决了,您可以放心了,希望这对您有所帮助!再见!

答案2

对于 Debian 11 系统,需要做的就是:

  1. mdadm --detail --scan /dev/md127 >> /etc/mdadm/mdadm.conf

  2. vim /etc/mdadm/mdadm.conf,将附加行编辑为如下所示:

    ARRAY /dev/md0 元数据=1.2 UUID=XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX

换句话说,移除该name部件,然后将设备设置为/dev/md0

  1. update-initramfs -u

  2. 重启

答案3

如果 mdadm 检测到该数组是“外部”数组,而不是“本地”数组,则可能会发生这种情况。外部阵列将被分配从 md127 开始(向下)的设备节点。本地阵列被分配从 md0 开始(并向上)的设备节点。

mdadm 确定阵列是本地还是外部的一种方法是将阵列上记录的“homehost”名称与当前主机名进行比较。我发现在启动期间,主机名在 mdadm 运行时尚未正确配置的情况并不罕见(因为 init 系统尚未到达根据 / 的内容设置主机名的 init 脚本)等/主机名)。因此,当 mdadm 查询主机名时,它会获取“localhost”或“(none)”或编译到内核中的任何默认主机名。该默认名称与阵列上记录的“homehost”不匹配,因此 mdadm 将其视为外部阵列。

可以通过确保在运行 mdadm 来组装阵列之前设置计算机的主机名来解决此问题。

答案4

我删除了“/etc/mdadm/mdadm.conf”中的数组,运行下一个命令

sudo update-initramfs -u

然后重新启动系统。比添加数组

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

打开/etc/mdadm/mdadm.conf并将其更改为

ARRAY /dev/md/0 metadata=1.2 name=raspberrypi-nas:0 UUID=86275e90:a19b3601:fc78b0d8:57f9c56a
ARRAY /dev/md/1 metadata=1.2 name=raspberrypi:1 UUID=e8f0c48c:448321f6:1db0f830:ea39bc42

就像我也想要的那样,奔跑吧

sudo update-initramfs -u

并重新启动系统。现在一切都按方面进行了。

相关内容