Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:centos:linux-how-to-extend-an-existing-software-raid-6-add-more-disks-via-mdadm-over-multipath-disks-in-centos

Как расширить существующий программный RAID 6 (добавление дополнительных дисков), созданный с помощью mdadm из дисковых multipath-устройств в CentOS

В этой статье мы произведём расширение ранее созданного программного RAID 6 /dev/md0, в котором на текущий момент участвует 10 дисков. Мы добавим 2 дополнительных диска, которые также будут представлены в системе как multipath-устройства


Обновление информации о дисках

Итак, предполагаем, что 2 новых диска уже презентованы нашему файловому серверу на уровне SAN, и каждый из дисков доступен по двум путям (multipath).

Получим список каналов подключений (scsi_host):

# ls -la /sys/class/scsi_host/

... host0 -> ../../devices/pci0000:00/0000:00:1f.1/ata1/host0/scsi_host/host0
... host1 -> ../../devices/pci0000:00/0000:00:1f.1/ata2/host1/scsi_host/host1
... host2 -> ../../devices/pci0000:00/0000:00:04.0/0000:13:00.0/host2/scsi_host/host2
... host3 -> ../../devices/pci0000:00/0000:00:04.0/0000:13:00.1/host3/scsi_host/host3
... host4 -> ../../devices/platform/host4/scsi_host/host4

Проверим список устройств, доступных системе:

# cat /proc/scsi/scsi

Если добавленные диски не отображается, то попробуем обновить информацию соответствующих каналов:

# echo "- - -" > /sys/class/scsi_host/host2/scan
# echo "- - -" > /sys/class/scsi_host/host3/scan

Снова посмотрим список устройств. Добавленные диски должны появиться (вывод команды сокращён):

# cat /proc/scsi/scsi

...
Host: scsi2 Channel: 00 Id: 00 Lun: 11
  Vendor: HP       Model: MSA VOLUME       Rev: 7.20
  Type:   Direct-Access                    ANSI  SCSI revision: 04
Host: scsi2 Channel: 00 Id: 00 Lun: 12
  Vendor: HP       Model: MSA VOLUME       Rev: 7.20
  Type:   Direct-Access                    ANSI  SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 11
  Vendor: HP       Model: MSA VOLUME       Rev: 7.20
  Type:   Direct-Access                    ANSI  SCSI revision: 04
Host: scsi3 Channel: 00 Id: 00 Lun: 12
  Vendor: HP       Model: MSA VOLUME       Rev: 7.20
  Type:   Direct-Access                    ANSI  SCSI revision: 04
...

Как видно, в моём примере в систему добавлено 2 диска (Lun11 и Lun12), каждый из которых доступен по двум путям (scsi2 и scsi3) Если после последней команды добавленные диски всё же не появились, то можно попробовать перезагрузить сервер.

Теперь посмотрим, что нам покажет служба multipathd:

# multipath -ll

В выводе команды мы должны увидеть наши 2 добавленных multupath-диска (вывод команды сокращён) :

...
mpathv (3600508b30091bb409d8550206947004a) dm-11 HP      ,MSA VOLUME      
size=466G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 3:0:0:11 sdx 65:112 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 2:0:0:11 sdv 65:80  active ready running
mpathu (3600508b30091bb406c4d212983eb004a) dm-10 HP      ,MSA VOLUME      
size=466G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 2:0:0:12 sdw 65:96  active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 3:0:0:12 sdy 65:128 active ready running
...

В нашем примере:

  • multupath-диск mpathv собран из устройств scsi2\Lun11 и scsi3\Lun11
  • multupath-диск mpathu собран из устройств scsi2\Lun12 и scsi3\Lun12

Посмотрим список устройств /dev/dm*. Эти устройства мы будем использовать для расширения нашего RAID-массива (вывод команды сокращён):

# ls -la /dev/mapper/

...
rwxrwxrwx.  1 root root       8 Nov 27 08:28 mpathu -> ../dm-10
lrwxrwxrwx.  1 root root       8 Nov 27 08:28 mpathv -> ../dm-11


Добавление SPARE-дисков в RAID-массив

Посмотрим состояние нашего программного RAID-массива и увидим то, какие /dev/dm* устройства уже включены в него:

# mdadm --detail /dev/md0

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 31 11:05:49 2016
     Raid Level : raid6
     Array Size : 3905765376 (3724.83 GiB 3999.50 GB)
  Used Dev Size : 488220672 (465.60 GiB 499.94 GB)
   Raid Devices : 10
  Total Devices : 10
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sun Nov 27 08:32:28 2016
          State : clean, checking 
 Active Devices : 10
Working Devices : 10
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

   Check Status : 74% complete

           Name : 0
           UUID : 5baba46f:31132696:5f8b64f3:1e9605d9
         Events : 23854

    Number   Major   Minor   RaidDevice State
       0     253        4        0      active sync   /dev/dm-4
       1     253        3        1      active sync   /dev/dm-3
       2     253        7        2      active sync   /dev/dm-7
       3     253        5        3      active sync   /dev/dm-5
       4     253        8        4      active sync   /dev/dm-8
       5     253        1        5      active sync   /dev/dm-1
       6     253        6        6      active sync   /dev/dm-6
       7     253        2        7      active sync   /dev/dm-2
       8     253        0        8      active sync   /dev/dm-0
       9     253        9        9      active sync   /dev/dm-9

Добавляем в RAID-массив /dev/md0 первое multupath-устройство dm-10 (mpathu)

#mdadm --add /dev/md0 /dev/dm-10

mdadm: added /dev/dm-10

Добавляем в RAID-массив /dev/md0 второе multupath-устройство dm-11 (mpathv)

# mdadm --add /dev/md0 /dev/dm-11

mdadm: added /dev/dm-11

Устройства будут добавлены как spare-диски. В нашем примере эти диски имеют номера 10 и 11 внутри массива md0:

# mdadm --detail /dev/md0

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 31 11:05:49 2016
     Raid Level : raid6
     Array Size : 3905765376 (3724.83 GiB 3999.50 GB)
  Used Dev Size : 488220672 (465.60 GiB 499.94 GB)
   Raid Devices : 10
  Total Devices : 12
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sun Nov 27 09:04:03 2016
          State : clean, checking 
 Active Devices : 10
Working Devices : 12
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

   Check Status : 83% complete

           Name : 0
           UUID : 5baba46f:31132696:5f8b64f3:1e9605d9
         Events : 23908

    Number   Major   Minor   RaidDevice State
       0     253        4        0      active sync   /dev/dm-4
       1     253        3        1      active sync   /dev/dm-3
       2     253        7        2      active sync   /dev/dm-7
       3     253        5        3      active sync   /dev/dm-5
       4     253        8        4      active sync   /dev/dm-8
       5     253        1        5      active sync   /dev/dm-1
       6     253        6        6      active sync   /dev/dm-6
       7     253        2        7      active sync   /dev/dm-2
       8     253        0        8      active sync   /dev/dm-0
       9     253        9        9      active sync   /dev/dm-9

      10     253       10        -      spare   /dev/dm-10
      11     253       11        -      spare   /dev/dm-11

Как видим автоматически запущена процедура проверки состояния (State : …, checking ) Следим за статусом окончания процедуры командой (процесс может занять длительное время):

#  watch cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid6 dm-11[11](S) dm-10[10](S) 
      dm-5[3] dm-4[0] dm-1[5] dm-3[1] dm-9[9] dm-2[7] dm-6[6] dm-8[4] dm-0[8] dm-7[2]
      3905765376 blocks super 1.2 level 6, 512k chunk, algorithm 2 [10/10] [UUUUUUUUUU]
      [=========>...]  check = 83.2% (406424328/488220672) finish=98.7min speed=13803K/sec
      bitmap: 0/4 pages [0KB], 65536KB chunk

unused devices: <none>


Расширение RAID-массива

Когда процедура проверки массива будет окончена, можно приступать к преобразованию spare-дисков в активные диски RAID-массива. С учётом добавленных дисков в массиве будет 12 дисков, поэтому используем команду:

# mdadm --grow /dev/md0 --raid-devices=12

Команда может выполниться, а может вызвать ошибку типа

mdadm: Failed to initiate reshape!
unfreeze

Тогда можно просто попробовать выполнить команду повторно.

После этого можно следить за преобразованием RAID-массива (процесс может занять длительное время)

#  watch cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid6 dm-11[11] dm-10[10] 
      dm-5[3] dm-4[0] dm-1[5] dm-3[1] dm-9[9] dm-2[7] dm-6[6] dm-8[4] dm-0[8] dm-7[2]
      3905765376 blocks super 1.2 level 6, 512k chunk, algorithm 2 [12/12] [UUUUUUUUUUUU]
      [>............]  reshape =  0.1% (518144/488220672) finish=1577.2min speed=5153K/sec
      bitmap: 0/4 pages [0KB], 65536KB chunk

Когда процесс перестроения массива закончен, снова посмотрим его свойства:

# mdadm --detail /dev/md0

/dev/md0:
        Version : 1.2
  Creation Time : Wed Aug 31 11:05:49 2016
     Raid Level : raid6
     Array Size : 4882206720 (4656.04 GiB 4999.38 GB)
  Used Dev Size : 488220672 (465.60 GiB 499.94 GB)
   Raid Devices : 12
  Total Devices : 12
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Mon Nov 28 20:50:44 2016
          State : clean 
 Active Devices : 12
Working Devices : 12
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : 0
           UUID : 5baba46f:31132696:5f8b64f3:1e9605d9
         Events : 35875

    Number   Major   Minor   RaidDevice State
       0     253        4        0      active sync   /dev/dm-4
       1     253        3        1      active sync   /dev/dm-3
       2     253        7        2      active sync   /dev/dm-7
       3     253        5        3      active sync   /dev/dm-5
       4     253        8        4      active sync   /dev/dm-8
       5     253        1        5      active sync   /dev/dm-1
       6     253        6        6      active sync   /dev/dm-6
       7     253        2        7      active sync   /dev/dm-2
       8     253        0        8      active sync   /dev/dm-0
       9     253        9        9      active sync   /dev/dm-9
      11     253       11       10      active sync   /dev/dm-11
      10     253       10       11      active sync   /dev/dm-10        

Как видим, размер нашего RAID-массива увеличен на объём добавленных дисков.


Дополнительные источники информации:


unix-linux/centos/linux-how-to-extend-an-existing-software-raid-6-add-more-disks-via-mdadm-over-multipath-disks-in-centos.txt · Последние изменения: 28.11.2016 20:57 — Алексей Максимов