如何使用 2 种不同大小的 4 个磁盘创建 LVM RAID 1?

如何使用 2 种不同大小的 4 个磁盘创建 LVM RAID 1?

我有一个系统

2 x 1TB (NVMe SSDs)
2 x 2TB (SATA SSDs)

磁盘,并希望使用所有可用磁盘创建 RAID 1 系统(因此我最后有一个 3TB 的 RAID1 系统)。不幸的是,大多数关于如何设置的示例都只针对两个磁盘。

这里推荐的方法是什么?

  • 为每种磁盘大小创建 RAID1,即镜像相同类型的磁盘,然后在其上创建一个大的逻辑卷?
  • 或者还有其他更聪明的方法吗?

如果有人有一步一步的食谱(或者一个很好的链接),那将非常感激。

另外,我需要单独的系统或启动分区吗?

谢谢。

答案1

这在很大程度上取决于您的目标,因为 NVMe 与 SATA SSD 的速度和延迟有很大差异。

就我个人而言,我会创建两组不同的 LVM 卷组 (VG)。一组用于 NVMe,另一组用于 SSD,并手动为它们分配不同的任务。例如,NVMe 用于 IO 密集型任务,如 DB,SSD 用于更通用的存储。当然,您可以将它们组合成一个 VG,但这样基本上就是在“减慢”NVMe 到 SATA 的速度。嗯……不是真的,但差不多。

至于启动 - 如果您有 EFI 模式系统和现代引导加载程序(即 GRUB2),则需要一个单独的小尺寸(256-512Mb 就足够了)分区用于 FAT32 类型的 EFI 文件。但至少 EFI 系统可以直接从 NVMe 启动,而 GRUB2 可以直接从 Linux RAID + LVM 启动。

  1. 在两个 NVMe 驱动器上创建第一个分区(即fdisk),大小约为 256-512 Mb。将其类型设置为 EFI 启动。
  2. 为剩余空间创建第二个分区,分配 100%。将其类型设置为 Linux RAID。
  3. 将第一个 EFI 分区格式化为 FAT32(即mkfs.vfat -F32 /dev/nvme0n1p1)。
  4. 如果您希望在两个 NVMe 都发生故障或只有一个 Linux RAID 分区用于存储数据的情况下使 SSD 驱动器可启动,则可以对 SSD 驱动器执行相同的操作。
  5. 为 NVMe 创建第一个 RAID 阵列:mdadm --create /dev/md1 -l 1 -n 2 -b internal /dev/nvme0n1p2 /dev/nvme1n1p2
  6. 为 SSD 成员创建第二个 RAID 阵列:(mdadm --create /dev/md2 -l 1 -n 2 /dev/sda2 /dev/sdb2如果您已经在那里创建了 EFI 分区,如果没有,则只创建 sda1/sdb1)。
  7. 从新创建的阵列中创建 LVM PV pvcreate /dev/md1 && pvcreate /dev/md2:。
  8. 在 PV 之上创建 VG 和 LV。如果您仍想合并它们,请创建 2 个 PV,然后将两者添加到同一个 VG。
  9. 确保安装 EFI 分区并在每个驱动器上安装正确的引导加载程序。对于第一个 NVMe 驱动器,如下所示:mount /dev/nvme0n1p1 /boot/efi && grub-install /dev/nvme0n1

请注意,您不能为 EFI 分区设置 RAID 阵列。嗯……其实不能,有一些技巧,但我认为它们不值得,因为这些技巧上没有不可恢复的存储。它只是一个小的二进制文件,以便 EFI“bios”可以启动您的引导加载程序。即使失败了,您仍然可以启动某种 Live 映像(如 SuperGRUBdisk)的系统,然后再次使用 grub-install 重新安装它。

相关内容