Вопрос или проблема
Я использую сервер Ubuntu 20.xx.x LTS с 2019 года с некоторыми дисками, смонтированными как диск RAID BTRFS. Никогда не было никаких проблем.
Ранним летом я поехал в другую страну и не нуждался в сервере, поэтому я выключил его на несколько месяцев. Теперь я вернулся домой, включил сервер, и все работало как надо, все контейнеры Docker работали и т.д.
Затем я выполнил sudo apt-get update
, sudo apt-get upgrade
, а затем перезагрузил его с помощью sudo reboot
. Обычно перезагрузка занимает около 2-5 минут, но в этот раз она заняла около 15 минут. Немного странно, но было много обновлений, которые нужно было установить, так как сервер был выключен долгое время.
После перезагрузки один контейнер Docker не запустился, папка отсутствует на дисках BTRFS. Я перешел в папку с помощью cd
, и она действительно отсутствует. Ничего важного, просто некоторые конфиги, которые, как я предполагаю, случайно удалил перед отъездом в начале лета.
После создания папки контейнер запускается как обычно. Затем Nextcloud жалуется на отсутствие .ocdata. Это странно, я перехожу в папку данных Nextcloud с помощью cd
, и там ничего нет. Все исчезло.
Оказалось, что том BTRFS пуст, за исключением нескольких пустых папок. У меня нет идеи, что произошло, я не делал ничего, чего не делал бы раньше без проблем. Чтобы защитить сервер, пока я не разобрался, что могло пойти не так, я его выключил.
У меня есть резервная копия всего, но она устарела на несколько месяцев, и я действительно не хочу терять никаких файлов. Думаю, что что-то пошло не так при монтировании дисков BTRFS после обновления. Поскольку сервер загружался необычно долго, что-то случилось во время загрузки. Я точно знаю, что файлы были там непосредственно перед перезагрузкой сервера.
У меня нет идеи, что произошло, и я не знаю, как исправить эту проблему, не рискуя потерей данных. Как мне действовать для исправления этой проблемы? Что, вероятно, пошло не так? Что мне теперь делать?
Спасибо за вашу помощь!
Ответ или решение
Для профессионала в области информационных технологий, сталкивающегося с подобной проблемой на Ubuntu-сервере с файловой системой BTRFS, важнейшей задачей будет детальный анализ и поиск причин произошедшего. Рассмотрим возможные сценарии и пути решения проблемы.
Фактология проблемы
На сервере Ubuntu 20.xx.x LTS, эксплуатирующемся с 2019 года, используется BTRFS в режиме RAID. В течение лета сервер находился в выключенном состоянии, а после его повторного запуска и выполнения стандартных обновлений через sudo apt-get update
и sudo apt-get upgrade
, было замечено, что один из контейнеров Docker не запускается из-за отсутствия определенной директории. Попытка войти в папку Nextcloud выявила, что все данные исчезли. Необычно долгая (около 15 минут) перезагрузка сервера может указывать на проблемы с монтированием файловой системы.
Вероятные причины проблемы
-
Ошибки монтирования BTRFS: Вероятно, при обновлении, особенно если были затронуты компоненты ядра, произошло нарушение в монтировании файловой системы. Это могло привести к тому, что BTRFS "не увидел" данные и показал пустую файловую систему.
-
Проблемы с индексами или метаданными BTRFS: Учитывая природу BTRFS, ошибки в метаданных или неправильные индексы могут вызывать такую ситуацию. Возможны повреждения из-за продолжительного хранения дисков в выключенном состоянии.
-
Ошибки в процессе обновления: Если во время обновления произошли сбои или недостающие файлы системы, это могло привести к некорректной работе с RAID и как следствие – невозможности правильно считать данные.
Шаги по решению проблемы
-
Анализ журналов: Для диагностики начать проверку журнальных файлов (
/var/log/syslog
,dmesg
и других рилевантных логов) на наличие конкретных ошибок, связанных с BTRFS и монтированием. -
Проверка состояния файловой системы: Использовать инструмент
btrfs check
илиbtrfs scrub
для диагностики файловой системы. Это может обнаружить и исправить некоторые из ошибок. -
Восстановление метаданных: Исследовать возможность использования
btrfs restore
для восстановления данных с поврежденной файловой системы. Об этом стоит подумать, только если стандартные методы не помогли. -
Проверка состояния RAID: Убедиться, что все физические носители работают корректно и RAID статус зеленый (
btrfs fi show
на целевом устройстве). -
Создание резервной копии текущее состояние: Прежде чем выполнять какие-либо операции по исправлению, постарайтесь создать резервную копию текущего состояния данных (может быть бэкап метаданных или непосредственно образ диска).
После выполнения диагностических процедур и возможного восстановления данных с использованием вышеупомянутых инструментов, стоит вернуть данные из всех возможных резервных копий, чтобы минимизировать потерю информации. Рассмотрите создание более частых резервных копий для предотвращения проблем в будущем.