Здесь — как по /proc/mdstat и mdadm --detail понять, какой диск отказал и сколько запаса у массива осталось.
/proc/mdstat — сводка ядра по всем массивам (в Вики), читать её можно без sudo. Строка из начала урока:
| Кусок | Что значит |
|---|---|
active raid1 |
массив работает, уровень — зеркало |
loop0[0], loop1[1] |
диски и их номера в массиве |
(F) |
диск отказал (faulty); (S) — запасной (spare) |
[2/1] |
дисков нужно два, работает один |
[U_] |
места по порядку: U — диск работает, _ — место пусто |
Массив, который работает без части дисков, называют degraded. Данные целы, но запаса больше нет: откажет и loop0 — пропадёт весь массив.
Подробнее о массиве печатает mdadm --detail (в Вики): строка State : clean, degraded, счётчики Active Devices и Failed Devices, внизу — место removed и диск faulty /dev/loop1. Об отказе ядро написало и в журнал: Disk failure on loop1, disabling device.
На другом сервере /proc/mdstat показывает массив RAID 5:
md1 : active raid5 sdc[2] sdb[1](F) sda[0]
… [3/2] [U_U]
Какой диск менять и сколько ещё отказов массив переживёт без потери данных?
-
Номер в скобках — место диска в массиве, а не признак сбоя. Сбой отмечает
(F)уsdb. -
RAID 5 переживает отказ одного диска, и этот отказ уже случился:
[3/2]. Следующий отказ — потеря массива. -
Порядок в строке ничего не говорит об отказе. Отказавший диск помечен
(F)— этоsdb[1], и_в[U_U]стоит на его месте 1.
Пометка (F) стоит у sdb, и его место 1 в [U_U] пусто. RAID 5 переживает отказ одного диска, а массив уже работает на двух из трёх — запаса нет до замены.
Главное в шаге
-
В
/proc/mdstatпометка(F)— отказавший диск,[2/1]— сколько дисков нужно и сколько работает. - Degraded — массив без части дисков: данные целы, а следующий отказ может стоить всех данных.
-
mdadm --detailпоказывает состояниеclean, degradedи таблицу дисков с отказавшим.