Создание примера массива RAID 10

Создание примера массива RAID 10

В настоящее время у меня есть 8 дисков размером 32G каждый, образующих RAID 10. Теперь я хочу увеличить размер этого RAID, добавив дополнительные диски. Это производственное устройство, поэтому в RAID уже есть критически важные данные. Файловая система — XFS. Есть ли способ увеличить размер этого RAID, не влияя на выполняемые операции чтения/записи на этом RAID? Если нет, как это сделать с минимальным временем автономной работы?

решение1

Существующие ответы довольно устарели. Здесь, в 2020 году, теперь можно нарастить mdadmпрограммный RAID 10, просто добавив 2 или более дисков одинакового размера.

Создание примера массива RAID 10

Для тестирования вместо физических дисков я создал 6 томов LVM по 10 ГБ, /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
...

Далее я создал массив RAID 10 mdadm, используя первые 4 rtestXтома.

mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/vg0/rtest[1-4]

Используя mdadm -D(равно --detail), мы видим, что массив имеет 4x «диска» емкостью 20 ГБ из 40 ГБ томов, как и ожидается при использовании 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 двумя новыми томами/дисками одинакового размера

Чтобы расширить массив, сначала необходимо добавить --addпару(ы) дисков в массив, а затем использовать --grow --raid-devices=X(где X — новое общее количество дисков в RAID) для запроса на то, чтобы mdadm изменил конфигурацию RAID10 для использования 2 запасных дисков как части массива.

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

Наслаждайтесь большим массивом RAID10!

В конце концов, после mdadmзавершения переформирования мы увидим, что размер массива составляет ~30 Гб вместо ~20 Гб, что означает, что переформирование прошло успешно и относительно безболезненно :)

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

решение2

Есть 2 случая:

  1. вы добавляете новые диски Самый простой и безопасный способ — создать новый массив на новых дисках, создать физический том на новом массиве и вот вам. Никакой потери производительности. В качестве бонуса вы можете создать новую группу томов, чтобы поместить свои данные в один массив или другой.
  2. Вы заменяете существующие диски на более крупные. Заменяйте их по одному, каждый раз создавая 2 раздела на диске. Вы добавляете первый (например, sdX1) к существующему массиву (он должен восстановиться автоматически), а затем можете создать новый массив на всех вторых разделах (sdX2). В зависимости от вашего использования может наблюдаться снижение производительности для некоторых операций (в основном, если вы копируете данные между обоими массивами).

В обоих случаях вы не потеряете данные, и если ваше оборудование поддерживает горячее подключение, у вас не возникнет простоев.

Кстати, даже если бы mdadm позволял динамически изменять размер массива, я бы не стал рисковать с производственными данными.

решение3

Если предположить, что это Linux mdadm, то это невозможно.

mdadmне поддерживает растущий RAID10

Связанный контент