===== Как создать программный RAID на базе Linux Software RAID (Multiple Device/MD RAID/mdraid) используя mdadm из дисковых multipath-устройств в CentOS Linux 7.2 ===== В моём случае используется СХД MSA 1500 CS, которая подключена к двум фабрикам SAN (к двум оптическим коммутаторам). К MSA1500 по SCSI подключены 2 дисковых полки MSA20. В одну из полок установлены 10 дисков SATA 7.2K 500GB Контроллеры MSA1500 имеют ограничение при создании RAID-массивов - максимальный объём RAID, в независимости от уровня RAID, упирается в **2TB**. ==== Настройка СХД MSA 1500 CS ==== Посмотрим какие диски доступны в MSA 1500 CS CLI-1> show disks Disk List: (box,bay) (B:T:L) Size Speed Units Enclosure 5: SATA (0:04:00) PROLIANT 8LCE 2.08 Enclosure 6: SATA (1:04:00) PROLIANT 8LCE 2.08 Disk601 (6,01) (1:04:01) 500.0GB 160 MB/s none Disk602 (6,02) (1:04:02) 500.0GB 160 MB/s none Disk603 (6,03) (1:04:03) 500.0GB 160 MB/s none Disk604 (6,04) (1:04:04) 500.0GB 160 MB/s none Disk605 (6,05) (1:04:05) 500.0GB 160 MB/s none Disk606 (6,06) (1:04:06) 500.0GB 160 MB/s none Disk607 (6,07) (1:04:07) 500.0GB 160 MB/s none Disk608 (6,08) (1:04:08) 500.0GB 160 MB/s none Disk609 (6,09) (1:04:09) 500.0GB 160 MB/s none Disk610 (6,10) (1:04:10) 500.0GB 160 MB/s none Создаём с использованием каждого отдельного диска отдельные логический массив уровня RAID-0. Например для первого диска disk601 команда будет выглядеть следующим образом (unit, то есть RAID массивы нумеруем по порядку начиная с 0): CLI-1> add unit 0 data="disk601-disk601" raid_level=0 First volume to be configured on these drives. Logical Unit size = 476906 MB RAID overhead = 0 MB Total space occupied by new unit = 476906 MB Free space left on this array: = 0 MB Unit 0 is created successfully. Аналогичным образом создаются отельные RAID0 массивы для других дисков: CLI-1> add unit 1 data="disk602-disk602" raid_level=0 CLI-1> add unit 2 data="disk603-disk603" raid_level=0 ... CLI-1> add unit 9 data="disk610-disk610" raid_level=0 Проверим, что у нас в итоге получилось: CLI-1> show disks Disk List: (box,bay) (B:T:L) Size Speed Units Enclosure 5: SATA (0:04:00) PROLIANT 8LCE 2.08 Enclosure 6: SATA (1:04:00) PROLIANT 8LCE 2.08 Disk601 (6,01) (1:04:01) 500.0GB 160 MB/s 0 Disk602 (6,02) (1:04:02) 500.0GB 160 MB/s 1 Disk603 (6,03) (1:04:03) 500.0GB 160 MB/s 2 Disk604 (6,04) (1:04:04) 500.0GB 160 MB/s 3 Disk605 (6,05) (1:04:05) 500.0GB 160 MB/s 4 Disk606 (6,06) (1:04:06) 500.0GB 160 MB/s 5 Disk607 (6,07) (1:04:07) 500.0GB 160 MB/s 6 Disk608 (6,08) (1:04:08) 500.0GB 160 MB/s 7 Disk609 (6,09) (1:04:09) 500.0GB 160 MB/s 8 Disk610 (6,10) (1:04:10) 500.0GB 160 MB/s 9 Как видим, каждый диск теперь отнесён к отдельному unit, то есть RAID-массиву уровня 0. ==== Зонирование оптических коммутаторов SAN ==== Настраиваем зонирование на оптических свичах SAN. То есть создаём возможность доступности созданных нами RAID-0 массивов с СХД MSA1500 для FC HBA контроллера нашего файлового сервера. ==== Настройка CentOS Linux - Инициализация multipath-устройств ==== После настройки зонирования переходим на наш Linux сервер и пробуем обновить на нём информацию об устройствах доступных из SAN: # ls -la /sys/class/scsi_host/ total 0 drwxr-xr-x. 2 root root 0 Aug 31 11:30 . drwxr-xr-x. 48 root root 0 Aug 31 11:30 .. lrwxrwxrwx. 1 root root 0 Aug 31 11:30 host0 -> ../../devices/pci... lrwxrwxrwx. 1 root root 0 Aug 31 11:30 host1 -> ../../devices/pci... lrwxrwxrwx. 1 root root 0 Aug 31 11:30 host2 -> ../../devices/pci... lrwxrwxrwx. 1 root root 0 Aug 31 11:30 host3 -> ../../devices/pci... # echo "- - -" > /sys/class/scsi_host/host[0-3]/scan В некоторых случаях это может не помочь, тогда просто пробуем перезагрузить сервер. После перезагрузки увидим, что логические дисковые устройства с MSA1500 доступны в системе. Причём каждое устройство в нашем случае доступно по двум путям, типа: # cat /proc/scsi/scsi Attached devices: ... Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: HP Model: MSA CONTROLLER Rev: 7.20 Type: RAID ANSI SCSI revision: 04 ... Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: HP Model: MSA CONTROLLER Rev: 7.20 Type: RAID ANSI SCSI revision: 04 ... === Настройка multipath === Пример настройки DM Multipath мы уже рассматривали ранее в статье [[https://blog.it-kb.ru/2016/06/12/configuring-device-mapper-multipathing-dm-multipat-mpio-in-centos-linux-7-2-with-emulex-and-qlogic-fc-hba-connecting-over-san-storage-hp-3par-7200-3par-os-3-2-2/|Настраиваем Device Mapper Multipathing в CentOS Linux 7.2 для FC HBA при подключении к СХД HP 3PAR 7200 (3PAR OS v. 3.2.2)]]. Здесь повторим главные моменты тезисно. Устанавливаем пакет **device-mapper-multipath**: # yum install device-mapper-multipath Генерируем файл в конфигурации «по умолчанию» (**/etc/multipath.conf**): # mpathconf --enable При необходимости корректируем **multipath.conf** по свою СХД. Выполняем запуск службы **multipathd** и проверяем результат: # service multipathd start # multipath -ll ... mpathk (3600508b30091bb407da37e0e4c440045) dm-4 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:1 sdk 8:160 active ready running `-+- policy='service-time 0' prio=10 status=enabled `- 2:0:0:1 sda 8:0 active ready running mpathl (3600508b30091bb40e026456edf0d0047) dm-9 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:6 sdf 8:80 active ready running `-+- policy='service-time 0' prio=10 status=enabled `- 3:0:0:6 sdp 8:240 active ready running ... Как видим, наши multipath-устройства успешно нашли свои пути и "собрались". Теперь из 20 устройств (10 логических массивов c MSA1500, каждое из которых видно системе по двум путям) мы получили 10 multipath-устройств: # ls -la /dev/mapper/ drwxr-xr-x. 2 root root 260 Aug 31 11:30 . drwxr-xr-x. 22 root root 4440 Aug 31 11:30 .. crw-------. 1 root root 10, 236 Aug 31 11:30 control lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathk -> ../dm-4 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathl -> ../dm-9 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathm -> ../dm-0 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathn -> ../dm-1 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpatho -> ../dm-3 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathp -> ../dm-8 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathq -> ../dm-5 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpathr -> ../dm-2 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpaths -> ../dm-6 lrwxrwxrwx. 1 root root 7 Aug 31 11:30 mpatht -> ../dm-7 Далее эти multipath-устройства мы будем использовать как диски для построения программного RAID. ==== Настройка CentOS Linux - Создание программного RAID ==== === Настройка mdadm - создание программного RAID === Более развёрнуто настройку программного RAID мы рассматривали ранее в заметке [[https://blog.it-kb.ru/2016/08/29/centos-linux-7-2-and-software-raid-6-with-mdadm-on-hp-smart-array-6400-scsi-controller-connected-to-hp-msa-20-storage/|CentOS Linux 7.2 и программный RAID с помощью mdadm]]. Здесь опять же пробежимся тезисно. Устанавливаем пакет **mdadm**: # yum install mdadm -y Создаём RAID массив уровня 6 из 10 наших multipath-устройств: # mdadm --create /dev/md0 --level=6 --raid-devices=10 /dev/mapper/mpath[klmnopqrst] mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. Проверяем состояние массива командой: # 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 : Wed Aug 31 17:40:31 2016 State : active, resyncing Active Devices : 10 Working Devices : 10 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Resync Status : 1% complete Name : 0 UUID : 5baba46f:31132696:5f8b64f3:1e9605d9 Events : 605 Number Major Minor RaidDevice State 0 253 4 0 active sync /dev/dm-4 1 253 9 1 active sync /dev/dm-9 2 253 0 2 active sync /dev/dm-0 3 253 1 3 active sync /dev/dm-1 4 253 3 4 active sync /dev/dm-3 5 253 8 5 active sync /dev/dm-8 6 253 5 6 active sync /dev/dm-5 7 253 2 7 active sync /dev/dm-2 8 253 6 8 active sync /dev/dm-6 9 253 7 9 active sync /dev/dm-7 Как видим, наш массив успешно создан и находится в стадии инициализации. Генерируем конфигурационный файл, чтобы наш массив автоматически стартовал после перезагрузки системы в нужной нам конфигурации: # mdadm --detail --scan > /etc/mdadm.conf После генерации файла, правим его # cat /etc/mdadm.conf DEVICE /dev/dm* DEVICE /dev/mapper/mpath* ARRAY /dev/md0 metadata=1.2 name=0 UUID=5baba46f:31132696:5f8b64f3:1e9605d9 MAILADDR DST-KOM-FS03-Admins@holding.com MAILFROM KOM-FS03@holding.com Запускаем службу **mdmonitor** и проверяем её состояние: # service mdmonitor restart # service mdmonitor status \\ === Монтирование RAID-тома === Создаём файловую систему на массиве (в нашем случае это будет ext4), затем создаём каталог, в который будем монтировать созданный раздел и, наконец, монтируем этот раздел: # mkfs.ext4 /dev/md0 # mkdir /mnt/mdadm-vv1 # mount /dev/md0 /mnt/mdadm-vv1 # df -H /dev/md0 Теперь пропишем в файл **/etc/fstab** информацию для автоматического монтирования раздела в точку монтирования **/mnt/mdadm-vv1** в процессе загрузки системы. Для этого сначала узнаем **UUID** раздела: # blkid /dev/md0 /dev/md0: UUID="ace6cab1-015a-475c-aa09-11e12c046db1" TYPE="ext4" Затем добавим информацию о монтировании в конец файла **/etc/fstab** ... # # Mount software RAID-disk /dev/md0 on /mnt/mdadm-vv1 # UUID=ace6cab1-015a-475c-aa09-11e12c046db1 /mnt/mdadm-vv1 ext4 discard,defaults 0 2 После этого перезагружаем сервер и убеждаемся в том, что конечный результат достигнут и раздел автоматически монтируется в точку монтирования /mnt/mdadm-vv1. Пробуем создать новый пустой файл в смонтированном в каталог разделе, проверяя тем самым возможность записи в этот каталог: # touch /mnt/mdadm-vv1/write-test.txt # rm /mnt/mdadm-vv1/write-test.txt ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 31.08.2016 17:54 {{tag>Linux CentOS "CentOS 7.2" multipath RAID mdadm mdraid "Multiple Device" "MD RAID" HP MSA20 MSA1500 SAN SCSI FC fstab}} ~~DISCUSSION~~