Программный 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.
Программный RAID в Linux с помощью mdadm
18.12.2019
VyacheslavK
CentOS, Linux
комментариев 13
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«- это количество дисков, которое добавляется в массив.
# 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.
Предыдущая статья Следующая статья
shared hotspare для mdadm
Я обнаружил, что в интернете очень мало (и не очень внятно) объяснено, как mdadm работает с общими (глобальными) дисками горячей подмены. В заметке я опишу, что это такое, и объясню, почему shared hotspare не отмечены в /proc/mdstat как общие, а вместо этого выглядят как вполне себе локальные.
Что такое hot-spare?
(Я пишу не для новичков, так что галопом по европам)
Если массив обладает избыточностью и один из его дисков вышел из строя, то существует возможность восстановить избыточную информацию на резервный диск. Если диск добавляется в массив руками (админу пришло письмо о сбое, он прочитал письмо, проснулся/оделся, приехал на работу, вынул сбойный диск, вставил запасной, добавил его в массив, дал команду на восстановление избыточности), то такой диск называется cold-spare. Просто «запасной диск».
Если же в сервере есть простаивающий диск, на который осуществляется восстановление избыточности сразу после сбоя любого из дисков массива, то такой диск называется hot-spare. Главное достоинство — оно отребилдится (восстановит избыточность) даже если админ письмо прозевал или не успел вовремя приехать.
Локальные hot-spare
Обычно запасной диск добавляется для массива, то есть если в массиве сбой, то его резервный диск и используется. Если сбой происходит в соседнем массиве, то hot-spare из «чужого» массива не используется.
Это на самом деле логично — если у нас стоит выбор — использовать hot-spare для восстановления избыточности системного раздела или раздела с данными, то надо восстанавливать избыточность раздела с данными. А если системный раздел уже «занял» hot-spare, то будет бяка. Более того, некоторые производители предлагают 1EE hotspare, в которой резервный диск используется и для хранения данных (пустое место «размазано» между дисками массива, обеспечивая возможность быстрого ребилда и увеличивая производительность в нормальном режиме).
Глобальные (общие) hot-spare
Однако, бывает так, что массивов с данными много. И им всем нужны hot-spare диски. Но дисков жалко. И тогда возникает желание иметь «общий» диск, который может быть использован для любого из массивов (а ещё лучше 2-3 таких диска).
Это было вступление. Теперь переходим к сути вопроса.
linux md
mdadm (ядерный модуль в DM-стеке) не поддерживает shared hot-spare. Диск может быть добавлен как hot-spare только в конкретный массив.
Но mdadm поддерживает!
Именно так. mdadm поддерживает, ядерный модуль — нет. Mdadm реализует общий hot-spare методом «перекинуть hotspare с одного массива на другой, повреждённый».
Другими словами, для того, чтобы это сработало, должен быть запущен mdadm в режиме -F (follow). Он же обычно присылает сообщения на почту о проблемах рейда. Большинство современных дистрибутивов его запускают (если есть массивы), но, важно понимать, что он обслуживает только те массивы, которые были собраны из mdadm.conf, а не собранные ручками. (Да-да, тут нас ждёт подстава).
spare-group
Для возможности распределять диски между разными массивами есть понятие spare-group, то есть группа, в пределах которой возможно перекидывание дисков. Таких групп может быть много — и hot-spare переносятся только между ними.
Как легко понять из вышенаписанного про mdadm/linux md, в /proc/mdstat нет и не может быть ничего про spare-group. Потому что это личные мысли и соображения mdadm’а, а ядро про это ни сном, ни духом (файлы-то в /proc создаются модулями ядра. ).
Таким образом, обеспечивать shared hot-spare можно только с с помощью mdadm. Тут два варианта: если группа указана для массива, собирающегося при загрузке (/etc/mdadm/mdadm.conf), то там можно указать hot-spare, примерно так:
(сразу отвечаю на вопрос, где столько умных слов взять — mdadm —detail —scan —verbose )
Дописано по сравнению с выводом mdadm тут только spare-group. Обратите внимание — во втором массиве НЕТ hot-spare, однако, т.к. группа указана, то в случае сбоя будет использоваться диск из другого массива с той же самой группой. В нашем случае это будет /dev/md1.
Разумеется, всё это произойдёт, только если у нас есть запущенный в режиме -F mdadm. В debian он в выводе ps выглядит так:
Самих групп при этом на одной системе может быть несколько.
Кстати, тут есть мелкая гадость: при вызове mdadm с —detail упоминания о spare-groups не будет, их нужно будет дописывать самим.
Local && global hotspare
А вот тут, увы, йок. Насколько я знаю, mdadm не поддерживает одновременно и локальные (которые будут принадлежать только одному массиву) и общие hotspare. Если есть два массива с одним spare-group, то все hot-spare из одного массива могут быть использованы на благо другого.
Сценарий не такой редкий, как кажется. Вот простенькая топология:
SYS_ARRAY
DATA_ARRAY
2 hot-spare
Логично было бы один hot-spare сделать принадлежащим только DATA_ARRAY, а второй сделать общим, чтобы использовался и как резерв для SYS_ARRAY, и как «второй уровень резерва» для DATA_ARRAY.
Увы, увы, увы, этого нет (если меня разубедят в комментариях, я буду очень рад).
Записки IT специалиста
Ubuntu Server. Администрирование программного RAID.
- Автор: Уваров А.С.
- 06.10.2011
В продолжение нашего материала о программном RAID в Ubuntu Server мы рассмотрим основные задачи администрирования такого массива. Ведь недостаточно только создать RAID, нужно постоянно контролировать его состояние и своевременно заменять диски в случае их отказа. Об этом и пойдет речь в данной статье.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Сразу хотим обратить ваше внимание: создание RAID массива страхует от аппаратного отказа дисков и никоим образом не отменяет резервные копии. Поэтому перед любыми операциями с RAID обязательно сделайте резервное копирование всех ваших данных. К сожалению, ошибочная замена не того диска в массиве или перезеркаливание чистого диска на диск с данными — это не админский фольклор, а реальные случаи, причем имеющие тенденцию регулярно повторяться.
Поэтому, сразу после того, как вы создали массив и успешно установили туда систему, не поленитесь проделать ряд организационных мероприятий, которые позволят избежать досадных ошибок в будущем. Запишите в отдельный журнал серийные номера жестких дисков, порт подключения на материнской плате и наименование в системе каждого из них, а также снабдите каждый диск наклейкой с аналогичной информацией. Это избавит вас, в будущем, от вопросов: а какой из них sda?
Также следует составить план замены жестких дисков в массиве и обеспечить достаточный запас новых дисков для обеспечения бесперебойной работы предприятия. Сейчас мне могут возразить, мол такой подход применим только для крупных предприятий, небольшие фирмы не могут себе позволить держать запас дисков, тем более диски выходят из строя не так уж и часто. Это распространенное заблуждение и чаще всего в этом убеждаются только после потери данных. Поэтому сделаем небольшое теоретическое отступление.
Как правильно рассчитать вероятность отказа? Простая на первый взгляд задача оказывается не такой уж и простой, все дело в неправильном понимании некоторых терминов. Чаще всего путаницу вносит такой показатель как наработка на отказ (MTBF), например у 500 Gb Western Digital RE4 <WD5003ABYX> этот показатель составляет 1,2 млн. часов, а у массовой модели 500 Гб Caviar Blue WD5000AAKS — 650 тыс. часов. На первый взгляд какие-то безумные цифры, глядя на которые можно предположить, что диски должны работать вечно. Однако это не так. Под наработкой на отказ подразумевается среднее время до отказа одного диска из всей партии в течении заявленного гарантийного срока. Что это значит? Что в течении трех лет заявленной гарантии вы можете ожидать отказ для каждого 46-го диска из партии (для RE4).
Однако нам более интересно, какая вероятность отказа для отдельного диска, так как все купленные нами диски могут оказаться как 46-ми (т.е. могут отказать), так и не оказаться ими (проработают без отказа). Для этого рассчитаем такой параметр, как ежегодная вероятность отказов (AFR), который рассчитывается по формуле:
Для одного диска серии RE получим вероятность отказа 0,7%, а для серии Blue — 1,3%, казалось бы цифры небольшие, но не будем забывать, что это вероятность отказа одного диска, для нескольких дисков формула будет иметь вид:
где n — количество дисков, так для 2 и 4 дисков (RE4 / Blue) получим 1,4% / 2,7% и 2,9% / 5,2% соответственно.
За три года, если считать что вероятность отказа в течении этого времени постоянна (на самом деле это не так) получим для 4 дисков величину 8,7% / 15,6% для разных серий. Как видим, для настольной серии значение довольно велико и не может быть проигнорировано. Вероятность одновременного отказа двух дисков составит 0,8% для северной серии и 2,4% для массовой «синей». Помня, что в большинстве случаев одновременный отказ двух дисков приводит к полному разрушению массива, то это тоже весьма немаленькая цифра. Под одновременным отказом следует понимать не одновременный выход из строя, а последовательный отказ в течении довольно малого промежутка времени (несколько дней — неделя), и не имея под рукой резервного диска можно не всегда успеть приобрести новый диск для замены отказавшего.
Наш расчет справедлив для одинаковой вероятности выхода из строя в течении гарантийного срока (3 года), реально это показатель имеет тенденцию к увеличению, что подтверждают различные исследования, в своей практике мы применяем повышающие коэффициенты 1,25 для второго и 1,5 для третьего годов эксплуатации. С учетом этого получим вероятность отказа для 4 дисков в течении трех лет для RE серии — 10,8% (каждый десятый диск) и для Blue серии — 19,7% (каждый пятый диск). Вероятность одновременного отказа двух дисков — 1,2% и 3,9% соответственно.
Какие выводы можно сделать? Во первых, постарайтесь не использовать недорогие диски массовых серий, либо уменьшайте срок их эксплуатации до получения приемлемых значений надежности (для серии Blue таким сроком можно считать 2 года), во вторых составьте план замены выработавших свой ресурс дисков, не дожидаясь их выхода из строя и не используйте диски с истекшим сроком гарантии.
Также всегда имейте под рукой определенное количество исправных дисков, достаточное для того, чтобы оперативно заменить вышедшие из строя. Это число следует рассчитывать исходя из расчетной вероятности отказов и требований к надежности системы хранения данных. Не забывайте включать эти диски в план замены, чтобы они не залеживались до конца гарантийного срока, на наш взгляд оптимально держать диски в резерве год, затем приобретать туда новые, а эти использовать для плановых замен. Для ответственных систем мы рекомендуем использовать диски горячей замены (тем более штатные возможности Ubuntu это позволяют), которые будут автоматически использованы при отказе одного из дисков.
Если кто-то еще считает, что подобные мероприятия все еще слишком дороги, спросите себя и руководство, соизмерима ли стоимость двух-трех дисков с возможным ущербом от простоя или потери данных по причине их выхода из строя, вероятность подобного события нетрудно рассчитать по формулам выше.
Перейдем от теории к практике. В нашем распоряжении имеется тестовый сервер на Ubuntu Server 10.04.3 LTS установленная на программный RAID1 (зеркало). Для администрирования массива используется утилита mdadm, которая уже установлена в системе. Рассмотрим типовые ситуации и действия администратора в них.
Массив перешел в состояние inactive
Такая ситуация возникает при выходе из строя нескольких дисков или при иных аппаратных сбоях. Проявляется это в недоступности массива, если массив загрузочный, то загрузка с него будет невозможна. В первую очередь проверяем состояние дисков, показания S.M.A.R.T, делаем тест поверхности и, если все нормально или почти все нормально (найдены и исправлены бэд-блоки и планируется замена диска), то заново собираем массив командой:
В случае с загрузочным массивом нужно будет загрузиться с установочного диска в режим восстановления. Бывает массив переходит в данное состояние при полностью исправных дисках, например при сбоях в электропитании, но в любом случае такая ситуация требует проведения полной проверки дисков и обстоятельств произошедшего.
Замена диска при некритическом отказе или плановая замена
Прежде всего выясняем, какой именно диск нам необходимо заменить, вот здесь и придет на помощь созданный ранее журнал и наклейки на дисках. Затем помечаем его как сбойный:
В отличии от команды —remove, которая удаляет диск из массива, команда —fail позволяет отключить диск не останавливая работу массива, на загрузочных массивах это единственная возможность отключить диск. Ниже показана попытка отключить сбойный диск у загрузочного массива и прекрасно видна разница между этими двумя командами:
Затем выключаем сервер и физически меняем диск. Загружаемся, теперь нужно просмотреть список всех подключенных дисковых устройств, чтобы выяснить как наш новый диск определился в системе:
Из вывода команды определяем, что новый диск имеет имя sdb и не содержит разделов.
Так как единицей программного массива является не диск, а раздел, мы не можем подключить к массиву чистый диск и нужно создать на нем аналогичный раздел. Однако эта задача не так проста, как кажется, отклонение в размерах раздела даже на 1 сектор сделает невозможным добавление его в массив. Поэтому самым простым решением будет скопировать разметку (со всем содержимым) с исправного диска:
После чего перезагружаемся и добавляем раздел в массив командой:
Теперь если выполнить
мы увидим процесс ресинхронизации массива:
Замена диска при критическом отказе
Под критическим отказом понимается ситуация, когда жесткий диск полностью вышел из строя. В этом случае определяем название отказавшего диска при помощи mdstat и производим его замену, далее порядок действий полностью аналогичен предыдущему пункту.
Добавление резервного диска и расширение массива
Кроме замены дисков перед администратором так-же встают задачи расширения массива (для тех уровней, которые это допускают) и добавление новых дисков горячей замены. Для добавления нового диска на нем также надо создать копию раздела с исправного диска массива и добавить его командой:
Добавленные в исправный массив диски считаются резервными и будут автоматически использованы при отказе одного из основных. Резервные диски (hot spare) обозначаются в выводе mdstat как S, отказавшие — F.
Для проверки пометим один из дисков сбойным. Как видим резервный диск был автоматически добавлен в массив и началась ресинхронизация.
Резервные диски также можно использовать для расширения массива, для этого используется команда —grow, в качестве опции которой передается количество дисков в расширенном массиве. Например мы хотим расширить RAID5 массив (md2) из трех дисков (sda1, sdb1, sdc1) и одного резервного диска (sdd1), на четыре диска (используя для этого резервный). Это можно сделать командой:
Расширение будет произведено без отключения массива и абсолютно прозрачно для пользователя. Однако перед любыми подобными операциями следует обязательно создать резервные копии, если позволяют ресурсы, оптимально скопировать каждый из дисков массива на резервные командой dd, если что-то пойдет не так, достаточно будет просто заменить диски.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал: