Имеем массив RAID1 из двух дисков. Задача: добавить третий диск и преобразовать RAID1 в RAID5 с минимальным временем простоя сервиса. У меня используются диски NVMe.
Выключаем сервер, устанавливаем новый физический диск, включаем сервер.
Информация о RAID1
Текущая статистика массивов:
cat /proc/mdstat
Видим массив md127 в режиме raid1. Массив состоит из двух разделов: nvme2n1p1 и nvme1n1p1. Более подробная информация о текущем массиве:
mdadm --detail /dev/md127
Запоминаем пути разделов:
- /dev/nvme2n1p1
- /dev/nvme1n1p1
Подготовка раздела
Выведем в виде дерева структуру разделов дисков:
lsblk | grep nvme
Видно, что имеется три диска, на диске nvme0n1 разделов нет, значит, это наш новый диск. Диск большой, больше 2 ТБ, поэтому нужно создать на нём GPT раздел. Использую fdisk.
fdisk /dev/nvme0n1
- g — метка GPT
- n — новый раздел
- w — сохранить
Раздел на новом диске создан.
lsblk | grep nvme
Видим, что появился новый раздел, который мы будем добавлять в массив:
- /dev/nvme0n1p1
Добавление диска в RAID1
Добавляем новый раздел в RAID1:
mdadm --manage /dev/md127 --add /dev/nvme0n1p1
Посмотрим текущее состояние массива:
mdadm --detail /dev/md127
Видно, что новый раздел добавился в качестве spare. Массив пока RAID1.
Преобразование RAID1 в RAID5
Меняем RAID1 на RAID5:
mdadm --grow /dev/md127 --level 5 --raid-devices 3
Посмотрим текущее состояние массива:
mdadm --detail /dev/md127
Тип массива RAID5, в массиве три диска. Состояние — reshaping. Завершено 0%.
Текущая статистика массивов также показывает состояние:
cat /proc/mdstat
Можно посмотреть время до окончания процесса перестроения массива и скорость перестроения.
Через 1122 минуты (примерно) перестроение завершилось.
Расширение файловой системы
Осталось расширить файловую систему, для ext4 использую resize2fs:
resize2fs /dev/md127