首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >增加软件RAID 10的大小

增加软件RAID 10的大小
EN

Server Fault用户
提问于 2013-05-18 12:45:08
回答 3查看 3.7K关注 0票数 1

目前,我有8个磁盘大小为32G,形成一个RAID 10。现在,我想通过增加额外的磁盘来增加这个磁盘的大小。这是一个生产设备,所以在RAID中已经有重要的数据。文件系统是XFS。是否有任何方法在不影响该RAID上正在运行的读写的情况下增加此RAID的大小。如果没有,如何在最短的脱机时间内完成此操作?

EN

回答 3

Server Fault用户

发布于 2020-11-20 09:33:42

现有的答案已相当过时。在2020年,只需添加2个或更多相同大小的磁盘,就可以生产出一个mdadm软件RAID 10。

创建示例RAID 10数组

为了测试目的,我创建了6x10GB的LVM卷,/dev/vg0/rtest1rtest6,而不是物理驱动器-- mdadm对此没有抱怨。

代码语言:javascript
复制
# 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数组。

代码语言:javascript
复制
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所期望的那样。

代码语言:javascript
复制
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,将两个备用磁盘作为阵列的一部分使用。

代码语言:javascript
复制
mdadm --add /dev/md0 /dev/vg0/rtest5 /dev/vg0/rtest6
mdadm --grow /dev/md0 --raid-devices=6

监视重同步进程

这就是无聊的部分--等待从几分钟到几个小时,甚至几天甚至几个星期,这取决于你的RAID有多大,直到mdadm完成了对新硬盘的改造。

如果我们检查mdadm -D -我们可以看到当前的RAID正在重塑。

代码语言:javascript
复制
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

享受您更大的RAID10数组!

最终,一旦mdadm完成了整形,我们现在可以看到数组大小是~30G,而不是~20G,这意味着整形是成功的,而且相对来说并不痛苦:)

代码语言:javascript
复制
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
票数 4
EN

Server Fault用户

发布于 2013-05-18 13:22:29

有2起案件:

  1. 添加新驱动器最简单和最安全的方法是在新驱动器上创建一个新的数组,在新的数组上创建一个物理卷,如下所示。这里的表演没有损失。作为奖励,您可以创建一个新的卷组,以便将数据放在一个或另一个数组中。
  2. 您用更大的驱动器替换现有的驱动器,每次在磁盘上创建两个分区时,逐个替换它们。将第一个数组(例如,sdX1添加到现有数组中(它应该自动恢复),然后可以在所有第二个部分( sdX2 )上创建一个新数组。根据您的使用情况,某些操作可能会受到性能影响(基本上,如果您在两个数组之间复制数据)。

在这两种情况下,您将不会丢失数据,如果您的硬件允许热插拔,您将不会有停机时间。

顺便说一句,即使mdadm允许动态调整数组的大小,我也不会冒险处理生产数据。

票数 1
EN

Server Fault用户

发布于 2013-05-18 12:46:15

假设这是在Linux上与mdadm -你不能。

mdadm不支持生长RAID10

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/508892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档