Пример создания дискового массива RAID 5#
Для работы будет использоваться утилита mdadm
RAID 5 используется при наличии минимум 3 дисков.
Установка mdadm#
apt-get install mdadm
Сборка RAID#
Подготовка носителей#
Проверить список дисков в системе:
lsblk
2. Занулить суперблоки на дисках, которые будут использовать для построения RAID (если диски ранее использовались, их суперблоки могут содержать служебную информацию о других RAID):
mdadm --zero-superblock --force /dev/sd{b,c,d}
Ответ:
mdadm: Unrecognised md component device - /dev/sdb
mdadm: Unrecognised md component device - /dev/sdc
mdadm: Unrecognised md component device - /dev/sdd
Означает, что диски не использовались в RAID
Удалить старые метаданные и подпись на дисках:
wipefs --all --force /dev/sd{b,c,d}
Создание рейда#
Cобрать избыточный массив следующей командой:
mdadm --create --verbose /dev/md0 -l 5 -n 3 /dev/sd{b,c,d}
где:
/dev/md0 — устройство RAID, которое появится после сборки;
-l 5 — уровень RAID 5;
-n 3 — количество дисков, из которых собирается массив;
/dev/sd{b,c,d} — сборка выполняется из дисков sdb и sdc.
Примерный вывод:
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 1046528K
Cистема задаст контрольный вопрос, необходимо ли продолжить и создать RAID — нужно ответить y:
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
Проверить список дисков:
lsblk
Найти информацию о том, что у дисков sdb, sdc, sdd появился раздел md0, например:
В примере виден собранный raid5 из дисков sdb,sdc и sdd
Создание файла 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
Пример содержимого:
в данном примере хранится информация о массиве /dev/md0 — его уровень 5 , он собирается из 3-х дисков.
Создание файловой системы и монтирование массива#
Создать файловую систему ext4 для массива. Выполняется также, как для раздела:
mkfs.ext4 /dev/md0
Создать каталог для монтирования:
mkdir /etc/raid5
Примонтировать раздел командой:
mount /dev/md0 /raid5
Обеспечить монтирование раздела при загрузке системы. Добавить в fstab
11.1 Получить идентификатор раздела (UUID):
blkid
11.2 Открыть fstab и добавить строку, вписав свой UUID:
vim /etc/fstab
Для разделения параметров использовать TAB
Отмонтировать раздел:
umount /raid5
Выполнить автомонтирование:
mount -a
Проверить примонтированный раздел md0:
df -h
!!! Перезагрузить систему и снова проверить монтирование раздела!!!
Информация о RAID#
Посмотреть состояние всех RAID можно командой:
cat /proc/mdstat
Пояснение:
md0 — имя RAID устройства;
raid1 sdd[2] sdc[1] sdb[0] — уровень избыточности и из каких дисков собран;
1046528 blocks — размер массива;
[3/3] [UUU] — количество юнитов, которые на данный момент используются.
Получить подробную информацию о конкретном массиве командой:
mdadm -D /dev/md0
где:
Version — версия метаданных.
Creation Time — дата в время создания массива.
Raid Level — уровень RAID.
Array Size — объем дискового пространства для RAID.
Used Dev Size — используемый объем для устройств. Для каждого уровня будет индивидуальный расчет: RAID1 — равен половине общего размера дисков, RAID5 — равен размеру, используемому для контроля четности.
Raid Devices — количество используемых устройств для RAID.
Total Devices — количество добавленных в RAID устройств.
Update Time — дата и время последнего изменения массива.
State — текущее состояние. clean — все в порядке.
Active Devices — количество работающих в массиве устройств.
Working Devices — количество добавленных в массив устройств в рабочем состоянии.
Failed Devices — количество сбойных устройств.
Spare Devices — количество запасных устройств.
Consistency Policy — политика согласованности активного массива (при неожиданном сбое). По умолчанию используется resync — полная ресинхронизация после восстановления. Также могут быть bitmap, journal, ppl.
Name — имя компьютера.
UUID — идентификатор для массива.
Events — количество событий обновления.
Chunk Size (для RAID5) — размер блока в килобайтах, который пишется на разные диски.
Подробнее про каждый параметр можно прочитать в мануале для mdadm:
man mdadm
Также, информацию о разделах и дисковом пространстве массива можно посмотреть командой fdisk:
fdisk -l /dev/md0
Проверка целостности#
Для проверки целостности ввести:
echo 'check' > /sys/block/md0/md/sync_action
Результат проверки смотреть командой:
cat /sys/block/md0/md/mismatch_cnt
если команда возвращает 0, то с массивом все в порядке.
Остановка проверки:
echo 'idle' > /sys/block/md0/md/sync_action
Восстановление, удаление массива можно посмотреть в статье