Сборка RAID
Перед сборкой, стоит подготовить наши носители. Затем можно приступать к созданию рейд-массива.
Подготовка носителей
Сначала необходимо занулить суперблоки на дисках, которые мы будем использовать для построения RAID (если диски ранее использовались, их суперблоки могут содержать служебную информацию о других RAID):
mdadm —zero-superblock —force /dev/sd{b,c}
- в данном примере мы зануляем суперблоки для дисков sdb и sdc.
Если мы получили ответ:
mdadm: Unrecognised md component device — /dev/sdb
mdadm: Unrecognised md component device — /dev/sdc
… то значит, что диски не использовались ранее для RAID. Просто продолжаем настройку.
Далее нужно удалить старые метаданные и подпись на дисках:
wipefs —all —force /dev/sd{b,c}
Создание RAID1
Для сборки зеркала массива применяем следующую команду:
mdadm —create —verbose /dev/md2 -l 1 -n 2 /dev/sd{b,c}
- где:
/dev/md2 — устройство RAID, которое появится после сборки;
-l 1 — уровень RAID;
-n 2 — количество дисков, из которых собирается массив;
/dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
root@openstorage:~# mdadm —create —verbose /dev/md2 -l 1 -n 2 /dev/sd{d,c}
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
—metadata=0.90
mdadm: size set to 488254464K
mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.
lsblk
root@openstorage:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─md0 9:0 0 1.8T 0 raid1 /srv/dev-disk-by-uuid-16fdebae-976a-4609-ae8f-aa7df1d7dcb2
sdb 8:16 0 1.8T 0 disk
└─md0 9:0 0 1.8T 0 raid1 /srv/dev-disk-by-uuid-16fdebae-976a-4609-ae8f-aa7df1d7dcb2
sdc 8:32 0 465.8G 0 disk
└─md2 9:2 0 465.7G 0 raid1
sdd 8:48 0 465.8G 0 disk
└─md2 9:2 0 465.7G 0 raid1
nvme0n1 259:0 0 232.9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 224.5G 0 part /
└─nvme0n1p3 259:3 0 7.9G 0 part [SWAP]
root@openstorage:~# mkdir /etc/mdadm
mkdir: cannot create directory ‘/etc/mdadm’: File exists
Создание файла mdadm.conf
В файле mdadm.conf находится информация о RAID-массивах и компонентах, которые в них входят. Для его создания выполняем следующие команды:
mkdir /etc/mdadm
echo «DEVICE partitions» > /etc/mdadm/mdadm.conf
mdadm —detail —scan —verbose | awk ‘/ARRAY/ {print}’ >> /etc/mdadm/mdadm.conf
Пример содержимого:
DEVICE partitions
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=openstorage.local:0 UUID=83a6be48:092c807a:cd47dfee:af9c52c0
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=1.2 name=openstorage.local:2 UUID=356b2323:03335dbd:3326a285:07e7cb46
- в данном примере хранится информация о массиве /dev/md0 — его уровень 1, он собирается из 2-х дисков.
- в данном примере хранится информация о массиве /dev/md2 — его уровень 1, он собирается из 2-х дисков.
Создание файловой системы и монтирование массива
Создание файловой системы для массива выполняется также, как для раздела:
mkfs.ext4 /dev/md2
- данной командой мы создаем на md0 файловую систему ext4.
Примонтировать раздел можно командой:
mount /dev/md2 /mnt
Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab следующее:
nano /etc/fstab
/dev/md2 /mnt ext4 defaults 1 2
Для проверки правильности fstab, вводим:
umount /mnt
mount -a
Информация о RAID
Посмотреть состояние всех RAID можно командой:
cat /proc/mdstat
В ответ мы получим что-то на подобие:
root@openstorage:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdc[1] sdd[0]
488254464 blocks super 1.2 [2/2] [UU]
[======>…………..] resync = 33.8% (165451840/488254464) finish=32.2min speed=166777K/sec
bitmap: 3/4 pages [12KB], 65536KB chunk
md0 : active raid1 sda[0] sdb[1]
1953382464 blocks super 1.2 [2/2] [UU]
bitmap: 0/15 pages [0KB], 65536KB chunk
Подробную информацию о конкретном массиве можно посмотреть командой:
mdadm -D /dev/md0
- где /dev/md2 — имя RAID устройства.
Проверка целостности
Для проверки целостности вводим:
echo ‘check’ > /sys/block/md0/md/sync_action
Результат проверки смотрим командой:
cat /sys/block/md0/md/mismatch_cnt
- если команда возвращает 0, то с массивом все в порядке.
Остановка проверки:
echo ‘idle’ > /sys/block/md0/md/sync_action
Замена диска
посмотреть инфо диска
hdparm -i /dev/sdd
Пометим диск как сбойный
mdadm /dev/md2 -f /dev/sdd
удалим диск
mdadm /dev/md2 -r /dev/sdd
cat /proc/mdstat
root@openstorage:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sdc[1]
488254464 blocks super 1.2 [2/1] [_U]
bitmap: 0/4 pages [0KB], 65536KB chunk
подключаем новый диск и смотрим его
lsblk -l
подготавливаем диск, размечаем и форматируем
fdisk /dev/sdd
mkfs.ext4 /dev/sdd1
подключим новый диск в raid
mdadm /dev/md2 -a /dev/sdd
cat /proc/mdstat