扩展 Linux MD RAID 10 阵列以使用更大的磁盘

扩展 Linux MD RAID 10 阵列以使用更大的磁盘

据我所知,这是可能的,但我无法在任何地方找到关于如何具体做到这一点的直接答案,并且我不想冒着丢失数据的风险自己进行实验,所以我在这里询问。

我有一台家用服务器,上面有五块磁盘,运行着 CentOS。一块是装有操作系统的 SSD。其余四块磁盘是 4TB 硬盘,配置为 RAID10 和 mdraid。使用的文件系统是 xfs。

我正在考虑尝试用 8TB 磁盘替换 4TB 磁盘。究竟需要做什么才能进行替换,而无需重新配置新的 RAID 并丢失数据?

Details output:

[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Mon Apr 18 12:46:24 2016
     Raid Level : raid10
     Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
  Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Jun 13 11:04:41 2016
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : fluttershy:data  (local to host fluttershy)
           UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
         Events : 13440

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       33        2      active sync set-A   /dev/sdc1
       3       8       49        3      active sync set-B   /dev/sdd1

答案1

对每个磁盘完成以下步骤;/dev/sda1根据需要更换其他磁盘。您必须完成全部完成上述步骤后,才能继续处理下一个磁盘。

  • 将磁盘标记为故障,以便 MD 停止使用它:mdadm --manage /dev/md127 --fail /dev/sda1
  • 从阵列中移除磁盘:mdadm --manage /dev/md127 --remove /dev/sda1
  • 物理替换磁盘。
  • 0xDA使用一个分区跨越整个磁盘的类型对新磁盘进行分区。
  • 将新磁盘添加到阵列:mdadm --manage /dev/md127 --add /dev/sda1

添加替换磁盘后,MD 将重建阵列。确保重建已完成继续处理下一个磁盘。您可以通过运行来检查阵列的状态cat /proc/mdstat

一次全部磁盘已更换且阵列已重建,请扩展阵列以使用 填充所有磁盘的最大容量mdadm --grow /dev/md127 --size=max。您可以从那里调整文件系统的大小以填充扩展的 RAID;对于您的情况,请使用命令xfs_growfs

有关如何培养 MD 阵列的更多信息,请访问Linux RAID 维基

与任何其他磁盘操作任务一样,您应该在开始之前进行备份。

答案2

您首先需要逐个更换每个磁盘。

要做到这一点,您需要让每个磁盘“发生故障”,然后用新的 8Tb 替换它,实际上,如果您有备用端口,您可以添加额外的磁盘,然后使用 mdadm“替换”来替换,而不是从 raid 中移除磁盘并承担更高的故障风险。

这个问题详细说明了我能找到的“安全”的最佳方法

完成此操作后,您只需将现有 FS 扩展到新创建的空间即可。看起来这个命令是“xfs_growfs”,但我没有使用 xfs 的经验,无法解释您具体如何执行此操作。

与往常一样,准备好备份(并且突袭不是备份!)。

相关内容