Действия по приведению дисков в рабочее состояние (2026-02-15)
Дата: 2026-02-15
Цель: Проверить состояние дисков, принять меры, исправить ошибки, привести к штатной работе.
1. Исходное состояние
| Раздел | Свободно | Норма | Статус |
|---|---|---|---|
| / | 96 ГБ | ≥ 2 ГБ, ≥15% | ✅ Норма |
| /storage | 0–7 ГБ | ≥ 80 ГБ | ⚠️ EMERGENCY |
| /D | 296 ГБ | ≥ 20% | ✅ Норма |
/storageбыл заполнен до 100% (0 байт свободно), затем после частичной очистки — около 7 ГБ.- Основной потребитель: LXD containers-snapshots (~502 ГБ из 558 ГБ на /storage).
2. Выполненные действия
2.1 Срочное освобождение места
- При 0 байт LXD не отвечал на запросы. Выполнено обнуление логов контейнеров Docker на
/storage:
bash sudo find /storage/docker/containers -name "*-json.log" -exec truncate -s 0 {} \; - Результат: освобождено ~32 ГБ (с 0 до ~7 ГБ по
df, фактически занято уменьшилось с ~567 ГБ до ~535 ГБ).
2.2 Исправление мониторинга и аварийной очистки
Проблема: При запуске из systemd (таймер) скрипт cleanup-lxd-snapshots.sh выполнялся от root; контейнеры LXD созданы пользователем cdto, поэтому в логе появлялось «Контейнер … не найден».
Исправления:
-
disk-space-monitor.sh (в трёх местах: preventive, aggressive, emergency cleanup для /storage): вызов очистки снимков LXD заменён на запуск от пользователя cdto:
bash LXD_USER="${LXD_USER:-cdto}" LXD_HOME=$(getent passwd "$LXD_USER" 2>/dev/null | cut -d: -f6) [ -z "$LXD_HOME" ] && LXD_HOME="/home/$LXD_USER" sudo -u "$LXD_USER" env HOME="$LXD_HOME" USER="$LXD_USER" /home/cdto/DENKART/scripts/cleanup-lxd-snapshots.sh ... -
disk-space-emergency-cleanup.sh (функция
cleanup_storage): - В начале добавлено обнуление логов контейнеров Docker на
/storage(чтобы при 100% диска быстро освободить место и дать LXD возможность работать). -
Вызов
cleanup-lxd-snapshots.shпереведён на выполнение от пользователяcdto(аналогично монитору). -
Обновлённые скрипты установлены в систему:
sudo cp .../disk-space-monitor.sh /usr/local/bin/и то же дляdisk-space-emergency-cleanup.sh.
2.3 Документация
- STORAGE-BRING-TO-NORMAL.md: добавлен п. 1.2a «Если диск 100% (0 байт свободно)» — первая помощь: обнуление логов Docker, затем очистка снимков LXD.
- Уточнено, что мониторинг вызывает очистку снимков от пользователя cdto.
3. Текущее состояние
- / — в норме (96 ГБ свободно).
- /storage — свободно ~7 ГБ (целевые 80 ГБ не достигнуты). Очистка снимков LXD от пользователя cdto была запущена; при большом числе снимков выполнение может быть длительным.
- /D — в норме (296 ГБ свободно).
- disk-space-monitor.timer — active, enabled; следующий запуск использует обновлённый скрипт с вызовом очистки LXD от cdto.
4. Рекомендации для выхода на 80 ГБ на /storage
- Дождаться следующего срабатывания таймера монитора (каждые 5 мин) или вручную запустить:
bash sudo -u cdto env HOME=/home/cdto USER=cdto /home/cdto/DENKART/scripts/cleanup-lxd-snapshots.sh - Проверять прогресс:
df -h /storage,tail -50 /tmp/cleanup-lxd-snapshots.log(или/var/log/cleanup-lxd-snapshots.logпри запуске от root с записью в /var/log). - При необходимости временно снизить лимиты снимков в
cleanup-lxd-snapshots.sh(например, некритичные до 5), выполнить очистку, затем вернуть лимиты. - Еженедельно:
df -h /storage, при свободном < 100 ГБ — плановая очистка по STORAGE-BRING-TO-NORMAL.md.
Документ подготовлен: AI Denkart, технический директор.