Очистка
Очистка удаляет ресурсы, на которые больше не ссылается ни один файл конфигурации. Есть две команды очистки, нацеленные на разные типы ресурсов:
rdc storage prune— удаляет осиротевшие файлы резервных копий из облачного/внешнего хранилищаrdc machine prune— очищает артефакты хранилища данных и (опционально) осиротевшие образы репозиториев на машине
Storage Prune
Сканирует провайдера хранилища и удаляет резервные копии, GUID которых больше не присутствуют ни в одном файле конфигурации.
# Dry-run (default) — shows what would be deleted
rdc storage prune my-s3 -m server-1
# Actually delete orphaned backups
rdc storage prune my-s3 -m server-1
# Override grace period (default 7 days)
rdc storage prune my-s3 -m server-1 --grace-days 14
Что проверяется
- Перечисляет все GUID резервных копий в указанном хранилище.
- Сканирует все файлы конфигурации на диске (
~/.config/rediacc/*.json). - Резервная копия считается осиротевшей, если её GUID не упоминается в разделе репозиториев ни одной конфигурации.
- Недавно архивированные репозитории в пределах льготного периода защищены, даже если они удалены из активной конфигурации.
Machine Prune
Очищает ресурсы на машине в два этапа.
Этап 1: Очистка хранилища данных (выполняется всегда)
Удаляет пустые каталоги монтирования, устаревшие файлы блокировки и устаревшие снимки BTRFS.
# Dry-run
rdc machine prune server-1 --dry-run
# Execute cleanup
rdc machine prune server-1
Этап 2: Осиротевшие образы репозиториев (по запросу)
С флагом --orphaned-repos CLI также определяет образы репозиториев LUKS на машине, которые не присутствуют ни в одном файле конфигурации, и удаляет их.
# Dry-run (default behavior when is set)
rdc machine prune server-1
# Actually delete orphaned repos
rdc machine prune server-1
# Custom grace period
rdc machine prune server-1 --grace-days 30
Модель безопасности
Очистка спроектирована так, чтобы быть безопасной по умолчанию в мультиконфигурационных установках.
Учёт нескольких конфигураций
Обе команды очистки сканируют все файлы конфигурации в ~/.config/rediacc/, а не только активный. Репозиторий, на который ссылается production.json, не будет удалён, даже если он отсутствует в staging.json. Это предотвращает случайное удаление, когда конфигурации предназначены для разных сред.
Льготный период
Когда репозиторий удаляется из конфигурации, он может быть заархивирован с временной меткой. Команды очистки соблюдают льготный период (по умолчанию 7 дней), в течение которого недавно архивированные репозитории защищены от удаления. Это даёт вам время восстановить репозиторий, если он был удалён случайно.
Dry-run по умолчанию
storage prune и machine prune по умолчанию работают в режиме dry-run. Они показывают, что будет удалено, не внося изменений. Передайте --no-dry-run или --force для выполнения фактического удаления.
Конфигурация
pruneGraceDays
Установите пользовательский льготный период по умолчанию в файле конфигурации, чтобы не передавать --grace-days каждый раз:
# Set grace period to 14 days in the active config
rdc config set pruneGraceDays 14
Флаг CLI --grace-days переопределяет это значение при указании.
Приоритет
- Флаг
--grace-days <N>(наивысший приоритет) pruneGraceDaysв файле конфигурации- Встроенное значение по умолчанию: 7 дней
Лучшие практики
- Сначала запустите dry-run. Всегда просматривайте результаты перед выполнением деструктивной очистки, особенно на продуктивном хранилище.
- Поддерживайте несколько конфигураций в актуальном состоянии. Очистка проверяет все конфигурации в каталоге конфигурации. Если файл конфигурации устарел или удалён, его репозитории теряют защиту. Поддерживайте файлы конфигурации в актуальном состоянии.
- Используйте щедрые льготные периоды для продуктивной среды. Льготный период по умолчанию 7 дней подходит для большинства рабочих процессов. Для продуктивных сред с редкими окнами обслуживания рассмотрите 14 или 30 дней.
- Планируйте storage prune после выполнения резервного копирования. Сочетайте
storage pruneс расписанием резервного копирования, чтобы контролировать затраты на хранение без ручного вмешательства. - Сочетайте machine prune с deploy-backup. После развёртывания расписаний резервного копирования (
rdc machine deploy-backup) добавьте периодическую очистку машины для удаления устаревших снимков и осиротевших артефактов хранилища данных. - Проверьте перед использованием
--force. Флаг--forceобходит льготный период. Используйте его только когда вы уверены, что ни одна другая конфигурация не ссылается на рассматриваемые репозитории.