- Как можно узнать состояние Raid в Linux Debian
- mdadm
- Материал из Xgu.ru
- Содержание
- [править] mdadm
- [править] Настройка программного RAID-массива
- [править] Создание разделов
- [править] Размонтирование
- [править] Изменение типа разделов
- [править] Создание RAID-массива
- [править] Проверка правильности сборки
- [править] Создание файловой системы поверх RAID-массива
- [править] Создание конфигурационного файла mdadm.conf
- [править] Создание точки монтирования для RAID-массива
- [править] Изменение /etc/fstab
- [править] Монтирование файловой системы нового RAID-массива
- [править] Проверка состояния RAID-массива
- [править] Проблема загрузки на многодисковых системах
- [править] Дальнейшая работа с массивом
- [править] Пометка диска как сбойного
- [править] Удаление сбойного диска
- [править] Добавление нового диска
- [править] Сборка существующего массива
- [править] Расширение массива
- [править] Возобновление отложенной синхронизации
- [править] Переименование массива
- [править] Удаление массива
- [править] Создание пустого массива без сихронизации данных
- Программный RAID в Linux с помощью mdadm
- Установка утилиты управления программным RAID — mdadm
- Создание RAID из 2-х дисков
- Создание файловой системы на RAID, монтирование
- Просмотр состояния, проверка целостности RAID массива
- Восстановление RAID при сбое, замена диска
- Добавление и удаление дисков в RAID массив на Linux
- Добавление Hot-Spare диска в RAID массив
- Удаление массива
- Mdmonitor: Мониторинг состояния RAID и email оповещения
- RAID массив в состоянии inactive
Как можно узнать состояние Raid в Linux Debian
Если вы хотите посмотреть состояние рэйда в Линуксе, то для этого есть одна очень хорошая команда:
При ее вводе вы получите следующий результат:
Далее покажу, что она демонстрирует более подробно.
Если в самом начале вы видите следующие вещи, то значит все плагины подгрузились и все в порядке
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
Итак, md0, md1, md2 и далее означают RAID массивы, то есть каждый раздел имеет свой собственный рейд. С этим думаю тоже понятно. Хотя фрибсд часто удивляются и говорят, что создать один рейд и потом его резать на слайсы гораздо логичнее.
Но да не суть. Далее рассмотрим более подробно, что означают другие параметры при выводе команды.
md0 : active raid1 sda1[2] sdb1[1]
33553336 blocks super 1.2 [2/2] [UU]
md0 означает рейд с названием мд0, далее написано его состояние (мы видим что оно active) и видим тип рейда (raid1 — зеркальный). Физические диски в линуксе имеют обозначение sda, sdb, sdc и так далее, а логические разделы на них соответственно sda1, sda2 и так далее.
Мы видим в данном рейде sda1 и sdb1, то есть по одному логическому разделу с каждого из дисков,что правильно.
Далее видим количество блоков (их 33553336 blocks), что значит, честно говоря, не знаю, на деле мы видим в скобках сколько дисков из скольких рабочие (в данном случае видим 2 из 2, что есть хорошо).
Ну и последняя часть, где мы видим две [UU], показывает, какой из дисков в каком состоянии. Каждая буква У обозначает один физический диск и на картинке хорошо видно, что те рейд массивы, которые еще не собрались, выглядят иначе.
Кстати, на изображении виден рейд в момент сборки после замены одного плохого диска на новый, но как это детально делается я подробно опишу в одном из следующих своих выпусков.
Надеюсь, данная информация вам поможет лучше освоить Линукс, ведь сила консоли известна всем!
Источник
mdadm
Материал из Xgu.ru
На этой странице рассматриваются вопросы создания и обслуживания программного RAID-массива в операционной системе Linux.
Содержание
[править] mdadm
Управление программным RAID-массивом в Linux выполняется с помощью программы mdadm.
У программы mdadm есть несколько режимов работы.
Assemble (сборка) Собрать компоненты ранее созданного массива в массив. Компоненты можно указывать явно, но можно и не указывать — тогда выполняется их поиск по суперблокам. Build (построение) Собрать массив из компонентов, у которых нет суперблоков. Не выполняются никакие проверки, создание и сборка массива в принципе ничем не отличаются. Create (создание) Создать новый массив на основе указанных устройств. Использовать суперблоки размещённые на каждом устройстве. Monitor (наблюдение) Следить за изменением состояния устройств. Для RAID0 этот режим не имеет смысла. Grow (расширение или уменьшение) Расширение или уменьшение массива, включаются или удаляются новые диски. Incremental Assembly (инкрементальная сборка) Добавление диска в массив. Manage (управление) Разнообразные операции по управлению массивом, такие как замена диска и пометка как сбойного. Misc (разное) Действия, которые не относятся ни к одному из перечисленных выше режимов работы. Auto-detect (автоообнаружение) Активация автоматически обнаруживаемых массивов в ядре Linux.
- -A, --assemble — режим сборки
- -B, --build — режим построения
- -C, --create — режим создания
- -F, --follow, --monitor — режим наблюдения
- -G, --grow — режим расширения
- -I, --incremental — режим инкрементальной сборки
[править] Настройка программного RAID-массива
Рассмотрим как выполнить настройку RAID-массива 5 уровня на трёх дисковых разделах. Мы будем использовать разделы:
В том случае если разделы иные, не забудьте использовать соответствующие имена файлов.
[править] Создание разделов
Нужно определить на каких физических разделах будет создаваться RAID-массив. Если разделы уже есть, нужно найти свободные (fdisk -l). Если разделов ещё нет, но есть неразмеченное место, их можно создать с помощью программ fdisk или cfdisk.
Просмотреть какие есть разделы:
Просмотреть, какие разделы куда смонтированы, и сколько свободного места есть на них (размеры в килобайтах):
[править] Размонтирование
Если вы будете использовать созданные ранее разделы, обязательно размонтируйте их. RAID-массив нельзя создавать поверх разделов, на которых находятся смонтированные файловые системы.
[править] Изменение типа разделов
Желательно (но не обязательно) изменить тип разделов, которые будут входить в RAID-массив и установить его равным FD (Linux RAID autodetect). Изменить тип раздела можно с помощью fdisk.
Рассмотрим, как это делать на примере раздела /dev/hde1.
Аналогичным образом нужно изменить тип раздела для всех остальных разделов, входящих в RAID-массив.
[править] Создание RAID-массива
Создание RAID-массива выполняется с помощью программы mdadm (ключ --create). Мы воспользуемся опцией --level, для того чтобы создать RAID-массив 5 уровня. С помощью ключа --raid-devices укажем устройства, поверх которых будет собираться RAID-массив.
Если вы хотите сразу создать массив, где диска не хватает (degraded) просто укажите слово missing вместо имени устройства. Для RAID5 это может быть только один диск; для RAID6 — не более двух; для RAID1 — сколько угодно, но должен быть как минимум один рабочий.
[править] Проверка правильности сборки
Убедиться, что RAID-массив проинициализирован корректно можно просмотрев файл /proc/mdstat. В этом файле отражается текущее состояние RAID-массива.
Обратите внимание на то, как называется новый RAID-массив. В нашем случае он называется /dev/md0. Мы будем обращаться к массиву по этому имени.
[править] Создание файловой системы поверх RAID-массива
Новый RAID-раздел нужно отформатировать, т.е. создать на нём файловую систему. Сделать это можно при помощи программы из семейства mkfs. Если мы будем создавать файловую систему ext3, воспользуемся программой mkfs.ext3. :
Имеет смысл для лучшей производительности файловой системы указывать при создании количество дисков в рейде и количество блоков файловой системы которое может поместиться в один страйп ( chunk ), это особенно важно при создании массивов уровня RAID0,RAID5,RAID6,RAID10. Для RAID1 ( mirror ) это не имеет значения так как запись идёт всегда на один device, a в других типах рейдов дата записывается последовательно на разные диски порциями соответствующими размеру stripe. Например если мы используем RAID5 из 3 дисков, с дефолтным размером страйпа в 64К и используем файловую систему ext3 с размером блока в 4К то можно вызывать команду mkfs.ext вот так:
stripe-width обычно рассчитывается как stride * N ( N это дата диски в массиве — например в RAID5 — два дата диска и один parity ) Для не менее популярной файловой системы XFS надо указывать не количество блоков файловой системы соответствующих размеру stripe в массиве, а непосредственно размер самого страйпа
[править] Создание конфигурационного файла mdadm.conf
Система сама не запоминает какие RAID-массивы ей нужно создать и какие компоненты в них входят. Эта информация находится в файле mdadm.conf.
Строки, которые следует добавить в этот файл, можно получить при помощи команды
Вот пример её использования:
Если файла mdadm.conf ещё нет, можно его создать:
[править] Создание точки монтирования для RAID-массива
Поскольку мы создали новую файловую систему, вероятно, нам понадобится и новая точка монтирования. Назовём её /raid.
[править] Изменение /etc/fstab
Для того чтобы файловая система, созданная на новом RAID-массиве, автоматически монтировалась при загрузке, добавим соответствующую запись в файл /etc/fstab хранящий список автоматически монтируемых при загрузке файловых систем.
Если мы объединяли в RAID-массив разделы, которые использовались раньше, нужно отключить их монтирование: удалить или закомментировать соответствующие строки в файле /etc/fstab. Закомментировать строку можно символом #.
[править] Монтирование файловой системы нового RAID-массива
Для того чтобы получить доступ к файловой системе, расположенной на новом RAID-массиве, её нужно смонтировать. Монтирование выполняется с помощью команды mount.
Если новая файловая система добавлена в файл /etc/fstab, можно смонтировать её командой mount -a (смонтируются все файловые системы, которые должны монтироваться при загрузке, но сейчас не смонтированы).
Можно смонтировать только нужный нам раздел (при условии, что он указан в /etc/fstab).
Если раздел в /etc/fstab не указан, то при монтировании мы должны задавать как минимум два параметра — точку монтирования и монтируемое устройство:
[править] Проверка состояния RAID-массива
Информация о состоянии RAID-массива находится в файле /proc/mdstat.
Если в файле информация постоянно изменяется, например, идёт пересборка массива, то постоянно изменяющийся файл удобно просматривать при помощи программы watch:
Как выполнить проверку целостности программного RAID-массива md0:
Как посмотреть нашлись ли какие-то ошибки в процессе проверки программного RAID-массива по команде check или repair:
[править] Проблема загрузки на многодисковых системах
В некоторых руководствах по mdadm после первоначальной сборки массивов рекомендуется добавлять в файл /etc/mdadm/mdadm.conf вывод команды «mdadm —detail —scan —verbose»:
, в котором жёстко прописаны имена разделов (/dev/sda1, /dev/sda2 в приведённом примере).
Если после этого обновить образ начальной загрузки (в Debian вызвать ‘update-initramfs -u’ или ‘dpkg-reconfigure mdadm’), имена разделов запишутся в файл mdadm.conf образа начальной загрузки, и вы не сможете загрузиться с массива, если конфигурация жёстких дисков изменится (нужные разделы получат другие имена). Для этого не обязательно добавлять или убирать жёсткие диски: в многодисковых системах их имена могут меняться от загрузки к загрузке.
Решение: записывать в /etc/mdadm/mdadm.conf вывод команды «mdadm —detail —scan» (без —verbose).
При этом в файле mdadm.conf будут присутствовать UUID разделов, составляющих каждый RAID-массив. При загрузке системы mdadm находит нужные разделы независимо от их символических имён по UUID.
mdadm.conf, извлечённый из образа начальной загрузки Debian:
Результат исследования раздела командой ‘mdadm —examine'»
Раздел c UUID 147c5847:dabfe069:79d27a05:96ea160b войдёт в состав массива, даже если станет /dev/sdb1 при очередной загрузке системы.
Вообще, существует 2 файла mdadm.conf, влияющих на автоматическую сборку массивов:
- один при загрузке системы, записывется в образ начальной загрузки при его обновлении;
- другой находится в каталоге /etc/mdadm/ и влияет на автосборку массивов внутри работающей системы.
Соответственно, вы можете иметь информацию:
1) в образе начальной загрузки (ОНЗ) и в /etc/mdadm/mdadm.conf;
2) только в ОНЗ (попадает туда при его создании обновлении);
3) только в /etc/mdadm/mdadm.conf;
В том месте, где есть mdadm.conf, сборка происходит по правилам; где нет — непредсказуемо.
Примечание: если вы не обновили ОНЗ после создания RAID-массивов, их конфигурация всё равно в него попадёт — при обновлении образа другой программой / при обновлении системы (но вы не будете об этом знать со всеми вытекающими).
[править] Дальнейшая работа с массивом
[править] Пометка диска как сбойного
Диск в массиве можно условно сделать сбойным, ключ --fail (-f):
[править] Удаление сбойного диска
Сбойный диск можно удалить с помощью ключа --remove (-r):
[править] Добавление нового диска
Добавить новый диск в массив можно с помощью ключей --add (-a) и --re-add:
[править] Сборка существующего массива
Собрать существующий массив можно с помощью mdadm --assemble. Как дополнительный аргумент указывается, нужно ли выполнять сканирование устройств, и если нет, то какие устройства нужно собирать.
[править] Расширение массива
Расширить массив можно с помощью ключа --grow (-G). Сначала добавляется диск, а потом массив расширяется:
Проверяем, что диск (раздел) добавился:
Если раздел действительно добавился, мы можем расширить массив:
Опция —raid-devices указывает новое количество дисков, используемое в массиве. Например, было 3 диска, а теперь расширяем до 4-х — указываем 4.
Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например добавить:
При необходимости можно регулировать скорость процесса расширения массива, указав нужное значение в файлах
Убедитесь, что массив расширился:
Нужно обновить конфигурационный файл с учётом сделанных изменений:
[править] Возобновление отложенной синхронизации
P.S.: Если вы увидели « active (auto-read-only) » в файле /proc/mdstat , то возможно вы просто ничего не записывали в этот массив. К примеру, после монтирования раздела и любых изменений в примонтированном каталоге, статус автоматически меняется:
[править] Переименование массива
Для начала отмонтируйте и остановите массив:
Затем необходимо пересобрать как md5 каждый из разделов sd[abcdefghijk]1
[править] Удаление массива
Для начала отмонтируйте и остановите массив:
Затем необходимо затереть superblock каждого из составляющих массива:
Если действие выше не помогло, то затираем так:
[править] Создание пустого массива без сихронизации данных
Не каноничный метод, применять на дисках без данных!
Смотрим информацию по массивам и выбираем жертву
Предварительно разбираем массив
Создаём директорию для metadata файлов
Снимаем дамп metadata с одного из raid дисков
Источник
Программный RAID в Linux с помощью mdadm
mdadm – утилита для работы с программными RAID-массивами в Linux. В статье мы рассмотрим, как работать с утилитой mdadm (multiple disks admin) для создания массива, добавления дисков, управления дисками, добавление hot-spare и много другой полезной информации.
Установка утилиты управления программным RAID — mdadm
Чтобы установить утилиту mdadm, запустите команду установки:
- Для Centos/Red Hat используется yum/dnf: yum install mdadm
- Для Ubuntu/Debian: apt-get install mdadm
В резульатте в системе будет установлена сама утилита mdadm и необходимые библиотеки:
Создание RAID из 2-х дисков
У меня на сервере установлены два дополнительных диска и я хочу содать на низ програмное зеркало (RAID1). Диски пустые, данные на них не писались. Для начала, нужно занулить все суперблоки на дисках, которые мы будем добавлять в RAID-массив:
# mdadm —zero-superblock —force /dev/vd
У меня два есть два чистых диска vdb и vdc.
Данный листинг означает, что ни один из дисков ранее не был добавлен в массив.
Чтобы собрать программный RAID1 из двух дисков в устройстве /dev/md0, используйтк команду:
# mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/vd
Где «-l 1» — это тип массива, в нашем случае RAID1
А «-n 2«- это количество дисков, которое добавляется в массив.
Если нужно создать RAID0 в режиме страйп (stripe) для увеличения скорости чтения/записи данных за счет распараллеливания команд между несколькими физическими дисками, используйте команду:
# mdadm —create —verbose /dev/md0 —level=0 —raid-devices=2 /dev/vdb /dev/vdc
RAID 5 из трех или более дисков:
# mdadm —create —verbose /dev/md0 —level=5 —raid-devices=3 /dev/vdb /dev/ vdс /dev/vdd
После запуска команды, нужно подтвердить действия и массив будет создан:
Теперь при просмотре информации о дисках, мы видим наш массив:
Создание файловой системы на RAID, монтирование
Чтобы создать файловую систему ext4 на нашем RAID1 массиве из двух дисков, используйте команду:
Создадим директорию backup и примонтируем к ней RAID устройство:
# mkdir /backup
# mount /dev/md0 /backup/
Массив смонтировался без ошибок. Чтобы не монтировать устройство каждый раз вручную, внесем изменения в fstab:
Просмотр состояния, проверка целостности RAID массива
Чтобы проверить целостность данных в массиве, используйте команду:
#echo ‘check’ > /sys/block/md0/md/sync_action
После чего, нужно посмотреть вывод файла:
Если в результате вы получаете 0, то с вашим массивом все в порядке:
Чтобы остановить проверку, используйте команду:
#echo ‘idle’ > /sys/block/md0/md/sync_action
Чтобы проверить состояние всех RAID -массивов доступны на сервере, используйте команду:
В листинге команды, видим информацию о нашем ранее созданном raid.
Более подробную информацию о конкретном raid-массиве, можно посмотреть командой:
Разберем основные пункты листинга команды:
- Version – версия метаданных;
- Creation Time – дата и время создания raid-массива;
- Raid Level – уровень raid-массива;
- Array Size – объем дискового пространства для raid-массива;
- Used Dev Size – используемый объем для устройств;
- Raid Device – количество дисков в raid-массиве;
- Total Devices – количество добавленных в raid-массив дисков;
- State – текущее состояние (clean – все ОК);
- Active Devices — количество активных дисков в raid-массиве;
- Working Devises — количество рабочих дисков в raid-массиве;
- Failed Devices – количество устройств со сбоями в raid-массиве;
- Spare Devices – количество запасных дисков в raid-массиве;
- Consistency Policy — параметр задающий тип синхронизации после сбоя в raid-массиве, rsync — полная синхронизация после восстановления raid-массива (доступны режимы bitmap, journal, ppl);
- UUID – идентификатор raid-массива
Краткую информацию можно посмотреть с помощью утилиты fdisk:
Восстановление RAID при сбое, замена диска
Если у вас вышел из строя или повредился один из дисков в RAID-массиве, его можно заменить другим. Для начала определим, поврежден ли диск и какой диск нам следует менять.
Из листинга команды, вы видим, что только один диск активен. Так же о проблеме говорит [U_]. Когда оба диска рабочие, вывод будет [UU].
Подробная информация о RAID-массиве также показывает, что естт проблемы:
State : clean, degraded – данная строка указывает на то, что диск в raid-массиве поврежден.
В нашем случае нужно заменить неисправный диск /dev/vdc. Для восстановления массива, нужно удалить нерабочий диск и добавить новый.
Удаляем неиспраный диск:
# mdadm /dev/md0 —remove /dev/vdc
Добавляем в массив новый диск :
# mdadm /dev/md0 —add /dev/vdd
Восстановление диска запустится автоматически после добавления нового диска:
rebuild Status : 69% complete — показывает текущее состояние восстановления массива.
spare rebuilding /dev/vdd — показывает какой диск добавляется к массиву.
После восстановления массива, листинг по дискам выглядит так:
Добавление и удаление дисков в RAID массив на Linux
Чтобы разобрать ранее созданный массив, нужно отмонтировать его :
И выполнить команду:
После разбора массива, он не должен определяться как устройство:
Чтобы собрать массив, который мы ранее разобрали вручную, запустите команду:
# mdadm —assemble —scan
Данная команда просканирует диски из разобранного или развалившегося RAID массива и по метаданным попробует собрать из них RAID.
Если вам нужно удалить рабочий диск из массива и заменить его на другой, нужно для начала пометить рабочий диск как нерабочий:
# mdadm /dev/md0 —fail /dev/vdc
После чего диск можно будет удалить командой::
# mdadm /dev/md0 —remove /dev/vdc
Добавляется новый диск, так же как и в случае с нерабочим диском:
# mdadm /dev/md0 —add /dev/vdd
Добавление Hot-Spare диска в RAID массив
Вы можете добавит в массив hot-spare диск для горячей замены при выходе из строя одного из активных дисков. Добавьте свободный диск в нужный массив:
# mdadm /dev/md0 —add /dev/vdc
После чего проверив статус raid-массива, мы увидим данный диск как spare:
Чтобы проверить, сработает ли «горячая замена» диска, пометим любой из дисков как нерабочий и проверим статус raid-массива:
# mdadm /dev/md0 —fail /dev/vdb
После чего при проверке статуса массива, будет видно, что началась пересборка массива:
Диск /dev/vdb помечен как нерабочий, а hot-spare диск стал одним из активных дисков RAID и запустился процесс восстановления.
Чтобы добавить дополнительный рабочий диск в RAID, нужно выполнить два шага.
Добавить пустой диск массиву:
# mdadm /dev/md0 —add /dev/vdb
Теперь данный диск будет отображаться как hot-spare, чтобы сделать его рабочим, расширим raid-массив:
# mdadm -G /dev/md0 —raid-devices=3
После чего запустится процесс пересборки массива:
После выполнения пересборки, все диски стали активны:
Удаление массива
Если вы хотите безвозвратно удалить raid-массив, используйте следующую схему:
# umount /backup – отмонтируем массив от директории
# mdadm -S /dev/md0 — останавливаем RAID устройство
После чего очищаем все суперблоки на дисках, из которых он был собран:
# mdadm —zero-superblock /dev/vdb
# mdadm —zero-superblock /dev/vdc
Mdmonitor: Мониторинг состояния RAID и email оповещения
Для мониторинга состояния RAID массива можно использовать службу mdmonitor. Сначала нужно создать файл /etc/mdadm.conf с конфигурацией текущего массива:
# mdadm –detail –scan > /etc/mdadm.conf
В конце файла /etc/mdadm.conf добавьте email адрес администратора, на который нужно слать оповещения о проблемах с RAID:
Останолось перезапустить службу mdmonitor через systemctl:
# systemctl restart mdmonitor
После этого система будет оповещать вас по email об ошибках в mdadm и неисправных дисках.
RAID массив в состоянии inactive
При сбоях оборудования или аварийного выключения по питанию, массив может перейти в состояние inactive. Все диски помечаются как неактивные, но ошибок на дисках нет.
В этом случае нужно остановить массив командой:
# mdadm —stop /dev/md0
И пересобрать его:
# mdadm —assemble —scan –force
Если массив прописан в /etc/fstab, нужно перемонтировать его командой:
Утилита mdadm упрощает работу с raid-массивами в Linux. В данной статье я описал основные моменты работы с данной утилитой, а также затронул самые частые вопросы, которые возникают при работе с raid-массивами через утилиту mdadm.
Источник