Создаём RAID массив в Debian 12
Итак, пройдёмся по шагам и создадим RAID-1 в Debian 12.
Что имеем?
Имеем:
- Сервер с установленной ОС
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
- Конфигурация жёстких дисков в системе:
Информация
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
Если диски ранее использовались, на них могла остаться различная служебная информация, которая может помешать нам получить желаемый результат. Поэтому диски нужно очистить от этой информации:
- Очищаем суперблоки дисков
vdb
иvdc
:
sudo mdadm --zero-superblock --force /dev/vd{b,c}
- Удаляем старые метаданные и подпись на дисках
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
, для чего выполним следующие действия:
- Создадим каталог в который будем монтировать раздел созданный на RAID массиве
sudo mkdir -p /mnt/raid1
- Выполним команду
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"
; - Сформируем строку для вставки в файл
/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
- не проверять;
- Добавляем полученную в пункте 3 строку в файл /etc/fstab, для чего воспользуемся любым текстовым редактором. В данном случае, я использую текстовый редактор
nano
:
sudo nano /etc/fstab
Файл будет иметь примерно следующий вид:
/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 массиве используются два диска из двух и что они оба в порядке.