Перейти к основному содержанию

mdadm — создаём RAID5 массив

Linux

Объединяю три диска в RAID 5 массив. На этот раз более полная версия от установки дисков до создания файловой системы. Операционная система Oracle Linux.

Установка дисков

Диски объёмом 12.8 ТБ:

Samsung SSD MZPLJ12THALA-00007 — NVMe 12.8 ТБ

Устанавливаю в сервер HP ProLiant DL360 Gen9:

HPE ProLiant DL360 Gen9 — обзор

HP Proliant DL360 Gen9 — установка PCIe NVMe диска

В эту модель сервера можно установить максимум три таких диска. В первый слот понадобится полнопрофильная планка, во второй и третий — укороченная, придётся поработать отвёрткой.

mdadm

Модели дисков можно посмотреть с помощью команды nvme из пакета nvme-cli:

nvme list

mdadm

После установки дисков и загрузки сервера выполняем:

lsblk | grep nvme

mdadm

Видим, что диски определились как nvme0n1, nvme2n1, nvme1n1.

Подготовка GPT разделов

Объём NVMe превышает 2 ТБ, поэтому создадим GPT разделы на дисках, а уже потом объединим их в RAID5 массив. Есть разные способы создать GPT раздел:

Linux — создать GPT раздел более 2 терабайт

Создаём GPT раздел на диске nvme0n1. Я использую fdisk:

[root@db02 ~]# fdisk /dev/nvme0n1
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): g
Building a new GPT disklabel (GUID: 30FC3176-F4BE-4888-A503-0684B1F9ECD6)


Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-25000148958, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-25000148958, default 25000148958):
Created partition 1


Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

mdadm

Аналогично создаём GPT раздела на дисках nvme2n1, nvme1n1:

fdisk /dev/nvme2n1
fdisk /dev/nvme1n1

Проверяем что получилось:

lsblk | grep nvme

mdadm

У нас теперь есть три раздела:

  • /dev/nvme0n1p1
  • /dev/nvme2n1p1
  • /dev/nvme1n1p1

mdadm — создаём RAID5

Я использую б/у диски из другого сервера, поэтому не помешает их почистить:

mdadm --zero-superblock /dev/nvme0n1p1
mdadm --zero-superblock /dev/nvme2n1p1
mdadm --zero-superblock /dev/nvme1n1p1
wipefs --all --force /dev/nvme0n1p1
wipefs --all --force /dev/nvme2n1p1
wipefs --all --force /dev/nvme1n1p1

Проверим какие уже есть массивы:

cat /proc/mdstat

mdadm

Массивов нет, нам же проще. Создавать будем массив md10.

mdadm --create --verbose /dev/md10 --level=5 --raid-devices=3 /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1
или
mdadm --create --verbose /dev/md10 -l 5 -n 3 /dev/nvme0n1p1 /dev/nvme2n1p1 /dev/nvme1n1p1

mdadm

Массив /dev/md10 создан. Проверим состояние.

mdadm --detail /dev/md10

mdadm

Состояние массива clean, degraded, recovering. Не пугаемся, всё в порядке. Начинается перестроение массива, но даже в таком состоянии диском можно уже пользоваться.

Создаём mdadm.conf

Чтобы после перезагрузки массив так и остался с названием md10, нужно сделать файл mdadm.conf. Создаём директорию:

mkdir /etc/mdadm

Заполняем конфигурационный файл:

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

mdadm

Конфигурационный файл создан.

cat /etc/mdadm/mdadm.conf

mdadm

Я перезагружаю сервер, чтобы проверить, что имя массива после перезагрузки md10, но это не обязательно.

Создание файловой системы

Создаём файловую систему EXT4:

mkfs.ext4 -m 0 /dev/md10

mdadm

Определяем идентификатор UUID:

blkid /dev/md10

mdadm

В ответ получаем:

/dev/md10: UUID="b1c72884-b7f5-4154-bd99-16dbcaf7bf39" TYPE="ext4"

Создаём директорию /u01 для монтирования:

mkdir /u01

В /etc/fstab добавляем опцию монтирования:

UUID=b1c72884-b7f5-4154-bd99-16dbcaf7bf39 /u01  ext4  defaults  0 0

Монтируем:

mount -a
df -h | grep u01

mdadm

Теперь в системе есть новая директория на 24 ТБ. Директорией можно пользоваться, но осторожно, так как перестроение ещё не закончилось.

Заключение

Время перестроения можно узнать:

cat /proc/mdstat

mdadm

Осталось 992 минуты.

После перестроения:

cat /proc/mdstat
mdadm --detail /dev/md10

mdadm

Теперь массив выдержит выход из строя одного диска.

Теги

 

Похожие материалы

HPE — hpssacli для работы с RAID Smart Array в Linux

На сервере HPE ProLiant сдох диск в RAID массиве. Массив аппаратный на базе контроллера Smart Array. Вместо неисправного диска был использован SPARE диск. iLO отображает статус Degraded (Rebuilding). Массив перестраивается, но процент перестроения не указан.

Теги

mdadm — RAID1 массив из NVMe дисков на сервере HPE Proliant DL580 Gen9

У нас есть опыт организации высоконагруженных отказоустойчивых систем. Отказоустойчивость подразумевает избыточность дисковой подсистемы, проще говоря, из дисков нужно собирать RAID массивы.

Теги