Фиксация ухудшения ситуации: очистка /storage не освободила место (2026-02-15)

Дата: 2026-02-15
Суть: Скрипт очистки снимков LXD многократно запускался, но место на /storage не освободилось; зафиксировано ухудшение (свободно ~5,8 ГБ, цель ≥ 80 ГБ).


1. Что было сделано

Действие Результат
Обнуление логов Docker на /storage Выполнено. Место не изменилось (логи уже были пустыми или мелкими).
Запуск cleanup-lxd-snapshots.sh (несколько раз) Скрипт завершался с записью «Очистка снимков LXD завершена». По всем некритичным контейнерам выводил «0 снимков (в норме)».
Проверка lxc list BBB-CONT22-1 — 24 снимка, docs-denkart — 22, nginx-reverse-proxy — 22 (лишних 38 снимков по-прежнему).

Итог: Свободное место не выросло (~5,8 ГБ), цель 80 ГБ не достигнута. Ситуация зафиксирована как ухудшение относительно ожиданий (очистка не сработала).


2. Причина

Скрипт получал количество и список снимков через lxc snapshot list с разбором строк по шаблону ^[[:space:]]+[^[:space:]] (строки, начинающиеся с пробелов).

В актуальных версиях LXD вывод имеет табличный формат: строки данных начинаются с |, а не с пробелов. В результате grep не находил ни одной строки, скрипт считал снимков 0 и ничего не удалял.

Дополнительно: на переполненном диске lxc snapshot list может выполняться очень долго или по таймауту возвращать пустой вывод, что также давало 0 снимков.


3. Выполненные действия по приведению в норму

  1. Исправлен скрипт scripts/cleanup-lxd-snapshots.sh:
  2. Вместо lxc snapshot list используется lxc info <container> (быстрее и стабильнее на переполненном диске).
  3. Парсинг переведён на табличный формат (строки, начинающиеся с |, извлечение имени снимка из второй колонки).
  4. Функции get_snapshot_count и get_snapshots_oldest_first переписаны под вывод lxc info.

  5. Запуск исправленного скрипта для реального удаления лишних снимков (38 штук: BBB 14, docs-denkart 12, nginx-reverse-proxy 12).

  6. Запуск исправленного скрипта (18:11): удалено 38 снимков (docs-denkart 12, BBB-CONT22-1 14, nginx-reverse-proxy 12). Очистка завершена за ~67 с.

  7. Результат первой волны: Свободно на /storage выросло с ~5,8 ГБ до 34 ГБ.

  8. Продолжение очистки до нормы (≥ 80 ГБ): Выполнены дополнительные волны с временным снижением лимита снимков (NORMAL_MAX=5, 3, 2, 1). Удалено ещё 45 снимков. Итог: свободно 85 ГБ — норма по политике достигнута. Подробности: STORAGE-CLEANUP-PROGRESS-2026-02-15.md.


4. Связанные документы


Документ подготовлен: AI Denkart, технический директор.