===== Как создать программный 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~~