BTRFS/Автоматизация обслуживания: различия между версиями
Braumann (обсуждение | вклад) Нет описания правки |
Braumann (обсуждение | вклад) |
||
| Строка 104: | Строка 104: | ||
== '''Балансировка (раз в месяц)''' == | == '''Балансировка (раз в месяц)''' == | ||
Балансировка — ресурсоёмкая операция, поэтому | Балансировка — ресурсоёмкая операция, поэтому '''не должна выполняться часто'''. | ||
Создайте отдельный сервис: | Создайте отдельный сервис: | ||
Версия от 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 практически не требует ручного вмешательства. Система сама следит за целостностью данных, эффективно использует пространство и остаётся стабильной даже при длительной работе.
| ← Назад: Обслуживание |