Особенности настройки программного RAID в Debian 8

  • Автор:

debian8-soft-raid-000.jpgНовые версии операционных систем приносят нам не только новые возможности, но и новые ошибки, иногда в самых неожиданных местах. В новом выпуске Debian мы неожиданно столкнулись с некоторыми багами в реализации механизма программного RAID, который не позволял загрузить ОС при отказе одного из дисков массива. Это достаточно серьезный недочет, сводящий на нет основное достоинство RAID - отказоустойчивость. К счастью, этот недостаток несложно исправить самостоятельно и сегодня мы расскажем, как.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Несмотря на то, что вопросы настройки и администрирования программного RAID в Ubuntu уже рассматривались и данная инструкция полностью подходит для Debian, мы решили повториться и кратко описать полный процесс настройки, начиная от установки ОС и заканчивая исправлением ошибок. В тоже время в первой части статьи мы не будем давать некоторых пояснений и для получения подробной информации рекомендуем ознакомиться с предыдущими материалами.

Настройка программного RAID в процессе установки ОС

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

debian8-soft-raid-001.jpgЗатем выберем жесткий диск:

debian8-soft-raid-002.jpgИ разметим его необходимым образом:

debian8-soft-raid-003.jpgПри этом точки монтирования и тип файловой системы не имеют значения, главное - создать разделы необходимого размера. После чего данные действия следует повторить для оставшихся дисков. Учтите, что для успешной сборки программного RAID размеры разделов должны совпадать посекторно. Так как Linux отлично умеет работать с файлом подкачки соответствующий раздел можно не создавать, что несколько упростит разметку. Если нет каких-либо особых требований по разметке мы предпочитаем использовать один раздел на весь размер диска.

Затем переходим к Настройка программного RAID - Создать MD устройство и выбираем необходимый тип массива, в нашем случае RAID1 (зеркало).

debian8-soft-raid-004.jpgСледующими шагами указываем количество активных (для зеркала - 2) и резервных (если необходимо) разделов, после чего выбираем их.

debian8-soft-raid-005.jpgНа этом действия по созданию MD-устройства следует закончить. Созданные ранее разделы теперь определяются как RAID и появился новый, ненастроенный раздел программного RAID устройства.

debian8-soft-raid-006.jpgВот его и следует настроить для использования. Указываем точку монтирования и тип файловой системы, так как в нашем случае раздел один, то точкой монтирования становится корень.

debian8-soft-raid-007.jpgПосле чего продолжаем установку ОС привычным образом. В конце нас поджидает еще одна особенность: в отличие от Ubuntu, которая автоматически ставила загрузчик на все диски, Debian предлагает выбрать какой-то один диск. Вполне логично будет выбрать первый - sda, хотя принципиальной разницы нет, максимум - придется изменить в BIOS порядок загрузки.

debian8-soft-raid-008.jpgНа этом установка будет закончена, и вы должны успешно загрузиться в систему.

Установка загрузчика на оставшиеся диски

Не откладывая дело в долгий ящик установим загрузчик на оставшиеся диски, чтобы в случае отказа одного из них система смогла начать загрузку с другого диска и собрать RAID-массив, для этого с правами суперпользователя выполним команду:

 dpkg-reconfigure grub-pc

Запустится псевдографический интерфейс утилиты, принимаем значения по умолчанию пока не появится экран с выбором дисковых устройств. Указываем все диски, входящие в массив, на MD-устройство устанавливать загрузчик не надо.

debian8-soft-raid-009.jpgНастройка файла подкачки

По умолчанию Linux использует для подкачки специальный раздел, но может прекрасно использовать для этих целей файл, что неудивительно, если вспомнить, что в Linux системах всё есть файл.

Создадим в корне пустой файл с именем swap размером в 2ГБ:

dd if=/dev/zero of=/swap bs=1M count=2048

Отформатируем его как файл подкачки:

mkswap /swap

и добавим строку для автомонтирования в /etc/fstab

/swap none swap sw 0 0

Перезагружаемся и убеждаемся, что swap работает:

swapon -s

Если все сделано правильно вы должны увидеть примерно следующее:

debian8-soft-raid-010.jpgНа этом наша статья должна была бы закончиться, если бы не одна ошибка... Но обо всем по порядку.

Устраняем ошибку "Alert! dev/disk/by-uuid ... does not exist" при загрузке с поврежденного массива

Перед тем, как производить дальнейшую настройку и эксплуатацию системы на программном RAID проверим его на отказоустойчивость, для этого выключим систему и физически отключим один из дисков. Система должна выдать сообщение о поврежденном массиве и выполнить загрузку с исправного диска. Но мы неожиданно получили сообщение об ошибке: "Alert! dev/disk/by-uuid ... does not exist"

debian8-soft-raid-011.jpg

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

Важно! Данная ошибка исправлена в Debian 8.3

Для исправления ошибки необходимо внести изменения в скрипт инициализации и обновить начальный образ. Так как вносимые изменения довольно объемные и затрагивают критически важные области системы мы предлагаем воспользоваться уже пропатченным скриптом с нашего сайта.

Перейдем в домашнюю директорию и скачаем архив со скриптом:

cd ~
wget "https://interface31.ru/tech_it/files/mdadm-path.tar.gz"

Извлечем его содержимое:

tar -xvf mdadm-path.tar.gz

Сохраним на всякий случай оригинальный файл, переместив его в домашнюю директорию и добавив расширение bak.

mv /usr/share/initramfs-tools/scripts/local-top/mdadm ~/mdadm.bak

Теперь скопируем на его место исправленный файл:

cp ~/mdadm /usr/share/initramfs-tools/scripts/local-top/

Обновим образ начальной загрузки:

update-initramfs -u

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

Проверим состояние массива:

cat /proc/mdstat

debian8-soft-raid-012.jpgКак видим в строю остался только один диск - sdb, но система, как и положено, работает. Вернем диск на место и снова проверим состояние массива.

debian8-soft-raid-013.jpgНесмотря на то, что второй диск исправен и доступен системе автоматической сборки массива не происходит и это правильно. Сборка и ресинхронизация поврежденного массива - потенциально опасная операция и должна всегда производиться в ручном режиме под контролем администратора.

Добавим отключенный ранее диск к массиву, обратите внимание, что подключается не сам диск, а раздел:

mdadm /dev/md0 --add /dev/sda1

И снова проверим статус, диск должен добавиться и начнется ресинхронизация:

debian8-soft-raid-014.jpgТаким образом, путем достаточно несложных манипуляций нам удалось устранить ошибку и добиться нормальной работы программного RAID в среде Debian 8. Данный пример хорошо иллюстрирует одно из достоинств открытого ПО: при наличии достаточной квалификации или помощи сообщества пользователь может сам вносить достаточно серьезные исправления в систему, не дожидаясь пока это сделает производитель.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. Ubuntu Server. Настраиваем программный RAID
  2. Ubuntu Server. Администрирование программного RAID
  3. Ubuntu Server. Настраиваем уведомления программного RAID
  4. Особенности настройки программного RAID в Debian 8
  5. Как увеличить размер программного RAID-массива в Linux
  6. Настраиваем программный RAID на UEFI-системах в Debian и Ubuntu

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments