目前,我有8个磁盘大小为32G,形成一个RAID 10。现在,我想通过增加额外的磁盘来增加这个磁盘的大小。这是一个生产设备,所以在RAID中已经有重要的数据。文件系统是XFS。是否有任何方法在不影响该RAID上正在运行的读写的情况下增加此RAID的大小。如果没有,如何在最短的脱机时间内完成此操作?
发布于 2020-11-20 09:33:42
现有的答案已相当过时。在2020年,只需添加2个或更多相同大小的磁盘,就可以生产出一个mdadm软件RAID 10。
为了测试目的,我创建了6x10GB的LVM卷,/dev/vg0/rtest1到rtest6,而不是物理驱动器-- mdadm对此没有抱怨。
# Using the thinpool lvthin on VG vg0 - I created 6x 10G volumes
lvcreate -T vg0/lvthin -V 10G -n rtest1
lvcreate -T vg0/lvthin -V 10G -n rtest2
...接下来,我使用前4个rtestX卷创建了一个RAID 10 mdadm数组。
mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/vg0/rtest[1-4]使用mdadm -D (等于--detail),我们可以看到数组有4倍的“驱动器”,在40 10的卷中,容量为20 10,就像RAID 10所期望的那样。
root@host ~ # mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 20953088 (19.98 GiB 21.46 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:04:24 2020
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 23
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12扩展RAID10
要扩展数组,首先需要将磁盘对(S) --add到阵列,然后使用--grow --raid-devices=X (其中X是RAID中新的磁盘总数)请求mdadm重新塑造RAID10,将两个备用磁盘作为阵列的一部分使用。
mdadm --add /dev/md0 /dev/vg0/rtest5 /dev/vg0/rtest6
mdadm --grow /dev/md0 --raid-devices=6这就是无聊的部分--等待从几分钟到几个小时,甚至几天甚至几个星期,这取决于你的RAID有多大,直到mdadm完成了对新硬盘的改造。
如果我们检查mdadm -D -我们可以看到当前的RAID正在重塑。
mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 20953088 (19.98 GiB 21.46 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:15:05 2020
State : clean, reshaping
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Reshape Status : 0% complete
Delta Devices : 2, (4->6)
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 31
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12
5 253 14 4 active sync set-A /dev/dm-14
4 253 13 5 active sync set-B /dev/dm-13最终,一旦mdadm完成了整形,我们现在可以看到数组大小是~30G,而不是~20G,这意味着整形是成功的,而且相对来说并不痛苦:)
mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Nov 20 09:02:39 2020
Raid Level : raid10
Array Size : 31429632 (29.97 GiB 32.18 GB)
Used Dev Size : 10476544 (9.99 GiB 10.73 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Fri Nov 20 09:25:01 2020
State : clean
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : someguy123:0 (local to host someguy123)
UUID : e49ab53b:c66321f0:9a4e272e:09dc25b1
Events : 93
Number Major Minor RaidDevice State
0 253 9 0 active sync set-A /dev/dm-9
1 253 10 1 active sync set-B /dev/dm-10
2 253 11 2 active sync set-A /dev/dm-11
3 253 12 3 active sync set-B /dev/dm-12
5 253 14 4 active sync set-A /dev/dm-14
4 253 13 5 active sync set-B /dev/dm-13发布于 2013-05-18 13:22:29
有2起案件:
在这两种情况下,您将不会丢失数据,如果您的硬件允许热插拔,您将不会有停机时间。
顺便说一句,即使mdadm允许动态调整数组的大小,我也不会冒险处理生产数据。
发布于 2013-05-18 12:46:15
假设这是在Linux上与mdadm -你不能。
mdadm不支持生长RAID10
https://serverfault.com/questions/508892
复制相似问题