BTRFS/Обслуживание
| ← Назад: Оптимизация | Вперёд: Автоматизация обслуживания → |
Опубликовано: 30.10.2025 • Обновлено: 11.01.2026
⚠️ Эта статья находится в разработке. Содержание может измениться в ближайшее время.
Файловая система BTRFS может сама проверять свои данные, исправлять ошибки и сохранять стабильность, если ей немного помочь. Этот раздел рассказывает, как выполнять обслуживание — без риска и без “танцев с бубном”.
Зачем нужно обслуживание BTRFS
BTRFS — "живая" файловая система: она отслеживает состояние своих блоков, умеет восстанавливаться при ошибках и эффективно использовать пространство. Но даже такой системе полезно периодически проверять состояние, балансировать блоки и корректировать распределение данных, чтобы избежать проблем с доступом и потерей свободного места.
Проверка статистики устройств
Чтобы посмотреть, есть ли ошибки ввода-вывода или другие проблемы с устройствами, выполните:
sudo btrfs device stats /
Команда выводит счётчики ошибок чтения и записи по каждому устройству; если вы видите только нули — всё в порядке. Если есть ошибки, стоит изучить их глубже (например, с помощью `smartctl` или `smartmontools`).
Проверка и восстановление данных (scrub)
Scrub — это проверка целостности всех блоков данных и метаданных с проверкой контрольных сумм на лету. Если файловая система настроена с избыточным хранением (например, RAID1 или DUP), BTRFS может автоматически попытаться восстановить повреждённые блоки из реплик.
Чтобы запустить проверку:
sudo btrfs scrub start -Bd /
Пояснение:
- start — начать операцию scrub
- -B — выполнить в блокирующем режиме (ожидать завершения)
- -d — детальный вывод статистики по ошибкам
Для просмотра статуса scrub:
sudo btrfs scrub status /
Если ошибок нет — вывод покажет нули в соответствующих счётчиках. Регулярная проверка (например, раз в месяц) помогает выявлять проблемы на ранних стадиях.
Балансировка пространства
Со временем распределение данных и метаданных в BTRFS может становиться неравномерным. Балансировка перераспределяет блоки, улучшая доступное пространство и предотвращая ситуации, когда новый блок не может быть выделен, хотя в целом места достаточно.
Пример команды:
sudo btrfs balance start -dusage=50 -musage=50 /
Пояснение:
- -dusage=50 — обрабатывать только данные, занятые менее чем на 50 %
- -musage=50 — аналогично для метаданных
- / — корневой подтом
Эту операцию можно выполнять, например, раз в пару месяцев, или когда метаданные занимают слишком много места.
Удаление старых снимков (snapshots)
Снимки занимают пространство, и если их много — свободное место может уменьшиться. Сначала получите список подтомов:
sudo btrfs subvolume list /
Затем удалите ненужный:
sudo btrfs subvolume delete /.snapshots/2024-10-10_18-00-00/snapshot
После удаления снимка стоит выполнить балансировку, чтобы освободившееся пространство эффективно перераспределилось.
Проверка использования места
Чтобы увидеть текущее использование пространства:
sudo btrfs filesystem df /
Команда покажет, сколько места занято данными, метаданными и зарезервировано системой. Если доля метаданных велика (например, выше 20–30 %), имеет смысл провести балансировку.
Проверка общей целостности файловой системы
Для “сухой” проверки без исправлений можно использовать:
sudo btrfs check --readonly /dev/sda2
Эта команда проверяет структуру файловой системы без внесения изменений. Если вы хотите исправить серьёзные ошибки, делать это стоит только в режиме Live-системы, когда раздел не смонтирован.
Практические советы
- Запускайте scrub примерно раз в месяц — это помогает находить ошибки до того, как они станут проблемой.
- Балансировку можно делать раз в 2–3 месяца или при необходимости.
- Scrub не заменяет `fsck` — это проверка контрольных сумм, а не глубокая реставрация структуры.
- Всегда проверяйте статус после выполнения операций (`scrub status`, `balance status`).
Ежемесячное обслуживание (вручную)
Если вы не автоматизируете обслуживание, достаточно выполнить три команды вручную:
sudo btrfs scrub start -Bd / sudo btrfs balance start -dusage=50 -musage=50 / sudo fstrim -av
- `scrub` — проверяет целостность данных;
- `balance` — перераспределяет данные;
- `fstrim` — сообщает SSD/NVMe о неиспользуемых блоках, освобождая их для внутреннего управления.
Такая последовательность обеспечивает базовый уровень ухода за BTRFS.
Заключение
Регулярное обслуживание BTRFS похоже на плановое ТО автомобиля — немного внимания сейчас позволяет значительно снизить риск проблем и сохранить производительность системы. После нескольких таких циклов вы заметите, что файловая система остаётся “лёгкой” и устойчивой даже после месяцев активной работы.
| ← Назад: Оптимизация | Вперёд: Автоматизация обслуживания → |