Linux Labs

Хранилище / Ступень 5 из 12

RAID 1: диск вышел из строя

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 8 · теория · 6 мин

Запись о массиве

Здесь — по каким записям mdadm собирает массивы и зачем массив записывают в /etc/mdadm/mdadm.conf.

В начале каждого диска массива лежит суперблок md — служебная запись с UUID массива, его именем и номером диска. super 1.2 в /proc/mdstat — формат этой записи, а печатает её sudo mdadm --examine /dev/loop0. По суперблокам mdadm находит диски одного массива и собирает их снова: на сервере — при загрузке, когда диски появляются, или по команде sudo mdadm --assemble --scan.

Файл /etc/mdadm/mdadm.conf — список массивов машины (в Вики): строка ARRAY с именем устройства и UUID массива. Пока строк нет, mdadm --assemble --scan собирает все массивы, какие нашёл: массив этой машины — по имени из суперблока (ubuntu:0 → /dev/md0), массив с чужим именем хоста, например с дисков другого сервера, — как /dev/md127. Когда строки есть, собираются только записанные массивы и под записанными именами.

Строку печатает сам mdadm, а в файл её дописывают через sudo tee -a:

bash
sudo mdadm --detail --scan            # строки всех собранных массивов
sudo mdadm --detail --brief /dev/md0  # строка одного массива
sudo mdadm --detail --brief /dev/md0 | sudo tee -a /etc/mdadm/mdadm.conf

На массив — одна строка: с двумя строками одного массива mdadm --assemble --scan отвечает Duplicate MD device names in conf file were found. Массивы, нужные для загрузки, сервер собирает ещё в initramfs по его копии файла, поэтому после правки mdadm.conf копию обновляют: sudo update-initramfs -u.

Проверь себя 1 вопрос

В mdadm.conf сервера записан только массив md0. К серверу подключили два диска с зеркалом со старого сервера. Что сделает sudo mdadm --assemble --scan?

  • Номера по порядку mdadm не раздаёт: имя он берёт из строки ARRAY или из суперблока. Перенесённого массива в файле нет, и собирать его mdadm не станет.

  • Работающий массив --assemble --scan не трогает: md0 так и останется в /proc/mdstat. А перенесённого массива в файле нет.

  • Так было бы, если бы в файле не было ни одной строки ARRAY. Строка md0 есть, и mdadm собирает только записанные массивы.

Когда в mdadm.conf есть строки ARRAY, --assemble --scan собирает только записанные массивы. Перенесённый массив соберётся, когда в файл допишут его строку с UUID из sudo mdadm --examine любого его диска.

Главное в шаге

  • Суперблок на каждом диске хранит UUID массива: по нему mdadm находит диски одного массива.
  • Строка ARRAY в mdadm.conf закрепляет за массивом имя; когда строки есть, mdadm собирает только записанные массивы.
  • На массив — одна строка, а после правки файла на сервере обновляют initramfs.
Ubuntu 24.04
Загрузка…