我在 2 个扩展器上构建软件 raid 时遇到了问题,磁盘加载为 JBOD。每次重新启动服务器后,虚拟驱动器的命名都会发生变化,而且阵列编号和逻辑也会分散。例如:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdu 65:64 0 2.7T 0 disk
└─md112 9:112 0 8.2T 0 raid5
└─md104 9:104 0 24.6T 0 raid0
sdv 65:80 0 2.7T 0 disk
└─md127 9:127 0 8.2T 0 raid5
└─md105 9:105 0 24.6T 0 raid0
sdw 65:96 0 2.7T 0 disk
└─md108 9:108 0 8.2T 0 raid5
└─md105 9:105 0 24.6T 0 raid0
sdx 65:112 0 2.7T 0 disk
└─md122 9:122 0 8.2T 0 raid5
└─md102 9:102 0 24.6T 0 raid0
重启会变成,下次重启会变成其他内容:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdu 65:64 0 2.7T 0 disk
└─md115 9:115 0 8.2T 0 raid5
└─md104 9:104 0 24.6T 0 raid0
sdv 65:80 0 2.7T 0 disk
└─md115 9:115 0 8.2T 0 raid5
└─md104 9:104 0 24.6T 0 raid0
sdw 65:96 0 2.7T 0 disk
└─md115 9:115 0 8.2T 0 raid5
└─md104 9:104 0 24.6T 0 raid0
sdx 65:112 0 2.7T 0 disk
└─md115 9:115 0 8.2T 0 raid5
└─md104 9:104 0 24.6T 0 raid0
最初,名称仅到 md28(简单线性化为 md0 系统磁盘、md1-19 raid5 卷、md22-28 raid0 和 raid 5 卷)
我不知道为什么我现在每次都会得到不同的 md 命名,甚至阵列使用的磁盘也与我配置的磁盘不同,上面是它如何变化的示例,这里我给出了如何构建这个 RAID5 阵列的示例,据称构建
mdadm --create /dev/md6 -v --raid-devices=4 --level=5 /dev/sd[uvwx]
mdadm --create /dev/md23 -v --raid-devices=3 --level=0 /dev/md4 /dev/md5 /dev/md6
/等待恢复完成
mkfs.ext4 -F /dev/md23
mkdir -p /mnt/md23
mount /dev/md23 /mnt/md23
df -h -x devtmpfs -x tmpfs
-此处,在重启之前,我发现一切都正常且已安装,其他所有已配置的磁盘也一样。然后我重启了……
不确定这里发生了什么,可能是控制器/linux 疯了,总是将磁盘重命名为 sdXX,但 mdadm 无论如何都试图保持配置相同,可能是基于 UUID 或其他什么?
或者,如果可能或更好的话,我是否应该在构建时以某种方式使用 UUID?这建议这样做,但在不同的上下文中 mdadm:通过 UUID 配置磁盘 我没有预料到这一点,实际上我很确定 sdXX 命名应该足够了。但当控制器/扩展器和 jbod 到位时可能就不够了 :/
答案1
所以基本上我的答案似乎在我发表在评论中的这个帖子里 https://superuser.com/questions/287462/how-can-i-make-mdadm-auto-assemble-raid-after-each-boot + update-initramfs -u 但要小心,我设法在 mdadm.conf 中创建了 md0 重复,并卡在 initramfs 中,我在那里将其删除。
但问题仍然存在,直到我清除 mdadm.conf 并运行
root@debian:~# mdadm -Es >> /etc/mdadm/mdadm.conf
root@debian:~# update-initramfs -u -v