Создаём RAID массив в Debian 12

Итак, пройдёмся по шагам и создадим RAID-1 в Debian 12.

Что имеем?

Имеем:

  1. Сервер с установленной ОС Debian 12 Bookworm
    Информация
    smaks@linadm:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description:    Debian GNU/Linux 12 (bookworm)
    Release:        12
    Codename:       bookworm
  2. Конфигурация жёстких дисков в системе:
    Информация
    smaks@linadm:~$ lsblk
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    vda    254:0    0  10G  0 disk 
    ├─vda1 254:1    0   1M  0 part 
    └─vda2 254:2    0  10G  0 part /
    vdb    254:16   0   4G  0 disk 
    vdc    254:32   0   4G  0 disk 
    Здесь мы видим:
    • диск vda размером 10 Гб, с разделами vda1 и vda2 - это диск на который установлена наша ОС Debian 12 Bookworm;
    • диски vdb и vdc, размером по 4 Гб - не размечены, не имеют файловой системы и не смонтированы. На этих дисках мы как раз и будем создавать наш RAID-1 массив;
Внимание!!!
При повторении шагов описанных в данной статье ОБЯЗАТЕЛЬНО!!! правильно указывайте наименование ваших блочных устройств!!! Бездумное копирование команд - ни к чему хорошему не приведёт!

Установка mdadm

Для сборки и управления RAID массивами в Linux применяется утилита mdadm. Чаще всего она уже установлена в Debian, но может случится и так, что её не окажется в установочном образе, поэтому ниже приведу команду для её установки:

sudo apt install mdadm

Подготовка дисков к включению их RAID

Если диски ранее использовались, на них могла остаться различная служебная информация, которая может помешать нам получить желаемый результат. Поэтому диски нужно очистить от этой информации:

  1. Очищаем суперблоки дисков vdb и vdc:
sudo mdadm --zero-superblock --force /dev/vd{b,c}
  1. Удаляем старые метаданные и подпись на дисках vdb и vdc:
sudo wipefs --all --force /dev/vd{b,c}

Всё, диски подготовлены - переходим к следующему шагу.

Собираем RAID-1

Для сборки RAID массива уровня 1, используем следующую команду:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/vdb /dev/vdc

В данной команде мы говорим утилите mdadm следующее:

  • --create - создать массив;
  • --verbose - выводить подробную информацию при работе утилиты mdadm;
  • /dev/md0 - имя блочного устройства RAID которое появится после сборки массива;
  • --level=1 - уровень RAID массива. В нашем случае это массив уровня 1;
  • --raid-devices=2 - количество дисков включаемых в массив;
  • /dev/vdb /dev/vdc - имена дисков включаемых в массив, которые мы определили выше, используя команду lsblk.

При выполнении этой команды в терминале мы получим примерно следующий вывод:

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 4189184K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

Здесь mdadm выводит нам различные предупреждения, просит подтвердить размер создаваемого массива, сообщает о том, что по дефолту применяются метаданные версии 1.2 и в последней строке сообщает, что наш RAID массив с именем /dev/md0 успешно запущен.

Проверим, что теперь нам покажет команда lsblk:

NAME   MAJ:MIN RM SIZE RO TYPE  MOUNTPOINTS
vda    254:0    0  10G  0 disk  
├─vda1 254:1    0   1M  0 part  
└─vda2 254:2    0  10G  0 part  /
vdb    254:16   0   4G  0 disk  
└─md0    9:0    0   4G  0 raid1 
vdc    254:32   0   4G  0 disk  
└─md0    9:0    0   4G  0 raid1

Видим, что собранный RAID-1, размером 4Гб из дисков vdb и vdc успешно создан и отображается в выводе команды.

Создаём файл mdadm.conf

Для правильной работы mdadm необходимо создать файл конфигурации mdadm.conf, для чего необходимо выполнить следующую команду:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Вывод терминала при выполнении данной команды будет иметь следующий вид:

smaks@linadm:~$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=linadm:0 UUID=cc471c0d:f31f0921:06ae381c:c788c429

Создаём файловую систему на нашем RAID массиве

Внимание!!!

Перед созданием файловой системы на разделе RAID ОБЯЗАТЕЛЬНО! дождитесь полного окончания синхронизации дисков включенных в RAID массив!!!
Если вывод команды имеет приблизительно вид приведённый ниже - синхронизация дисков не закончена и необходимо дождаться её полного окончания!!!

smaks@linadm:~$ cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdb[0] vdc[1]
      4189184 blocks super 1.2 [2/2] [UU]
      [===>.................]  check = 19.4% (813568/4189184) finish=2.5min speed=22030K/sec
      
unused devices: <none>

По окончании синхронизации дисков вывод команды cat /proc/mdstat будет примерно таким:

smaks@linadm:~$ cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdb[0] vdc[1]
      4189184 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

Для создания файловой системы ext4 на полученном RAID массиве /dev/md0 выполним команду:

sudo mkfs.ext4 /dev/md0

Автоматическое монтирование полученного RAID массива

Для автоматического монтирования созданного нами RAID массива при загрузке операционной системы, нам необходимо добавить данные о нём в файл /etc/fstab, для чего выполним следующие действия:

  1. Создадим каталог в который будем монтировать раздел созданный на RAID массиве
sudo mkdir -p /mnt/raid1
  1. Выполним команду sudo blkid | grep md0, вот её вывод:
    smaks@linadm:~$ sudo blkid | grep md0 /dev/md0: UUID="000968b7-4a6a-4cc8-a385-361e5926a4b9" BLOCK_SIZE="4096" TYPE="ext4" Из вывода команды нам понадобиться это значение UUID="000968b7-4a6a-4cc8-a385-361e5926a4b9";
  2. Сформируем строку для вставки в файл /etc/fstab:
/dev/disk/by-uuid/000968b7-4a6a-4cc8-a385-361e5926a4b9 /mnt/raid1 ext4 defaults 0   2

Разберёмся что здесь и для чего:

  • /dev/disk/by-uuid/000968b7-4a6a-4cc8-a385-361e5926a4b9 - параметр определяющий по UUID монтируемое, блочное устройство. Значение 000968b7-4a6a-4cc8-a385-361e5926a4b9 мы получили на предыдущем шаге, с помощью команды: sudo blkid | grep md0;
  • /mnt/raid1 - директория куда монтируется наше блочное устройство;
  • ext4 - тип файловой системы раздела созданного на блочном устройстве RAID /dev/md0;
  • defaults - указывает на то, что при монтировании используются опции монтирования по умолчанию, а именно: rw, suid, dev, exec, auto, nouser, async;
  • 0 - указывает нужно ли делать резервную копию раздела. В данном случае нет.
  • 2- указывает в какой очереди нужно проверять устройство на ошибки, 1 - в первую очередь, 2 - вторую, 0 - не проверять;
  1. Добавляем полученную в пункте 3 строку в файл /etc/fstab, для чего воспользуемся любым текстовым редактором. В данном случае, я использую текстовый редактор nano:
sudo nano /etc/fstab

Файл будет иметь примерно следующий вид:

nano
Внимание!!!
После того как вы добавите в конец файла /etc/fstab полученную вами строку, обязательно перед сохранением изменений в файл, переведите курсор на следующую строку как это показано на скриншоте выше!

Обновляем информацию initramfs

Для того чтобы операционная система знала о массиве на раннем этапе загрузки, нужно обновить информацию для initramfs, выполнив команду:

sudo update-initramfs -u

Заключение

Всё, на данном этапе RAID массив уровня 1, с файловой системой ext4 создан, автоматически, при загрузке операционной системы будет монтироваться в каталог /mnt/raid1 и полностью готов к использованию!

Посмотреть краткое состояние RAID массива можно с помощью команды:

cat /proc/mdstat

Вот её вывод:

smaks@linadm:~$ cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid1 vdc[1] vdb[0]
      4189184 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>

В предпоследней строке мы видим 2 секции параметров “здоровья” RAID массива: [2/2] [UU], которые означают соответственно: что в RAID массиве используются два диска из двух и что они оба в порядке.

0%