Linux RAID1 替换更大容量的磁盘

Linux RAID1 替换更大容量的磁盘

我有一台有两个 256GB SSD 的服务器。它们的分区如下:

/dev/sda1 100GB linux-raid-autodetect
/dev/sda2 100GB linux-raid-autodetect
/dev/sda3 23,6GB linux-raid-autodetect

/dev/sdb1 100GB linux-raid-autodetect
/dev/sdb2 100GB linux-raid-autodetect
/dev/sdb3 23,6GB linux-raid-autodetect

有 2 个 raid1 - 设备构建并运行(使用 mdadm):

/dev/md1 (built of /dev/sda2 and /dev/sdb2) containing an ext4 filesystem mounted on /
/dev/md2 (built of /dev/sda3 and /dev/sdb3) containing swap filesystem

/dev/sda1 and /dev/sdb1 were used in former times and now are unused.

因此,我想删除未使用的分区 /dev/sdx1 并将 /dev/sdx2 增大到双倍大小(200GB)。

我已按以下步骤进行:

mdadm --manage /dev/md1 --fail /dev/sda2
mdadm --manage /dev/md1 --remove /dev/sda2

然后我进入fdisk,删除/dev/sda1和/dev/sda2并创建一个新分区/dev/sda2,它现在使用以前的/dev/sda1和/dev/sda2的完全空闲空间。我将分区标识符设置为 linux-raid-autodetect (fd) 并将分区表写入磁盘。这样做之后,我将 /dev/sda2 读取到 /dev/md1

mdadm --manage /dev/md1 --add /dev/sda2

并等待raid同步完成。一切都按预期进行。结果是一个新的 /dev/md1,其中包含 /dev/sda2 (200GB) 和 /dev/sdb2 (100GB)。现在我像以前一样继续使用/dev/sdb。完成整个过程后,我得到的 SSD 分区如下: /dev/sda2 200GB linux-raid-autodetect /dev/sda3 23,6GB linux-raid-autodetect

/dev/sdb2 200GB linux-raid-autodetect
/dev/sdb3 23,6GB linux-raid-autodetect

这些是与以前相同的 RAID1 /dev/md1 和 /dev/md2) 的一部分。两个 RAID 都运行良好。未受影响的 /dev/md2 是完美的,但新的 /dev/md1 仅显示 100GB(理论上可用空间的一半)。当然:raid 设备需要调整到最大容量,并且文件系统 (ext4) 必须在执行此操作后调整大小。所以我开始了

mdadm --grow --array-size=max /dev/md1

……但这完全没有效果。下列

resize2fs /dev/md1

结果是“文件系统已经有 26198016 (4k) 块长。没什么可做的!”

问题是什么?我已经在 /dev/md1 上使用了系统,因此它已安装。我必须使用救援系统调整 raid 和文件系统的大小(未安装 /dev/md1)吗?或者我做错了什么?

答案1

在此期间我已修复它。 mdadm Growth 的语法错误。一定是

mdadm --grow /dev/md1 --size=max

如果这样做,我可以调整数组大小,然后调整文件系统大小。这一切都无需重新启动即可在安装的文件系统上运行。

相关内容