使用不同大小的磁盘扩展 RAID 1 阵列

使用不同大小的磁盘扩展 RAID 1 阵列

请注意以下设置是 Centos 6.6。

我有一个使用 2x480GB SSD 的现有 RAID 1 设置。我刚刚在服务器上安装了两个新的 800GB SSD。我想要扩展的现有 RAID 1 设置已映射到/dev/md2。目前/dev/md2指向我的目录。我现有的目录已满。我想将其大小从(现有)扩展到(现有+ 两个新驱动器)/home/home460 GB/dev/md21260 GB/dev/md2

新磁盘设置为/dev/sdc/dev/sdd。旧磁盘为/dev/sda/dev/sdb

我找到了一些关于扩展 RAID 设置的不同指南,但我很困惑这是否会起作用,因为我正在向设置中添加不同大小的磁盘。我也不确定这是否会很好用,因为我想向设置中添加两个磁盘,而不仅仅是 1 个。

我找到的一个指南示例:http://www.tecmint.com/grow-raid-array-in-linux/

我是不是应该运行:

mdadm --manage /dev/md2 --add /dev/XXX

运行前对每个磁盘执行两次:

mdadm --grow --raid-devices=4 /dev/md2

这是否可以正确设置新的 800GB SSD,使其与 RAID 1 中设置的 480GB 驱动器一起工作?Linux 是否知道如何在新驱动器上正确复制数据,而不会干扰现有驱动器?

编辑:我需要实时完成这一切。忘记提这件事了。

答案1

是的,您可以按照描述使用 mdadm 添加两个新的更大的驱动器,但该过程涉及更多步骤。

注意:扩展阵列后,您还必须调整 RAID 阵列上的分区或 LVM 的大小,然后才能扩展文件系统。根据您的文件系统,这可能可以在线完成。

为了演示这些步骤,我首先创建一个包含两个 100Mbyte 文件的 raid 设备:

# mdadm --create --level=1 --raid-devices=2 --metadata=1.2 /dev/md2 /dev/loop0 /dev/loop1
mdadm: array /dev/md2 started.

# cat /proc/mdstat
md2 : active raid1 loop1[1] loop0[0]
      102272 blocks super 1.2 [2/2] [UU]

然后我向阵列中添加两个 200Mbyte 的设备,它们将显示为备用设备:

# mdadm --manage /dev/md2 --add /dev/loop2 /dev/loop3
mdadm: added /dev/loop2
mdadm: added /dev/loop3

# cat /proc/mdstat
md2 : active raid1 loop3[3](S) loop2[2](S) loop1[1] loop0[0]
      102272 blocks super 1.2 [2/2] [UU]

将阵列扩展到 4 个磁盘。同步完成后,阵列现在有 4 个镜像:

# mdadm --grow --raid-devices=4 /dev/md2
raid_disks for /dev/md2 set to 4

# cat /proc/mdstat
md2 : active raid1 loop3[3] loop2[2] loop1[1] loop0[0]
      102272 blocks super 1.2 [4/4] [UUUU]

使两个较小的设备发生故障并将其移除,并将活动设备的数量更改为两个:

# mdadm --manage --fail /dev/md2 /dev/loop0 /dev/loop1
mdadm: set /dev/loop0 faulty in /dev/md2
mdadm: set /dev/loop1 faulty in /dev/md2

# mdadm --manage --remove /dev/md2 /dev/loop0 /dev/loop1
mdadm: hot removed /dev/loop0 from /dev/md2
mdadm: hot removed /dev/loop1 from /dev/md2

# mdadm --grow --raid-devices=2 /dev/md2
raid_disks for /dev/md2 set to 2

RAID 设备的最后一步是扩大阵列以覆盖两个较大磁盘的整个大小:

# mdadm --grow --size=max /dev/md2
mdadm: component size of /dev/md2 has been set to 204720K

dmesg 会说:

md2: detected capacity change from 104726528 to 209633280

..设备将再次同步。您现在应该有一个具有新大小的 raid 设备:

# cat /proc/mdstat
md2 : active raid1 loop3[3] loop2[2]
      204720 blocks super 1.2 [2/2] [UU]

现在您需要调整任何分区和/或 LVM 的大小,然后就可以扩大文件系统。

相关内容