![使用不同大小的磁盘扩展 RAID 1 阵列](https://linux22.com/image/1488947/%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E5%A4%A7%E5%B0%8F%E7%9A%84%E7%A3%81%E7%9B%98%E6%89%A9%E5%B1%95%20RAID%201%20%E9%98%B5%E5%88%97.png)
请注意以下设置是 Centos 6.6。
我有一个使用 2x480GB SSD 的现有 RAID 1 设置。我刚刚在服务器上安装了两个新的 800GB SSD。我想要扩展的现有 RAID 1 设置已映射到/dev/md2
。目前/dev/md2
指向我的目录。我现有的目录已满。我想将其大小从(现有)扩展到(现有+ 两个新驱动器)/home
/home
460 GB
/dev/md2
1260 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 的大小,然后就可以扩大文件系统。