Поиск по сайту:

Как управлять программными RAID-массивами в Linux с помощью инструмента «Mdadm» — часть 9


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

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

Сценарий тестирования RAID

Как и в последней статье этой серии, для простоты мы будем использовать массив RAID 1 (зеркальный), состоящий из двух дисков 8 ГБ (/dev/sdb и /dev/sdc) и исходное запасное устройство (/dev/sdd) для иллюстрации, но команды и концепции, перечисленные здесь, применимы и к другим типам настройки тоже. Тем не менее, смело добавляйте эту страницу в закладки вашего браузера, и приступим.

Понимание опций и использования mdadm

К счастью, mdadm предоставляет встроенный флаг --help, который предоставляет объяснения и документацию для каждого из основных параметров.

Итак, начнем с ввода:


mdadm --manage --help

чтобы узнать, какие задачи mdadm --manage позволит нам выполнять и как:

Как мы видим на изображении выше, управление RAID-массивом предполагает одновременное выполнение следующих задач:

  1. (Повторное)Добавление устройства в массив.
  2. Отметьте устройство как неисправное.
  3. Удаление неисправного устройства из массива.
  4. Замена неисправного устройства на запасное.
  5. Запустите частично построенный массив.
  6. Остановите массив.
  7. Пометьте массив как ro (только чтение) или rw (чтение-запись).

Управление RAID-устройствами с помощью mdadm Tool

Обратите внимание: если вы опустите опцию --manage, mdadm все равно перейдет в режим управления. Помните об этом факте, чтобы не столкнуться с неприятностями в дальнейшем.

Выделенный текст на предыдущем изображении показывает основной синтаксис управления RAID:


mdadm --manage RAID options devices

Проиллюстрируем это несколькими примерами.

Пример 1. Добавление устройства в RAID-массив.

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


mdadm --manage /dev/md0 --add /dev/sdd1

Пример 2. Маркировка RAID-устройства как неисправного и удаление его из массива.

Это обязательный шаг перед логическим удалением устройства из массива, а затем физическим извлечением его из компьютера — именно в таком порядке (если вы пропустите один из этих шагов, вы можете в конечном итоге нанести реальный ущерб устройству):


mdadm --manage /dev/md0 --fail /dev/sdb1

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

Как только устройство вручную будет указано как неисправное, его можно безопасно удалить из массива:


mdadm --manage /dev/md0 --remove /dev/sdb1
Пример 3. Повторное добавление устройства, входившего в ранее удаленный массив.

На данный момент у нас есть рабочий массив RAID 1, состоящий из двух активных устройств: /dev/sdc1 и /dev/sdd1. Если мы попытаемся повторно добавить /dev/sdb1 в /dev/md0 прямо сейчас:


mdadm --manage /dev/md0 --re-add /dev/sdb1

мы столкнемся с ошибкой:


mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible

потому что массив уже состоит из максимально возможного количества дисков. Таким образом, у нас есть два варианта: а) добавить /dev/sdb1 в качестве запасного, как показано в примере №1, или б) удалить /dev/sdd1 из массива и затем повторно добавьте /dev/sdb1.

Мы выбираем вариант b) и начнем с остановки массива, чтобы позже собрать его заново:


mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1

Если приведенная выше команда не может успешно добавить /dev/sdb1 обратно в массив, используйте для этого команду из Примера №1.

Хотя mdadm первоначально обнаружит вновь добавленное устройство как запасное, он начнет восстанавливать данные, и когда это будет сделано, он должен распознать устройство как активную часть RAID:

Пример 4. Замена устройства Raid конкретным диском

Заменить диск в массиве на запасной очень просто:


mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1

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

Пример 5: Маркировка массива Raid как ro или rw

После создания массива вы должны создать поверх него файловую систему и смонтировать ее в каталог, чтобы использовать ее. Чего вы, вероятно, тогда не знали, так это того, что вы можете пометить RAID как ro, что позволит выполнять на нем только операции чтения, или rw, чтобы записать к устройству тоже.

Чтобы пометить устройство как ro, его необходимо сначала размонтировать:


umount /mnt/raid1
mdadm --manage /dev/md0 --readonly
mount /mnt/raid1
touch /mnt/raid1/test1

Чтобы настроить массив для разрешения операций записи, используйте параметр --readwrite. Обратите внимание, что вам нужно будет отключить устройство и остановить его, прежде чем устанавливать флаг rw:


umount /mnt/raid1
mdadm --manage /dev/md0 --stop
mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1
mdadm --manage /dev/md0 --readwrite
touch /mnt/raid1/test2

Краткое содержание

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

Если у вас возникнут вопросы или предложения, свяжитесь с нами, используя форму ниже.