升级 Linux 软件 RAID5

升级 Linux 软件 RAID5

我家的 Linux 服务器有一个四驱动器软件 RAID 5,其中每个 SATA 驱动器都有两个分区,名为 sd[abcd][12]。/dev/md1 由 sd[abcd]1 构建,/dev/md2 由 sd[abcd]2 构建。每个驱动器为 500GB,每个分区为 250GB。我使用 LVM 将 md1 和 md2 合并为一个卷组。

将这些驱动器升级到 1TB 的良好程序是什么?我没有更多可用的 SATA 端口。我考虑过拔出其中一个驱动器,用一个新的 1TB 驱动器替换它,该驱动器由两个 250GB 分区和一个 500GB 分区组成,然后重建阵列。对每个驱动器重复此操作,然后在 sd[abcd]3 上创建一个新的 RAID5。这似乎“不太理想”:滥用同步/恢复过程似乎不是正确的方法。

使用外部 USB 外壳、插入新的 1TB 磁盘、对其进行分区、将其添加到 md1 和 md2 阵列、重新同步,然后从阵列中删除一个旧磁盘,并对每个磁盘重复此操作,这样更有意义吗?

确实没有什么理由将多个阵列分布在相同的磁盘上,所以如果这个过程消除了这种情况,那就好了。

感谢您的建议!

答案1

首先,将驱动器分区为几个 RAID 阵列并使用 LVM 将它们合并回去是没有意义的。

USB 速度极慢,而且占用大量 CPU,因此依次连接四个驱动器并复制大量数据将花费很长时间。我宁愿一次更换一个驱动器。

我对此的解决方法是(如果您的数据非常重要,并且您非常偏执,您可以在此操作期间添加 USB 驱动器作为热备用,但这将花费更多的时间):

  1. 拔出一个旧驱动器并插入一个新驱动器。等待其同步
  2. 对其余驱动器重复此操作
  3. 您现在有四个 1TB 驱动器,其中 500GB 分配为两个 250GB 分区,还有 500GB 未使用空间
  4. 将现有分区之一从 250GB 扩展到 750GB,以便使用整个磁盘
  5. 使用以下方法扩展包含扩展分区的 RAID:mdadm grow
  6. 扩展 LVM,以便使用整个大小
  7. 从 LVM 中删除 250GBx4 阵列 pv。这会将数据从小分区移到大分区,因此需要一些时间
  8. 删除 250GB 分区,然后对 750GB 分区重复上述扩展过程

之后,您将拥有四个 1TB 磁盘,每个磁盘都有一个 1TB 分区,这些磁盘以 RAID5 形式连接,并在顶部使用 LVM。结果完美。

答案2

您可以按照您的建议执行重新同步和替换操作,但完成后请将所有文件从 md1 和 2 复制到 md3,然后删除 md1 和 2 分区并扩展 md3 分区以使用新空间。为此,您需要将 TB 驱动器上的第一个分区设为 md3 的一部分,这样您以后就不必重新定位数据。

答案3

我建议在沙箱中完成此类工作。
我写了一篇较长的文章,介绍如何使用文件而不是分区设置此类沙箱:我可以在 Linux 软件 raid 中“原子地”交换 raid5 驱动器吗?

答案4

如果您当前的高清使用量少于 1TB,那么我会倾向于执行以下操作:

  • 拔出一个 500GB 硬盘,然后安装一个 1TB
  • 将所有内容复制到 1TB 驱动器
  • 安装其他 1TB 硬盘
  • 创建一个新的降级 RAID5 + lvm,并按照你想要的方式与其他磁盘进行分区
  • 将数据从独立的 1TB 驱动器复制到降级的 raid5
  • 将独立驱动器添加到阵列。

相关内容