BTRFS/Обслуживание: различия между версиями
Braumann (обсуждение | вклад) Новая страница: «Файловая система '''Btrfs''' может сама проверять свои данные, исправлять ошибки и сохранять стабильность, если ей немного помочь. Этот раздел рассказывает, как выполнять обслуживание — без риска и без “танцев с бубном”. == '''Зачем нужно обслуживание Btrfs'''...» |
Braumann (обсуждение | вклад) Нет описания правки |
||
| (не показано 5 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
Файловая система ''' | {| style="width:100%; margin-top:1em; font-size:95%;" | ||
| style="text-align:left;" | [[BTRFS/Оптимизация|← Назад: Оптимизация]] | |||
| style="text-align:right;" | [[BTRFS/Автоматизация обслуживания|Вперёд: Автоматизация обслуживания →]] | |||
|} | |||
<div style="font-size:90%; color:#555; margin-bottom:1em;"> | |||
'''Опубликовано:''' 30.10.2025 • '''Обновлено:''' {{REVISIONDAY2}}.{{REVISIONMONTH}}.{{REVISIONYEAR}} | |||
</div> | |||
<div style="border: 2px solid #f39c12; background-color: #fff3cd; padding: 0.5em; margin-bottom: 1em;"> | |||
⚠️ '''Эта статья находится в разработке.''' Содержание может измениться в ближайшее время. | |||
</div> | |||
Файловая система '''BTRFS''' может сама проверять свои данные, исправлять ошибки и сохранять стабильность, если ей немного помочь. | |||
Этот раздел рассказывает, как выполнять обслуживание — без риска и без “танцев с бубном”. | Этот раздел рассказывает, как выполнять обслуживание — без риска и без “танцев с бубном”. | ||
== '''Зачем нужно обслуживание | == '''Зачем нужно обслуживание BTRFS''' == | ||
BTRFS — "живая" файловая система: она отслеживает состояние своих блоков, умеет восстанавливаться при ошибках и эффективно использовать пространство. | |||
Но даже такой системе полезно периодически проверять состояние, балансировать блоки и корректировать распределение данных, чтобы избежать проблем с доступом и потерей свободного места. | |||
== '''Проверка | == '''Проверка статистики устройств''' == | ||
Чтобы посмотреть, есть ли ошибки ввода-вывода или другие проблемы с устройствами, выполните: | |||
<pre> | <pre> | ||
| Строка 15: | Строка 28: | ||
</pre> | </pre> | ||
Команда выводит | Команда выводит счётчики ошибок чтения и записи по каждому устройству; | ||
если вы видите только нули — всё в порядке. | |||
Если есть ошибки, стоит изучить их глубже (например, с помощью `smartctl` или `smartmontools`). | |||
== '''Проверка и восстановление данных (scrub)''' == | == '''Проверка и восстановление данных (scrub)''' == | ||
Scrub — это проверка целостности всех блоков данных и метаданных с проверкой контрольных сумм на лету. | |||
Если файловая система настроена с избыточным хранением (например, RAID1 или DUP), BTRFS может автоматически попытаться восстановить повреждённые блоки из реплик. | |||
Чтобы запустить | Чтобы запустить проверку: | ||
<pre> | <pre> | ||
| Строка 29: | Строка 43: | ||
</pre> | </pre> | ||
Пояснение: | |||
* '''start''' — начать операцию scrub | |||
* '''-B''' — выполнить в блокирующем режиме (ожидать завершения) | |||
* '''-d''' — детальный вывод статистики по ошибкам | |||
Для просмотра статуса scrub: | |||
<pre> | <pre> | ||
sudo btrfs scrub status / | sudo btrfs scrub status / | ||
</pre> | </pre> | ||
Если ошибок нет — вывод покажет нули в соответствующих счётчиках. | |||
Регулярная проверка (например, раз в месяц) помогает выявлять проблемы на ранних стадиях. | |||
== '''Балансировка пространства''' == | == '''Балансировка пространства''' == | ||
Со временем распределение данных | Со временем распределение данных и метаданных в BTRFS может становиться неравномерным. | ||
Балансировка перераспределяет блоки, улучшая доступное пространство и предотвращая ситуации, когда новый блок не может быть выделен, хотя в целом места достаточно. | |||
Пример команды: | |||
<pre> | <pre> | ||
| Строка 54: | Строка 69: | ||
Пояснение: | Пояснение: | ||
* '''-dusage=50''' — обрабатывать только данные, занятые менее чем на 50 % | |||
* '''-musage=50''' — аналогично для метаданных | |||
* '''/''' — корневой подтом | |||
Эту операцию можно выполнять, например, раз в пару месяцев, или когда метаданные занимают слишком много места. | |||
== '''Удаление старых снимков (snapshots)''' == | == '''Удаление старых снимков (snapshots)''' == | ||
Снимки | Снимки занимают пространство, и если их много — свободное место может уменьшиться. | ||
Сначала получите список подтомов: | |||
Сначала | |||
<pre> | <pre> | ||
| Строка 72: | Строка 84: | ||
</pre> | </pre> | ||
Затем удалите ненужный: | |||
<pre> | <pre> | ||
| Строка 78: | Строка 90: | ||
</pre> | </pre> | ||
После удаления освободившееся | После удаления снимка стоит выполнить балансировку, чтобы освободившееся пространство эффективно перераспределилось. | ||
== '''Проверка использования места''' == | == '''Проверка использования места''' == | ||
Чтобы | Чтобы увидеть текущее использование пространства: | ||
<pre> | <pre> | ||
| Строка 88: | Строка 100: | ||
</pre> | </pre> | ||
Команда | Команда покажет, сколько места занято данными, метаданными и зарезервировано системой. | ||
Если | Если доля метаданных велика (например, выше 20–30 %), имеет смысл провести балансировку. | ||
== '''Проверка | == '''Проверка общей целостности файловой системы''' == | ||
Для | Для “сухой” проверки без исправлений можно использовать: | ||
<pre> | <pre> | ||
| Строка 99: | Строка 111: | ||
</pre> | </pre> | ||
Эта команда | Эта команда проверяет структуру файловой системы без внесения изменений. | ||
Если вы хотите исправить серьёзные ошибки, делать это стоит только в режиме Live-системы, когда раздел не смонтирован. | |||
== '''Практические советы''' == | == '''Практические советы''' == | ||
* Запускайте scrub примерно раз в месяц | * Запускайте scrub примерно раз в месяц — это помогает находить ошибки до того, как они станут проблемой. | ||
* Балансировку можно делать раз в 2–3 месяца. | * Балансировку можно делать раз в 2–3 месяца или при необходимости. | ||
* | * Scrub не заменяет `fsck` — это проверка контрольных сумм, а не глубокая реставрация структуры. | ||
* | * Всегда проверяйте статус после выполнения операций (`scrub status`, `balance status`). | ||
== '''Ежемесячное обслуживание (вручную)''' == | == '''Ежемесячное обслуживание (вручную)''' == | ||
Если вы не | Если вы не автоматизируете обслуживание, достаточно выполнить три команды вручную: | ||
<pre> | <pre> | ||
| Строка 121: | Строка 131: | ||
</pre> | </pre> | ||
* | * `scrub` — проверяет целостность данных; | ||
* | * `balance` — перераспределяет данные; | ||
* | * `fstrim` — сообщает SSD/NVMe о неиспользуемых блоках, освобождая их для внутреннего управления. | ||
Такая последовательность обеспечивает базовый уровень ухода за BTRFS. | |||
== '''Заключение''' == | == '''Заключение''' == | ||
Регулярное обслуживание | Регулярное обслуживание BTRFS похоже на плановое ТО автомобиля — немного внимания сейчас позволяет значительно снизить риск проблем и сохранить производительность системы. | ||
После нескольких таких циклов вы заметите, что система остаётся “лёгкой” даже после месяцев | После нескольких таких циклов вы заметите, что файловая система остаётся “лёгкой” и устойчивой даже после месяцев активной работы. | ||
{| style="width:100%; margin-top:1em; font-size:95%;" | |||
| style="text-align:left;" | [[BTRFS/Оптимизация|← Назад: Оптимизация]] | |||
| style="text-align:right;" | [[BTRFS/Автоматизация обслуживания|Вперёд: Автоматизация обслуживания →]] | |||
|} | |||
Текущая версия от 17:08, 11 января 2026
| ← Назад: Оптимизация | Вперёд: Автоматизация обслуживания → |
Опубликовано: 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 похоже на плановое ТО автомобиля — немного внимания сейчас позволяет значительно снизить риск проблем и сохранить производительность системы. После нескольких таких циклов вы заметите, что файловая система остаётся “лёгкой” и устойчивой даже после месяцев активной работы.
| ← Назад: Оптимизация | Вперёд: Автоматизация обслуживания → |