Программный RAID в Linux

Введение

RAID-массивом называют избыточный массив, состоящий из нескольких дисков, объединенных в один. Используется в основном для повышения отказоустойчивости компьютерных систем. RAID-массивы делятся по типу объединения дисков. Самые распространенные это RAID 0, RAID 1, RAID 5 и RAID 10.

  • RAID 0 - Массив с чередованием, без отказоустойчивости. Как таковым RAID-массивом не является, так как избыточность в нем отсутствует.
  • RAID 1 - Зеркальный массив.
  • RAID 5 - Массив с чередованием. Четность распределяется равномерно по всем дискам массива.
  • RAID 10 - это комбинация массива RAID 0 и массива RAID 1.

Массивы могут быть как аппаратными, состоящими из RAID-контроллера со встроенным в него программным обеспечением для управления массивами. Так и программными, где создание и управление массивами осуществляется средствами операционной системы.

В настоящей статье мы рассмотрим процесс создания программного массива RAID 1 при установке операционной системы CentOS 7, состоящего из двух жестких дисков, и после установки. CentOS 7 - это Linux дистрибутив. Так как установщик CentOS 7 поддерживает создание RAID-массивов, а поддержка программного RAID встроена в ядро Linux, поэтому дополнительные средства для создания RAID-массива не нужны.

Создание массива на этапе установки системы

Для создания RAID-массива нам понадобятся как минимум два жестких диска. RAID 1 - это зеркальный рейд, то есть информация, находящаяся на всех дисках этого массива будет дублироваться. При выходе одного диска из строя нужно только заменить неисправный диск и синхронизировать данные.

Описывать весь процесс установки CentOS 7 я не буду, остановлюсь только на создании рейда. И так, для того что бы создать массив и установить на него операционную систему на этапе установки заходим в расположение установки.

Установка CentOS 7

Установка CentOS 7

Далее помечаем все диски, которые хотим добавить в RAID-массив, выбираем пункт Я настрою разделы и жмем Готово.

Выбор дисков

Выбор дисков

Теперь создаем необходимые нам разделы. В примере я создам swap и root. Из них обязательным для создания является раздел root. Раздел swap, если не нужен, можно вообще не создавать. Так же обратите внимание на то, что создавать массивы с такими разделами не обязательно, это всего лишь пример того, как создавать массивы на этапе установки системы. В меню Тип устройства выбираем RAID. В меню Уровень RAID выбираем тип массива, который хотите создать. Я выбираю RAID 1. Указанные действия необходимо проделать для всех разделов, которые хотите добавить в массив.

Создание RAID-массива

Создание RAID-массива

Затем жмем Готово и подтверждаем изменения. После этого продолжаем установку операционной системы в обычном режиме.

Управление RAID-массивом

В Linux управление RAID-массивами осуществляется при помощи утилиты mdadm. Поскольку рейд был собран на этапе установки системы, данная утилита уже будет установлена. Для просмотра состояния массива после установки системы введите:

$ cat /proc/mdstat
Информация о дисковых массивах

Информация о дисковых массивах

Как видим в настоящий момент у нас имеется два массива. Один со swap разделом, другой с root. Для более подробной информации о каждом массиве введите:

$ mdadm --detail /dev/md126
$ mdadm --detail /dev/md127
Информация о массиве

Информация о массиве

В настоящий момент в массиве два диска, оба нормально функционируют, неисправных и запасных дисков нет. При выходе одно из дисков в массиве из строя, он отобразиться в строке Failed Devices. При добавлении запасного диска - в графе Spare Devices. В случае отказа одно из дисков при наличии в системе запасного, запасной диск автоматически будет включен в массив за место вышедшего из строя. Давайте попробуем сымитировать такую ситуацию. Для этого нам понадобится подключить и разметить еще один диск. После подключения проверяем определился ли диск в системе:

$ fdisk -l
Информация о подключенных дисках

Информация о подключенных дисках

Диск появился в системе с именем /dev/sdc. Теперь у нас три диска: /dev/sda, /dev/sdb, /dev/sdc и два массива состоящие из двух дисков (/dev/sda и /dev/sdb): /dev/md126, /dev/md127. Перед добавлением диска /dev/sdc в массив в качестве запасного его необходимо разметить. Проще всего это сделать через утилиту fdisk. Заходим утилитой на диск и вводим команду n:

$ fdisk /dev/sdc
Разметка диска

Разметка диска

Создаем primary раздел:

Создание primary раздела

Создание primary раздела

Затем вводим цифру 1 для создания первого раздела. Первый раздел на двух уже размеченных дисках это root раздел. Тритий диск размечаем точно так же как и размечены первые два. Вводим первый и последний сектора:

Создание root раздела

Создание root раздела

По аналогии с разметкой первого раздела, размечаем второй. У меня второй раздел это swap. После создания второго раздела необходимо изменить тип раздела на RAID. Для это вводим t, затем номер раздела который хотим изменить и указываем код fd. Изменяем тип обоих разделов. Далее для записи изменений на диск необходимо нажать w.

Запись изменений на диск

Запись изменений на диск

Проверяем правильность разметки:

$ fdisk -l
Получение информации о дисках

Получение информации о дисках

Все в порядке, разметка точно такая же, ка к и на двух других диска. Диск готов к добавлению в массив в качестве запасного. Добавляем:

$ mdadm /dev/md126 --add /dev/sdc1
$ mdadm /dev/md127 --add /dev/sdc2

И проверяем:

$ mdadm --detail /dev/md126
$ mdadm --detail /dev/md127
Добавление запасного диска в массив

Добавление запасного диска в массив

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

$ mdadm /dev/md126 --fail /dev/sda1
$ mdadm /dev/md127 --fail /dev/sda2

И смотрим информацию о массивах:

$ mdadm --detail /dev/md126
$ mdadm --detail /dev/md127
Замена неисправного диска запасным

Замена неисправного диска запасным

Началась процедура замены неисправного диска запасным. Дожидаемся завершения восстановления массива и проверяем еще раз.

Восстановление массива

Восстановление массива

Все в порядке. Массив успешно восстановлен. Осталось только удалить неисправный диск из массива и физически отключить от системы. Для этого выполняем команду:

$ mdadm /dev/md126 --remove /dev/sda1
$ mdadm /dev/md127 --remove /dev/sda2

Теперь можно посмотреть информацию о массивах и убедится, что неисправный диск удален:

$ mdadm --detail /dev/md126
$ mdadm --detail /dev/md127
Удаление неисправного диска из массива

Удаление неисправного диска из массива

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

Если на новый диск требуется установить загрузчик выполните:

$ grub2-install /dev/sdc

Создание массива после установки операционной системы

Массив не обязательно создавать на этапе установке системы. Можно это сделать и позже. Для этого разметьте диски, которые хотите добавить в массив, как в примере с добавлением нового диска. Затем установите утилиту mdadm:

$ yum install mdadm

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

$ mdadm --create /dev/md/mdnew --level=1 --raid-device=2 /dev/sdb1 /dev/sdc1

Данная команда создаст массив RAID 1 из двух дисков /dev/sdb1 и /dev/sdc1 с именем mdnew.

Проверяем:

$ cat /proc/mdstat
Созданные массивы

Созданные массивы

Массив успешно создан. Несмотря на то, что мы назвали наш массив mdnew, система автоматически присвоила ему свое имя md127.

После создания массива его необходимо отформатировать в нужную вам файловую систему. Например для форматирования в систему ext4 выполните:

$ mkfs.ext4 /dev/md127

Для того, что бы массив можно было использовать его необходимо смонтировать. Для этого сначала нужно определиться куда мы его будем монтировать. Для примера я создам в корне системы каталог /raid и смонтирую в него созданный массив. Создаем:

$ mkdir /raid

Монтируем:

$ mount /dev/md127 /raid

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

$ df -h
Смонтированные диски

Смонтированные диски

Массив успешно смонтирован в каталог /raid и готов к использованию. Обратите внимание, что монтирование выполненное командой mount, будет сохранено только до перезагрузки системы. Для того, что бы монтирование происходило автоматически при запуске системы необходимо внести об этом запись в файл fstab, расположенный в каталоге /etc. Открываем его для редактирования:

$ nano /etc/fstab

Вписываем туда строку и сохраняем изменения:

/dev/md127 /raid ext4 defaults 0 0
Редактирование fstab

Редактирование fstab

Для остановки массива сначала его необходимо отмонтировать:

$ umount /dev/md127

Затем остановить:

$ mdadm --stop /dev/md127

Заключение

Как вы можете увидеть из текущей статьи, что создание и управление программными RAID-массивами в Linux дело совсем не сложное. Тем не менее вы получаете полноценный отказоустойчивый массив и ваши данные всегда будут защищены от выхода из строя жестких дисков. Но даже при использовании рейда не стоит забывать про бэкапы. Если остались вопросы, пишите в комментариях.

Читайте также:

Оставить комментарий