mdadm

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску

mdadm (ранее mdctl)


Операционная система:
GNU/Linux



Разработчик:
Neil Brown [1]



Текущая версия:
2.6.3
Дата выхода текущей версии:
2007-08-20



Лицензия:
GNU GPL 2 и новее

mdadmутилита для управления RAID массивами в GNU/Linux (Linux Software Raid), ранее известная, как mdctl. MD — сокращение от multi disk.

В Linux можно использовать следующие разновидности RAID:

  • LINEAR — расширение размера логического диска за счет нескольких физических дисков;
  • RAID0 (striping) — распределение блоков на нескольких физических дисках без обеспечения отказоустойчивости;
  • RAID1 (mirroring) — зеркалирование, запись одних и тех же данных одновременно на два диска, что обеспечивает отказоустойчивость при отказе одного из дисков;
  • RAID4;
  • RAID5 — массив с обеспечением отказоустойчивости за счет минимальной избыточности (требуется минимум три диска);
  • RAID6;
  • MULTIPATH — не RAID-массив, позволяющий создавать разные псевдо-дисковые устройства для одного физического диска;
  • FAULTY — псевдо RAID-массив.

Не все разновидности RAID-массивов доступны в ядре Linux в начальной конфигурации. Например, чтобы использовать RAID5 необходимо внести изменения в конфигурацию ядра и скомпилировать его заново. Для уже скомпилированных ядер из дистрибутивов, возможно потребуется явная загрузка соответсвующего модуля. Пример: modprobe raid5.

Просмотр состояния массивов[править | править код]

Информацию о состоянии активных масивов можно просмотреть в псевдо-файле /proc/mdstat

cat /proc/mdstat
Personalities : [raid0] [raid1]
md3 : active raid0 sdb4[1] sda4[0]
581006592 blocks 64k chunks

md1 : active raid1 sdb1[1] sda1[0]
88256 blocks [2/2] [UU]

Команды[править | править код]

С помощью mdadm можно выполнять 7 групп операций:

  • Create — создание RAID-массива из нескольких дисков (with per-device superblocks).
  • Assemble — сборка (ранее созданного) массива и его активация. Диски из которых собирается массив могут указываться явно или будет выполнен их автоматический поиск. mdadm checks that the components do form a bona fide array, and can, on request, fiddle superblock information so as to assemble a faulty array.
  • Build — объединение дисков в массив. (без per-device superblocks). Для таких массивов mdadm cannot differentiate between initial creation and subsequent assembly of an array. It also cannot perform any checks that appropriate devices have been requested. Не используйте этот режим, если вы не знаете зачем это нужно.
  • Manage — Управление массивом: добавление новых свободных дисков (spares) и удаление неработоспособных (faulty devices).
  • Follow/Monitor — Monitor one or more md devices and act on any state changes. This is only meaningful for raid1, 4, 5, 6 or multipath arrays as only these have interesting state. raid0 or linear never have missing, spare, or failed drives, so there is nothing to monitor.
  • Grow — расширение или уменьшение размера (shrink) массива, либо иной его реформирование (reshape). Currently supported growth options including changing the active size of componenet devices in RAID level 1/4/5/6 and changing the number of active devices in RAID1.
  • Misc — прочие операции с независимыми дисками. Например: просмотр и модификация суперблоков массива и остановка активных массивов.

Создание массива[править | править код]

Перед созданием масива следует создать для него устройство-идентификатор (если оно отсутствует): mknod /dev/md1 b 9 1; в данном случае создается идентификтор для массива с номером 1, что указыватся в имени устройства и его коде (9 — это код устройства всех RAID-массивов).

Желательно, чтобы разделы, из которых создается массив, имели одинаковый размер (хотя они могут располагаться на физических дисках разного размера и даже разного типа). При создании этих разделов следует присвоить им тип fd («Linux raid autodetect»). Не следует создавать массив из разделов, размещающихся на одном физическом диске — хотя это и возможно, это совершенно бессмысленно и привдет к существенному снижению быстродействия дисковой подсистемы. Интересной идеей является создание массива из USB Flash drive дисков с целью повышения скорости, но из-за низкой надежности USB портов система будет менее надежна, чем массив из жёстких дисков.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hda3 /dev/hdc3

Этот пример создаёт массив RAID 1 из двух разделов: один из hda и второй из hdc. Несколько дисков можно указывать с помощью шаблона, например /dev/sd[ac]2 или /dev/sd[a-f]1.

  • --create (или сокращенно ): команда создания
  • /dev/md0: имя устройства создаваемого виртуального раздела
  • --level=1 (или сокращенно -l 1): уровень RAID. См. справочник по использованию mdadm (используйте «man mdadm» в командной строке)
  • --raid-devices=2 (или сокращенно -n 1): количество устройств
  • /dev/hda3: первый диск в массиве
  • /dev/hdc3: второй диск

Если на момент создания массива диска нет (например, при переходе на RAID) вместо имени диска просто напишите missing. Команда завершается сразу, обычно выдавая сообщение mdadm: array /dev/mdХ started. При этом уже сразу можно использовать массив. Фактически массив строиться в фоновом режиме, прогресс можно посмотреть в файле /proc/mdstat; там же указывается предположиетльное время завершения построения массива.

После создания RAID-раздела можно создать на нем файловую систему как на обычном разделе диска. Созданный и отформатированный RAID-раздел можно использовать как корень файловой системы (но для этого поддержка RAID должна быть встроенна в ядро, а не как загружаемый модуль). Не следует создавать RAID-массив для своп-раздела — система сама обнаружит своп-разделы на разных дисках и будет использовать их по принципу RAID-массива. Не забудьте добавить соответствующую строку в файл конфигурации /etc/fstab, чтобы RAID-раздел монтировался автоматически при загрузке системы.

Расширение массива (добавление и замена дисков)[править | править код]

mdadm /dev/md0 -a /dev/hdd3

Эта команда добавляет новый «диск» (а вернее раздел) в массив md0. Добавленный диск считается пустым и резервным. Его можно использовать для расширения размера массива или он будет автоматически использован (в массивах, обеспечивающих отказоустойчивость) в качестве замены для диска вышедшего из строя.

Ссылки[править | править код]


[править | править код]