Работа с RAID-массивами, утилита mdadm

Рассмотрим утилиту мониторинга и обслуживания райд массивов mdadm. С помощью этой утилиты можно выполнять следующие операции:

  • Create — создание RAID-массива из нескольких дисков
  • Assemble — сборка (ранее созданного) массива и его активация.
  • Build — объединение дисков в массив (без суперблоков).
  • Manage — Управление массивом: добавление новых свободных дисков (spares) и удаление неработоспособных (faulty devices).
  • Follow/Monitor — Следить за одним или несколькими md-устройствами и реагировать на изменение их состояния.
  • Grow — расширение или уменьшение размера (shrink) массива, либо иное его реформирование (reshape).
  • Misc — прочие операции с независимыми дисками.

В рамках данной статьи нас интересуют команды вывода состояния массива и команда Manage для оперативной замены вышедшего из строя диска.

Состояние массива.

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

linux:/ # cat /proc/mdstat
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0] sdb1[1]
2095092 blocks super 1.0 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk

md1 : active raid1 sda2[0] sdb2[1]
6292468 blocks super 1.0 [2/2] [UU]
bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices:
linux:/ #

Краткую информацию о райд массиве можно получить по ключу -Q

linux:/ # mdadm -Q /dev/md0
/dev/md0: 2045.99MiB raid1 2 devices, 0 spares. Use mdadm --detail for more detail.
linux:/ #

Более подробную информацию получаем ключом —detail или -D

linux:/ # mdadm -D /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Wed Jul 27 13:48:33 2011
Raid Level : raid1
Array Size : 2095092 (2046.33 MiB 2145.37 MB)
Used Dev Size : 2095092 (2046.33 MiB 2145.37 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Thu Jul 28 16:18:43 2011
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : linux:0
UUID : c1aeb84b:d577e3ef:eff28640:d91c9a84
Events : 43

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
linux:/home/teis/Рабочий стол #

Из вывода команды видно что оба винта нормально функционируют, состояние active sync

А так будет выглядеть вывод команды mdadm -D /dev/md0 при одном вышедшем из строя диске

linux:/ # mdadm -D /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Wed Jul 27 13:48:33 2011
Raid Level : raid1
Array Size : 2095092 (2046.33 MiB 2145.37 MB)
Used Dev Size : 2095092 (2046.33 MiB 2145.37 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Sun Jul 31 16:21:08 2011
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0

Name : linux:0
UUID : c1aeb84b:d577e3ef:eff28640:d91c9a84
Events : 44

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 0 0 1 removed

1 8 17 - faulty spare /dev/sdb1
linux:/ #

Замена вышедшего из строя диска.

Сбойный диск следует удалить командой

mdadm --manage /dev/md0 --remove /dev/sdb1

а также не следует забывать, что sdb1 является логическим разделом жесткого диска, на этомже физическом диске могут находится разделы sdb2 и т.д. Их все тоже следует удалить из райд массивов если они в них еще находятся. После этого можно заменить сбойный диск новым, разметить его partitioner-ом или другой программой разметки соответственно разделам райд массива и выполнить команду

linux:/ # mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1

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

linux:/ # mdadm -D /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Wed Jul 27 13:48:33 2011
Raid Level : raid1
Array Size : 2095092 (2046.33 MiB 2145.37 MB)
Used Dev Size : 2095092 (2046.33 MiB 2145.37 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Sun Jul 31 16:38:51 2011
State : active, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Rebuild Status : 9% complete

Name : linux:0
UUID : c1aeb84b:d577e3ef:eff28640:d91c9a84
Events : 68

Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
2 8 17 1 spare rebuilding /dev/sdb1
linux:/ #

Порядок, новый диск добавляется в массив. Операция происходит в фоновом режиме, время до полного добавления зависит от объема и скорости диска. После этого он опять перейдет в состояние active sync.

PS в редких случаях диск один из дисков может перейти в состояние failed ,без физической неисправности поэтому перед физической заменой жесткого диска стоит попробовать удалить диск с состоянием failed и добавить его снова командами —remove —add , если он снова перейдет в состояние failed то необходима физическая замена диска.

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

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

и только после этого этот диск можно будет удалить командой

mdadm --manage /dev/md0 --remove /dev/sdb1

Оцените блог: 
Средняя: 2.6 (129 оценки)