如何对软件 RAID 进行分区

如何对软件 RAID 进行分区

我想在 debianstretch 上创建的软件 RAID 5 上创建第二个分区。

为了创建它,我使用了mdadm --create /dev/md0 --auto md --level=5 --raid-devices=4 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sdb1.分区具有 GPT 标签,并被标记为用于 RAID。

mdadm(8) 联机帮助页说

在 2.6.28 版本之前的 Linux 内核中,可以创建两种截然不同类型的 md 设备:一种可以使用标准分区工具进行分区,另一种则不能。从 2.6.28 开始,这种区别不再相关,因为两种类型的设备都可以分区。 mdadm 通常会创建最初无法分区的类型,因为它具有明确定义的主编号 (9)。

我想我需要创建一个 udev 规则或类似的东西来获得第二个分区,但找不到关于如何执行此操作的详细文档,只是说这是可能的。

我最终想在 RAID 和 fs 层之间创建一个 LVM 层,但文件系统已经填充了大约 40%,而且我没有足够的额外存储空间来将数据保存在其他地方。因此,我想在收缩文件系统后创建第二个分区,将数据从现有分区复制到新分区,删除旧分区,创建 LVM 层,将数据移回并在整个 RAID 上扩展 LVM 层。

答案1

您可能想要研究与设备映射器多路径相关的 udev 规则以及该kpartx工具。在多路径设备上,kpartx如果多路径磁盘包含分区表,则用于在多路径映射之上创建更多设备映射。

kpartx本质上与多路径没有联系:它应该能够在任何类似磁盘的设备上运行,可能包括/dev/md*RAID 设备。

因此,例如/dev/md0,相应的分区映射将被命名,/dev/mapper/md0pN其中 N 是分区号。

相关内容