Вопрос или проблема
У нас произошел серьезный сбой электропитания в дата-центре. Мы используем набор серверов для наших нужд хранения. Основной сервер имеет несколько пар дисков, зеркалированных с помощью mdadm. Полученные /dev/mdX являются физическими томами LVM и принадлежат большой группе томов со всеми нашими данными.
После отключения электроэнергии у нас возникла проблема: одно из устройств mdadm не было автоматически обнаружено из-за отсутствия записи в mdadm.conf
. В результате, в группе томов были неактивные логические тома из-за отсутствующего PV.
Нам удалось исправить конфигурацию mdadm и перезагрузиться. pvscan
показывает все ожидаемые PV, но один из LV все равно не запускается. vgdisplay показывает:
[...]
Cur PV: 3
Act PV: 2
[...]
Ни vgscan, ни pvscan не показывают никаких отсутствующих устройств.
Что пошло не так? Как мы можем заставить LVM активировать все PV?
Решением, к которому мы пришли в спешке, было сделать следующее:
vgcfgbackup -f backup.vg
Затем отредактировать файл, заменив
flags = ["MISSING"]
на
flags = []
в проблемном PV и использовать
vgcfgrestore -f backup_edited.vg
чтобы загрузить измененную конфигурацию. После этого vgchange -a y name_of_the_vg
сработал как ожидалось.
Ответ от mensi работает, но будет безопаснее сделать это с помощью этой команды:
vgextend --restoremissing <volume_group> <physical_volume>
Эта команда удаляет флаг “missing” с PV и восстанавливает все GV и LV, зависящие от этого PV, в рабочее состояние, при условии, что данные на отсутствующем PV не были изменены.
Ответ или решение
После сбоя питания в вашем дата-центре возникли проблемы с системой LVM, где один из логических томов оказался неактивным из-за потери физического тома. Давайте разберёмся, что произошло и как можно было решить эту проблему более эффективно.
Что произошло?
-
Сбой автоопределения mdadm: Из-за сбоя питания один из устройств mdadm не был автоматически обнаружен, так как отсутствовала соответствующая запись в
mdadm.conf
. Это привело к тому, что группа томов LVM потеряла один из своих физических томов (PV), а логические тома (LV) внутри этой группы стали неактивными. -
Несоответствие в количестве PV: Как сообщается в выводе команды
vgdisplay
, у вас должно быть 3 физических тома (Cur PV), но только 2 из них активны (Act PV).
Как это исправить?
Ваше временное решение с помощью vgcfgbackup
и ручного редактирования конфигурации было успешным, однако, есть более безопасный и автоматизированный метод.
Решение:
-
Использование vgextend для восстановления: Команда
vgextend --restoremissing <volume_group> <physical_volume>
может быть более безопасным методом исправления этой ситуации. Она убирает флаг "MISSING" на физическом томе и восстанавливает работу всех зависимых логических томов, при условии, что данные на отсутствующем PV не были изменены. -
Обновление mdadm.conf: Убедитесь, что после внесения исправлений, добавили все устройства mdadm в конфигурационный файл
mdadm.conf
, чтобы предотвратить повторение подобной проблемы. Это обеспечит автоматическое монтирование и обнаружение всех массивов mdadm при перезагрузке. -
Резервное копирование конфигурации: Регулярно выполняйте резервное копирование конфигурационных файлов (например,
vgcfgbackup
). Это позволит более быстро и безопасно восстановить систему в случае возникновения сбоев.
Предотвращение будущих сбоев:
-
Установка источников бесперебойного питания (UPS): Это минимизирует риск потери питания, что является основной причиной сбоя.
-
Мониторинг системы: Внедряйте системы мониторинга, которые будут следить за работой дисковых массивов и оперативно уведомлять о проблемах с устройствами хранения.
Применяя эти рекомендации, вы сможете более надежно управлять своей инфраструктурой хранения и минимизировать риск потерь данных из-за сбоев питания.