Всем привет, сегодня у меня выходной, поэтому займёмся расширением массива на mdadm. У нас имеется массив RAID10 из четырёх дисков NVMe. Добавим ещё два диска и расширим массив.
Расширять будем с минимальным простоем. Нам понадобится отключить сервер только для установки новых дисков. Расширение массива далее будем проводить на лету, как говорится, не отходя от кассы.
Часть первая, аппаратная: установка дисков
В правом углу ринга у нас сервер HPE Proliant DL580 Gen9. Выключаем сервер, выдвигаем из стойки и снимаем крышку.
Готовим новые диски:
Samsung SSD MZPLJ12THALA-00007 — NVMe 12.8 ТБ
Устанавливаем диски в сервер.
Получаем шесть одинаковых дисков, которые должны быть в одном массиве.
Собираем сервер, включаем и проверяем что диски определились. Для проверки NVMe дисков используем пакет NVMe Command Line Interface (NVMe-CLI).
nvme list
В системе теперь шесть дисков 12 ТБ.
cat /proc/mdstat
В сервере собрано два массива, нас интересует md30. Это RAID10 из четырёх дисков (на каждом диске создан раздел):
- /dev/nvme0n1p1
- /dev/nvme1n1p1
- /dev/nvme4n1p1
- /dev/nvme5n1p1
Новые диски:
- /dev/nvme6n1
- /dev/nvme7n1
Часть вторая, программная: расширение RAID10 массива
Проверяем состояние массива.
mdadm --detail /dev/md30
Массив работает.
Диски будем добавлять по аналогии с существующими. Предварительно нужно создать на дисках разделы.
lsblk
Диски nvme6n1 и nvme7n1 без разделов. Для создания разделов используем fdisk.
fdisk /dev/nvme6n1
g
n
w
fdisk /dev/nvme7n1
g
n
w
lsblk
Созданы разделы:
- /dev/nvme6n1p1
- /dev/nvme7n1p1
Добавляем оба новых раздела в массив:
mdadm /dev/md30 -a /dev/nvme6n1p1
mdadm /dev/md30 -a /dev/nvme7n1p1
Осмотрим массив.
mdadm --detail /dev/md30
Оба диска добавлены в качестве spare. Обращаем внимание на Array Size, объём массива 24 ТБ, нужно расширить. Сделаем это, меняем количество активных устройств на шесть:
mdadm -G /dev/md30 --raid-devices=6 --backup-file=/var/backup
Проверяем.
mdadm --detail /dev/md30
Теперь в массиве шесть активных дисков, объём пока не изменился. Массив в состоянии reshaping.
Процесс перестроения можно также отслеживать с помощью команды:
cat /proc/mdstat
Осталось 1868 минут, долго. Ускорим.
mdadm — увеличиваем скорость синхронизации массива
echo 1200000 > /proc/sys/dev/raid/speed_limit_max
Эти диски можно и быстрее разогнать, но нужно оставить ресурсы для работы сервера.
Осталось 192 минуты, уже лучше. Дождёмся окончания перестроения массива.
Массив перестроился.
mdadm --detail /dev/md30
Объём массива 36 ТБ. Теперь можно расширить файловую систему. В зависимости от файловой системы:
resize2fs /dev/md30
# или
xfs_growfs /путь_куда_примонтировано
Мы успешно расширили mdadm массив RAID10 на два диска, теперь он состоит из шести NVMe дисков.