
Сегодня у нас классическая задачка: увеличить объём массива RAID5, собранного с помощью mdadm. Операция отработана, мы уже это делали раньше.
mdadm — добавляем диски в RAID5 массив
mdadm — добавляем диск большего объёма в RAID5
В прошлый раз мы перешли на диски Micron объёмом 12.5 ТБ.
SSD Micron U.3 7450 Max 12.5TB — MTFDKCC12T8TFS-1BC1ZAB
Сегодня продолжаем тему, добавим ещё два диска в RAID5 массив. Естественно, все операции выполним на лету без отключения сервера.
Наш рабочий стенд:
- Сервер Supermicro SYS-2029U-TN24R4T
- И в нём куча NVMe дисков
Установка диска
Отправляюсь в ЦОД. Для дисков понядобятся салазки, извлекаю их из сервера. Определить легко, они не подсвечиваются светодиодами и замок на салазках открыт. Нужно две штуки.

Отлично, начало положено.

Достаю диски. У нас NVMe диски корпоративного класса большого объёма 12.8 ТБ повышенной надёжности DWPD 3. Подходят для баз данных, Big Data, облачных вычислений, OLTP. Предназначены для критически важных приложений.
- Производитель: Micron
- Модель: MTFDKCC12T8TFS-1BC1ZAB
- Линейка: 7450 MAX
- Ёмкость: 12800 ГБ
- Формат: 2.5" U.3
- Интерфейс: PCI-E Gen4 x4 (NVMe)
- Скорость чтения: 6800 МБ/с
- Скорость записи: 5600 МБ/с
- Надёжность
- PBW (TBW PB) = 70
- TBW (TBW TB) = 70000
- DWPD = 2.996 ≈ 3
- GB/day = 38356.164

Самое главное — помнить, что винты от заглушек в салазках не подходят для крепления дисков. Винты нужно брать с собой.


Снимаем заглушки. Винты, как видно, саморезы для пластика.

Готовим диски, салазки, винты, отвёртку.


Салазки установлены.

Не выключая сервер устанавливаю первый диск на горячую.

Диск определился. Салазки позволяют заблокировать механизм от случайного извлечения. Понадобится маленькая плоская отвёртка.

Устанавливаем второй диск.

На этом аппаратная часть закончена.
Сбор сведений
Проверим, что диск корректно определился с помощью NVMe Command Line Interface (NVMe-CLI).
nvme list

В сервере 17 дисков, новые будут 18-м и 19-м.
Посмотрим текущее состояние массивов.
cat /proc/mdstat

Массив md0 состоит из 17 дисков, вернее разделов:
- nvme0n1p1
- nvme1n1p1
- nvme2n1p1
- nvme3n1p1
- nvme4n1p1
- nvme5n1p1
- nvme6n1p1
- nvme7n1p1
- nvme8n1p1
- nvme9n1p1
- nvme10n1p1
- nvme11n1p1
- nvme12n1p1
- nvme13n1p1
- nvme14n1p1
- nvme15n1p1
Все диски в состоянии U (Up). Есть один spare диск [S].
Массив в состоянии active, всё в порядке. Детальную информацию можно посмотреть командой:
mdadm --detail /dev/md0

Подготовка диска
Выводим все NVMe диски со структурой в виде дерева:
lsblk | grep nvme

Видим, что на новых дисках нет разделов, они называется:
- nvme17n1
- nvme18n1
Создадим раздел на новом диске с помощью fdisk:
fdisk /dev/nvme17n1
g
n
w

Повторим операцию для второго диска.
fdisk /dev/nvme17n1
g
n
w

Проверим что разделы созданы.
lsblk | grep nvme

Расширение массива
Добавляем новые разделы в массив:
mdadm /dev/md0 -a /dev/nvme17n1p1
mdadm /dev/md0 -a /dev/nvme18n1p1
Операция быстрая.

Посмотрим что получилось:
mdadm --detail /dev/md0

Разделы добавились как spare диски. Теперь расширяем массив:
mdadm -G /dev/md0 --raid-devices=18 --backup-file=/var/backup
Где raid-devices — новое количество активных дисков (не считая spare), а backup-file — файл с сохранённой структурой массива.

mdadm --detail /dev/md0

Пришлось уменьшить размер текста, чтобы всё вошло на экран.
Статус массива active, resharping. 0% complete. Массив перестраивается, при этом активно используется базой, простоя нет.
Можно узнать скорость перестроения и время до окончания процесса:
cat /proc/mdstat

Отображается время до перестроения массива. Ускорим.
mdadm — увеличиваем скорость синхронизации массива
echo 1200000 > /proc/sys/dev/raid/speed_limit_max
После окончания процедуры можно будет расширить файловую систему.