Главная
» Как сделать
»
Когда файловая система SLES Btrfs переходит в режим только для чтения: диагностика перед повторным монтированием.
Когда файловая система SLES Btrfs переходит в режим только для чтения: диагностика перед повторным монтированием.
Если файловая система SUSE Linux Enterprise Btrfs сообщает о состоянии «Файловая система только для чтения», сначала выясните, была ли она смонтирована в режиме только для чтения намеренно или переключилась в этот режим после ошибки. Перед попыткой повторного монтирования проверьте параметры монтирования, свободное место и журнал ядра. Используйте Snapper rollback для получения проверенного загружаемого снимка системы; если Btrfs регистрирует ошибки ввода-вывода или метаданных, защитите данные и проведите диагностику пути хранения, прежде чем снова записывать данные в файловую систему.
В примере проверяются параметры монтирования и определяется устройство Btrfs, используемое для резервного копирования раздела /data.
1. Как отличить преднамеренное монтирование только для чтения от ошибки файловой системы.
Замените /dataна соответствующую точку монтирования или /на корневой каталог.
findmnt -T /data -o SOURCE,FSTYPE,OPTIONS
sudo btrfs filesystem show /data
В первой команде найдите roили rwв параметрах. Ожидается, что снимок Snapper, доступный только для чтения, будет отклонять операции записи. Монтирование, настроенное с помощью roв, /etc/fstabтакже может быть преднамеренным. Btrfs также может переключаться в режим только для чтения после серьезных ошибок транзакций, метаданных или устройств. В этом случае повторный запуск mount -o remount,rwне устранит причину и может немедленно завершиться с ошибкой.
Если файловая система была намеренно смонтирована только для чтения, её устройство исправно, и в журнале ядра отсутствуют ошибки Btrfs или ошибки ввода-вывода, то обычное монтирование данных можно перемонтировать в режиме чтения-записи:
sudo mount -o remount,rw /data
findmnt -T /data -o TARGET,OPTIONS
Не используйте это в качестве команды восстановления для загруженного снимка, доступного только для чтения, или файловой системы, принудительно переключенной в режим только для чтения из-за ошибки. Успешное перемонтирование подтверждает возможность записи, а не целостность файловой системы.
2. Проверьте, действительно ли проблема заключается в избыточном давлении в пространстве.
Сравните свободное пространство файловой системы с данными о распределении ресурсов в Btrfs; приведенные примеры являются иллюстративными.
Даже при базовом отображении диска, демонстрирующем несоответствие, файловая система Btrfs может испытывать нехватку выделяемого пространства, поскольку распределение данных и метаданных отслеживается раздельно. Проверьте как обычное свободное пространство, так и использование Btrfs:
df -hT /data
sudo btrfs filesystem usage -T /data
Если система выдает сообщение об ошибке No space left on device, а в журнале ядра не отображаются сбои устройств или структурные ошибки, перед удалением чего-либо проверьте использование Snapper:
sudo snapper list
Удаляйте только те снимки, которые ваша политика хранения позволяет потерять, используя sudo snapper delete SNAPSHOT_IDдля каждого выбранного идентификатора. Сохраняйте заведомо исправный снимок до обновления, если вам нужна возможность отката; удаление снимков освобождает место, но удаляет точки восстановления. Очистка может не сразу освободить место, а снимки не исправят ошибки ввода-вывода. Не запускайте балансировку для принудительного перевода файловой системы, доступной только для чтения, в режим записи; она перемещает данные и предназначена для диагностированной проблемы распределения ресурсов в исправной файловой системе, доступной для записи.
3. Перед выбором способа восстановления ознакомьтесь с журналом ядра.
Сообщения ядра позволяют отличать нехватку места от ошибок чтения, контрольной суммы или устройства; приведенные строки являются примерами.
Ищите первую ошибку Btrfs, блочного устройства, контроллера или транспортного уровня, а не только последнее сообщение о том, что файловая система стала доступна только для чтения:
Сообщения о неудачных попытках чтения, несоответствии контрольных сумм, отсутствии устройств или ошибках ввода-вывода указывают на иной путь, нежели простая roопция монтирования. Проверьте информацию о состоянии диска, контроллера, RAID/HBA, SAN или виртуального диска, а также данные производителя. В первую очередь устраните нестабильность оборудования или проблем с подключением. Если данные имеют значение, минимизируйте операции записи и договоритесь с администратором о создании резервной копии или образа на уровне блоков, прежде чем пытаться восстановить файловую систему.
4. Выберите наименее рискованный способ восстановления, соответствующий имеющимся данным.
Что вы нашли
Следующее действие
Компромисс
roлибо настроено, либо точка монтирования была намеренно доступна только для чтения; соответствующих ошибок ядра нет.
Исправьте конфигурацию монтирования, если она не предусмотрена, или повторно смонтируйте обычный записываемый подтом после подтверждения работоспособности устройства.
Быстро, но повторное монтирование не может очистить состояние "только для чтения", принудительно установленное из-за ошибки, или сделать снимок, доступный только для чтения, доступным для записи.
Загрузочный снимок корневого каталога работает, и проблема возникла после изменения системы.
Загрузите и протестируйте снимок, затем запустите программу sudo snapper rollbackи перезагрузитесь, вернувшись к настройкам по умолчанию.
Восстанавливает корневой подтом до состояния моментального снимка. Данные в исключенных или отдельных подтомах не откатываются. SLES 15 SP7 поддерживает этот откат только при стандартной компоновке корневого подтома и файловой системе с одним корневым устройством.
Журнал ядра содержит ошибки ввода-вывода хранилища или структурные ошибки файловой системы Btrfs.
Стабилизируйте хранилище и сохраните данные; используйте среду восстановления и обратитесь за помощью к специалистам для восстановления файловой системы.
Более медленный способ, но позволяющий избежать сокрытия нерешенной аппаратной проблемы с помощью перемонтирования с возможностью записи.
Сообщается только о нехватке места; ошибки хранения отсутствуют.
Проверьте срок хранения Snapper и разрешенное количество свободных снимков или данных, затем повторно проверьте использование Btrfs.
Освобождает ресурсы за счет выбранных точек восстановления или файлов.
Выберите снимок состояния до возникновения сбоя, проверьте загрузку в режиме только для чтения, а затем выполните откат Snapper, если это решит проблему.
В SLES загрузочные снимки используют конфигурацию корневого каталога Snapper по умолчанию. Корневой каталог должен быть Btrfs на одном из устройств, загрузчик должен его поддерживать, и откатывается только корневой подтом. Перед подтверждением проверьте подходящий вариант; если он не подходит, перезагрузитесь в текущую систему или среду восстановления. См. процедуру отката Snapper для SLES 15 SP7 .
Когда необходимы проверки в автономном режиме или очистка системы.
Если файловая система не монтируется или сообщения ядра указывают на структурные повреждения, загрузите систему восстановления SLES или другую подходящую среду восстановления, определите правильное устройство и убедитесь, что оно отмонтировано, прежде чем запускать проверку по умолчанию только для чтения:
sudo btrfs check /dev/DEVICE
Используйте фактическое блочное устройство Btrfs, а не заполнитель точки монтирования. Проверка может занять время и память, а также выдаст структурные результаты; она не гарантирует исправления. Не добавляйте её --repairв качестве стандартного следующего шага. В документации Btrfs предупреждается, что исправление может усугубить ситуацию и должно использоваться только под руководством специалиста после принятия риска потери данных. Обратитесь в службу поддержки SUSE или к специалисту по Btrfs, если проверка выдаст ошибки или устройство будет иметь сбои ввода-вывода.
После стабилизации хранилища и монтирования файловой системы в режиме чтения-записи sudo btrfs scrub start -B /dataможно проверить контрольные суммы. Scrub не является структурным анализатором. Он может восстанавливать повреждения только на основе заведомо исправной избыточной копии; при использовании однокопийной структуры он обнаруживает ошибки, но не может восстановить потерянные данные. Ознакомьтесь с документацией по Btrfs scrub . Также см. руководство SUSE по файловым системам SLES 15 SP7 , статью SUSE о восстановлении Btrfs и руководство по проверке Btrfs .
Проверьте результат
После выбранного восстановления убедитесь, что точка монтирования имеет необходимые параметры и может выполнять безопасную запись:
Для отката к корневому снимку сначала перезагрузите систему и убедитесь, что она запускается нормально по умолчанию. Затем просмотрите новый журнал ядра на предмет повторяющихся ошибок Btrfs или устройств. Наличие флага чтения/записи само по себе не является гарантией исправности: если ошибки повторяются, остановите запись и вернитесь к диагностике хранилища.