具有 3 个不同大小的磁盘的 Raid 1

具有 3 个不同大小的磁盘的 Raid 1

我是这个网站的新手。我目前正在配置一台服务器,它有这些 SSD 磁盘:1X1TB SSD NVMe 2X512GB SSD NVMe

现在我想在这些磁盘之间创建一个 RAID 1,其中我始终会看到 1 TB 的最大大小,但数据将在 1TB 磁盘和其余 2 个 512GB 磁盘上重复。我想有两个 1TB 的块,第一个块由 1TB 磁盘组成,第二个块由两个 512GB 磁盘组成,全部在 RAID 1 中。我该如何解决这个问题?我是否将两个 512GB 磁盘放在 LVM 卷中,然后创建 RAID?谢谢

PS:系统是Debian Stretch

答案1

我不会使用 LVM 为您的阵列构建设备,而是使用 mdadm 构建阵列并将其用于 LVM。

要获得 1TB 的阵列,您需要将 512GB 的驱动器放入 RAID 0 阵列,这样您将获得 1TB 的容量,然后在 RAID 1 阵列中使用 RAID 0 设备和 1TB 的驱动器。这样可以避免“浪费”空间,但是您实际上是在使用 RAID 10,并且应该了解这会如​​何影响数据丢失的风险。

答案2

我建议使用简单配置,所有磁盘大小相同。这样性能会更可预测,而且只需更换一种大小的磁盘即可。

使用 mdadm 创建软件 RAID,然后在 md 设备之外创建 LVM 卷组。

通过在 RAID 1 中镜像 2x 512,您可以轻松获得 512 GB 的可用空间。

如需更大的可用空间,请购买 2 或 4 个更大的磁盘。例如,RAID 10 中的 4x 512 GB,或 RAID 1 中的 2x 1 TB。

答案3

最简单的解决方案可能是将 1 TB SSD 分成两个 512 GB 的分区,然后使用这两个分区和另外两个 SSD 组成 RAID10。请注意 Linux 中 raid10 的磁盘布局,此处有详细描述:https://www.finnie.org/2012/11/04/linux-md-raid-10-disk-layout/期间给出的每对分区都mdadm --create将被视为镜像组/RAID1,因此这两个磁盘将包含相同的数据。因此,如果大磁盘是 sda,并且它被分成分区 sda1 和 sda2,而其他磁盘是 sdb 和 sdc,每个磁盘都有一个分区,则以下命令应该可以解决问题:

mdadm --create --verbose /dev/md0 --level=10 /dev/sda1 /dev/sdb1 /dev/sda2 /dev/sdc1

我强烈反对手动将 RAID0 置于 RAID1 之上,正如其他答案所建议的那样。在启动期间组装阵列时,您很可能会遇到问题。

答案4

非常感谢大家的回答。最后我决定在 2 个 512GB 磁盘上创建 RAID 0,然后用 1TB 磁盘和 RAID 0 创建 RAID 1,然后创建 RAID10。

我不知道该怎么做,但我以前真的没有想过:) 再次感谢

相关内容