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


11

据我了解,这是可能的,但是我在任何地方都无法找到关于如何精确实现的直接答案,而且我也不想冒自己尝试进行数据丢失的风险,因此我在这里问。

我有一台带有五个运行CentOS的磁盘的家庭服务器。一种是装有操作系统的SSD。其余四个磁盘是在RAID10中使用mdraid配置的4TB硬盘驱动器。使用的文件系统是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

Answers:


14

为每个磁盘完成以下步骤;/dev/sda1根据需要更换其他磁盘。必须先对一个磁盘完成所有这些步骤,然后才能继续处理下一个磁盘。

  • 将磁盘标记为失败,以便MD停止使用它: mdadm --manage /dev/md127 --fail /dev/sda1
  • 从阵列中删除磁盘: mdadm --manage /dev/md127 --remove /dev/sda1
  • 物理上更换磁盘。
  • 使用type对新磁盘进行0xDA分区,其中一个分区跨越整个磁盘。
  • 将新磁盘添加到阵列: mdadm --manage /dev/md127 --add /dev/sda1

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

一旦所有的硬盘都被替换和重建阵列,展开阵列,以填补所有磁盘的最大容量mdadm --grow /dev/md127 --size=max。您可以从此处调整文件系统的大小以填充扩展的RAID;在您的情况下,请使用xfs_growfs命令。

Linux RAID Wiki上提供了有关如何扩展MD阵列的更多信息。

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


1
也许添加您如何检查重建进度->tim@MushaV3 ~ $ cat /proc/mdstat Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md1 : active raid1 sdb1[0] sda1[1] 131008 blocks [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk
djsmiley2kStaysInside

2

您首先要交换每个磁盘。

为此,您将使每个磁盘“失败”,并用新的8TB替换磁盘进行替换,实际上,如果您有备用端口,则可以添加额外的磁盘,然后将mdadm“替换”到位,而不是从磁盘中删除磁盘。突袭和失败的风险更高。

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

完成此操作后,您将需要简单地将现有FS扩展到新创建的空间。似乎此命令是“ xfs_growfs”,但是我没有使用xfs的经验来解释如何精确地执行此操作。

和往常一样,准备好备份(而raid不是备份!)。


通过raid10和mdraid进行设置,是否还会识别出多余的空间?我是否应该一次交换两个,每个镜像对交换一个?
凯夫卡

您只需在交换所有磁盘后添加空间,然后它就会被识别。
djsmiley2kStaysInside,2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.