СБОРКА RAID1 MDADM

Сборка 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