Home » Ошибки » Metadata corruption detected, unmount and run xfs_repair

Metadata corruption detected, unmount and run xfs_repair

После переноса диска работающей виртуальной машины с одного гипервизора на другой возникла проблема с загрузкой виртуальной машины на новом месте. Была повреждена файловая система xfs из-за того, что диск копировался нагорячую. Рассказываю, как решить эту проблему.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.

Для начала поясню, зачем я делал такую на первый взгляд абсурдную вещь. Для того, чтобы перенести виртуальную машину на на другой гипервизор proxmox, ее надо либо забэкапить и перенести архив, либо остановить и скопировать диски. Я не мог это сделать по нескольким причинам:

  1. На гипервизоре не хватало места, чтобы сделать локальный бэкап.
  2. Объем диска был 300 Гб, поэтому остановить виртуальную машину на весь срок переноса диска через интернет не представлялось возможным.

Мне нужно было сделать копию для того, чтобы развернуть такое же окружение на резервном гипервизоре и тестировать на нем восстановление из бэкапов. Так что меня устраивало, что горячие данные, например база, которые менялись во время копирования, будут повреждены. Я их накачу потом из бэкапа. Не хотелось решать вопрос с ручной настройкой окружения. Было удобнее скопировать как есть текущий прод.

В итоге я принял решение копировать трехсотгигабайтный диск наживую с работающего гипервизора на резервный. После того, как скопировал, ожидаемо, виртуальная машина не запустилась. Получил такую ошибку:

Metadata corruption detected, unmount and run xfs_repair

Metadata corruption detected, unmount and run xfs_repair. Entering emergency mode. Exit the shell to continue.

Перед тем, как запустить виртуалку с скопированным диском, сделал проверку самого qcow2 файла.

# qemu-img check vm-102-disk-0.qcow2
# qemu-img check -r all vm-102-disk-0.qcow2

Ошибок на этом этапе не было. Но виртуалка всё равно не стартовала, так как судя по ошибке на скрине, была повреждена сама файловая система xfs. Исправил это достаточно просто. Там же в консоли восстановления выполнил проверку файловой системы. У меня там было 2 раздела:

  1. /boot на /dev/sda1
  2. / корень на lvm разделе /dev/mapper/centos-root

Запустил:

# xfs_repair /dev/sda1
# xfs_repair /dev/mapper/centos-root

В корне было много ошибок, но все они исправились и виртуальная машина успешно стартовала. Перед этим прикидывал всякие варианты, как бы без остановки виртуалки, скопировать ее. Ничего лучше не придумал. По факту это оказалось самое простое решение вообще без простоя.

Онлайн курс по Kubernetes

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

Если вы ответите "да" хотя бы на один вопрос, то это ваш курс:
  • устали тратить время на автоматизацию?
  • хотите единообразные окружения?;
  • хотите развиваться и использовать современные инструменты?
  • небезразлична надежность инфраструктуры?
  • приходится масштабировать инфраструктуру под растущие потребности бизнеса?
  • хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?
Сдавайте вступительный тест по ссылке и присоединяйтесь к новому набору!.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Один комментарий

  1. Спасибо.
    xfs умеет snapshot
    1. Маунтимся удаленно к proxmox (sshfs в помощь)
    2. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/xfsbackuprestore

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar