BTRFS/Автоматизация обслуживания: различия между версиями
Braumann (обсуждение | вклад) мНет описания правки |
Braumann (обсуждение | вклад) Нет описания правки |
||
| Строка 7: | Строка 7: | ||
</div> | </div> | ||
Если вы уже знаете, как | Если вы уже знаете, как обслуживать файловую систему '''BTRFS''' вручную, следующий логичный шаг — автоматизировать эти процессы. | ||
Linux умеет выполнять | Linux умеет выполнять задачи по расписанию, и с помощью systemd это делается надёжно и прозрачно. | ||
= '''Автоматизация обслуживания''' = | = '''Автоматизация обслуживания''' = | ||
'''Автоматизация''' | '''Автоматизация''' позволяет системе самостоятельно: | ||
* | * проверять целостность данных (scrub); | ||
* | * периодически перераспределять пространство (balance); | ||
* | * выполнять TRIM для SSD/NVMe (fstrim). | ||
Пользователю больше не нужно помнить о | Пользователю больше не нужно помнить о регулярном обслуживании — всё выполняется в фоновом режиме. | ||
== '''Подготовка скрипта обслуживания''' == | == '''Подготовка скрипта обслуживания''' == | ||
Создадим | Создадим безопасный скрипт для регулярной проверки BTRFS. | ||
<pre> | <pre> | ||
| Строка 29: | Строка 27: | ||
</pre> | </pre> | ||
Содержимое файла: | |||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
# | set -e | ||
btrfs | # Проверка, что корень — BTRFS | ||
fstrim -av | if ! findmnt -n -o FSTYPE / | grep -q btrfs; then | ||
echo "Корневая файловая система не BTRFS, выход." | |||
exit 0 | |||
fi | |||
# Проверка целостности данных | |||
btrfs scrub start / | |||
# TRIM (если не используется fstrim.timer) | |||
fstrim -av || true | |||
</pre> | </pre> | ||
Сделайте файл исполняемым: | |||
<pre> | <pre> | ||
| Строка 45: | Строка 52: | ||
</pre> | </pre> | ||
== '''systemd-сервис для scrub''' == | |||
Создайте сервис: | |||
<pre> | <pre> | ||
| Строка 63: | Строка 60: | ||
</pre> | </pre> | ||
Содержимое: | |||
<pre> | <pre> | ||
[Unit] | [Unit] | ||
Description= | Description=Регулярная проверка BTRFS (scrub) | ||
Documentation=man:btrfs(8) | Documentation=man:btrfs-scrub(8) | ||
[Service] | [Service] | ||
| Строка 75: | Строка 72: | ||
</pre> | </pre> | ||
== '''Таймер systemd (еженедельно)''' == | |||
== ''' | |||
<pre> | <pre> | ||
sudo nano /etc/systemd/system/btrfs-maintain.timer | sudo nano /etc/systemd/system/btrfs-maintain.timer | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
[Unit] | [Unit] | ||
Description= | Description=Еженедельный scrub BTRFS | ||
[Timer] | [Timer] | ||
| Строка 104: | Строка 90: | ||
</pre> | </pre> | ||
Активация: | |||
<pre> | <pre> | ||
| Строка 116: | Строка 96: | ||
</pre> | </pre> | ||
Проверка: | |||
<pre> | <pre> | ||
| Строка 124: | Строка 102: | ||
</pre> | </pre> | ||
== '''Балансировка (раз в месяц)''' == | |||
Балансировка — ресурсоёмкая операция, поэтому **не должна выполняться часто**. | |||
Создайте отдельный сервис: | |||
<pre> | <pre> | ||
btrfs- | sudo nano /etc/systemd/system/btrfs-balance.service | ||
</pre> | </pre> | ||
<pre> | |||
[Unit] | |||
Description=Месячная балансировка BTRFS | |||
Documentation=man:btrfs-balance(8) | |||
== | [Service] | ||
Type=oneshot | |||
ExecStart=/usr/bin/btrfs balance start -dusage=50 -musage=50 / | |||
</pre> | |||
Таймер: | |||
<pre> | <pre> | ||
sudo | sudo nano /etc/systemd/system/btrfs-balance.timer | ||
</pre> | </pre> | ||
<pre> | |||
[Unit] | |||
Description=Месячная балансировка BTRFS | |||
[Timer] | |||
OnCalendar=monthly | |||
Persistent=true | |||
[Install] | |||
WantedBy=timers.target | |||
</pre> | </pre> | ||
Активация: | |||
<pre> | <pre> | ||
sudo systemctl enable --now btrfs-balance.timer | |||
</pre> | </pre> | ||
== '''Проверка журналов''' == | |||
<pre> | <pre> | ||
sudo | sudo journalctl -u btrfs-maintain.service | ||
sudo | sudo journalctl -u btrfs-balance.service | ||
</pre> | </pre> | ||
== '''Альтернатива: cron (для старых систем''' == | == '''Альтернатива: cron (для старых систем)''' == | ||
Если | Если systemd недоступен, можно использовать cron: | ||
<pre> | <pre> | ||
sudo crontab -e | sudo crontab -e | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
@weekly /usr/local/bin/btrfs-maintain.sh | @weekly /usr/local/bin/btrfs-maintain.sh | ||
@monthly /usr/bin/btrfs balance start -dusage=50 -musage=50 / | |||
</pre> | </pre> | ||
== '''Практические рекомендации''' == | |||
== ''' | |||
Если | * Scrub — раз в неделю или месяц. | ||
* Balance — '''не чаще одного раза в 1–2 месяца'''. | |||
* Если включён `fstrim.timer`, запуск `fstrim` из скрипта не требуется. | |||
* Не запускайте баланс без параметров `dusage/musage`. | |||
== '''Заключение''' == | == '''Заключение''' == | ||
С правильно настроенной автоматизацией '''BTRFS''' практически не требует ручного вмешательства. | |||
Система сама следит за целостностью данных, эффективно использует пространство и остаётся стабильной даже при длительной работе. | |||
{| style="width:100%; margin-top:1em; font-size:95%;" | {| style="width:100%; margin-top:1em; font-size:95%;" | ||
| style="text-align:left;" | [[BTRFS/Обслуживание|← Назад: Обслуживание]] | | style="text-align:left;" | [[BTRFS/Обслуживание|← Назад: Обслуживание]] | ||
|} | |} | ||
Версия от 16:47, 11 января 2026
| ← Назад: Обслуживание |
⚠️ Эта статья находится в разработке. Содержание может измениться в ближайшее время.
Если вы уже знаете, как обслуживать файловую систему BTRFS вручную, следующий логичный шаг — автоматизировать эти процессы. Linux умеет выполнять задачи по расписанию, и с помощью systemd это делается надёжно и прозрачно.
Автоматизация обслуживания
Автоматизация позволяет системе самостоятельно:
- проверять целостность данных (scrub);
- периодически перераспределять пространство (balance);
- выполнять TRIM для SSD/NVMe (fstrim).
Пользователю больше не нужно помнить о регулярном обслуживании — всё выполняется в фоновом режиме.
Подготовка скрипта обслуживания
Создадим безопасный скрипт для регулярной проверки BTRFS.
sudo nano /usr/local/bin/btrfs-maintain.sh
Содержимое файла:
#!/bin/bash
set -e
# Проверка, что корень — BTRFS
if ! findmnt -n -o FSTYPE / | grep -q btrfs; then
echo "Корневая файловая система не BTRFS, выход."
exit 0
fi
# Проверка целостности данных
btrfs scrub start /
# TRIM (если не используется fstrim.timer)
fstrim -av || true
Сделайте файл исполняемым:
sudo chmod +x /usr/local/bin/btrfs-maintain.sh
systemd-сервис для scrub
Создайте сервис:
sudo nano /etc/systemd/system/btrfs-maintain.service
Содержимое:
[Unit] Description=Регулярная проверка BTRFS (scrub) Documentation=man:btrfs-scrub(8) [Service] Type=oneshot ExecStart=/usr/local/bin/btrfs-maintain.sh
Таймер systemd (еженедельно)
sudo nano /etc/systemd/system/btrfs-maintain.timer
[Unit] Description=Еженедельный scrub BTRFS [Timer] OnCalendar=weekly Persistent=true [Install] WantedBy=timers.target
Активация:
sudo systemctl enable --now btrfs-maintain.timer
Проверка:
systemctl list-timers | grep btrfs
Балансировка (раз в месяц)
Балансировка — ресурсоёмкая операция, поэтому **не должна выполняться часто**.
Создайте отдельный сервис:
sudo nano /etc/systemd/system/btrfs-balance.service
[Unit] Description=Месячная балансировка BTRFS Documentation=man:btrfs-balance(8) [Service] Type=oneshot ExecStart=/usr/bin/btrfs balance start -dusage=50 -musage=50 /
Таймер:
sudo nano /etc/systemd/system/btrfs-balance.timer
[Unit] Description=Месячная балансировка BTRFS [Timer] OnCalendar=monthly Persistent=true [Install] WantedBy=timers.target
Активация:
sudo systemctl enable --now btrfs-balance.timer
Проверка журналов
sudo journalctl -u btrfs-maintain.service sudo journalctl -u btrfs-balance.service
Альтернатива: cron (для старых систем)
Если systemd недоступен, можно использовать cron:
sudo crontab -e
@weekly /usr/local/bin/btrfs-maintain.sh @monthly /usr/bin/btrfs balance start -dusage=50 -musage=50 /
Практические рекомендации
- Scrub — раз в неделю или месяц.
- Balance — не чаще одного раза в 1–2 месяца.
- Если включён `fstrim.timer`, запуск `fstrim` из скрипта не требуется.
- Не запускайте баланс без параметров `dusage/musage`.
Заключение
С правильно настроенной автоматизацией BTRFS практически не требует ручного вмешательства. Система сама следит за целостностью данных, эффективно использует пространство и остаётся стабильной даже при длительной работе.
| ← Назад: Обслуживание |