Вопрос или проблема
У меня в yaml файле для моего кластера CNPG установлена политика хранения данных на 7 дней. Согласно документации CNPG:
Резервные копии работают хорошо, архивирование WAL работает, репликация на мой внешний кластер работает, и у меня есть ScheduledBackup, который выполняется каждую ночь, чтобы создать и сохранить новый pg_basebackup в корзине. Но старые резервные копии и файлы WAL не удаляются из подов или из корзины после 7 дней.
Где я могу посмотреть, чтобы решить эту проблему? Документация Cloud Native PG о политике хранения начинается и заканчивается этой ссылкой. Я пытался зайти в свой под и запустить barman cron, но получаю следующее сообщение:
Не удалось найти файл конфигурации в стандартных местах.
Обратитесь к документации Barman для получения дополнительной информации.
Я посмотрел в поде и не вижу файла barman.conf нигде, но вижу много файлов barman (например, соответствующий barman-cloud-backup-delete) в директории user/local/bin. Поскольку CNPG должен этим заниматься, я сомневаюсь, что мне нужно вручную создавать файл barman.conf.
Моя конфигурация:
barmanObjectStore:
destinationPath: "gs://mybucket/backup"
googleCredentials:
applicationCredentials:
name: cnpg-backup-storage
key: gcsCredentials
wal:
compression: gzip
encryption: AES256
retentionPolicy: "7d"
Ответ или решение
Проблема, с которой вы столкнулись, касается политики хранения резервных копий в CloudNativePG (CNPG) и ее реализации через Barman. Несмотря на установленную политику хранения на 7 дней, старые резервные копии и WAL-файлы не удаляются из кластеров или из вашего облачного хранилища. Давайте разберем подробнее возможные причины этой проблемы и пути её решения.
1. Проверка конфигурации Barman
Судя по вашему описанию, вы не можете найти конфигурационный файл barman.conf
в контейнерах. Это может указывать на то, что Barman не настроен должным образом, и CNPG, вероятно, не может выполнять очистку старых резервных копий. Вам стоит убедиться, что правильные настройки Barman применяются в вашем окружении.
- Конфигурация Barman: Даже если CNPG должен управлять этой конфигурацией, вам нужно убедиться, что базовая настройка Barman присутствует. Стандартные пути поиска файла конфигурации могут не совпадать с вашими настройками. Чтобы проверить это, можно выполнить следующие шаги:
- Подключитесь к вашему Pod и выполните команду
barman show-server <имя_вашего_сервера>
для проверки статуса сервера и его конфигурации, если файлbarman.conf
не найден.
- Подключитесь к вашему Pod и выполните команду
2. Запуск Barman cron
Попытка запуска barman cron
может выдавать сообщения об ошибках по той причине, что ваша установка не знает, где находится конфигурация. Вам стоит проверить, как CNPG настраивает и запускает Barman.
- Автоматизация через cron: Убедитесь, что автоматизация через cron правильно настроена. Вы можете настроить сам cron для запуска скриптов удаления резервных копий. Если CNPG не предоставляет необходимую конфигурацию, возможно, вам придется самостоятельно настроить cron для периодического запуска команды
barman delete
.
3. Проверка документации и сообщества
Так как CNPG предоставляет ограниченное количество информации по вашей проблеме в документации, возможно, стоит обратиться к сообществу или рассмотреть официальные каналы поддержки:
- Форумы и GitHub: Проверьте GitHub репозитории CNPG и создайте вопрос или запрос на обсуждение, если таких нет. Возможно, кто-то уже сталкивался с аналогичной проблемой.
4. Проверка логов
Посмотрите лог-файлы вашего CNPG и Barman на наличие сообщений об ошибках или предупреждений, связанных с удалением резервных копий. Логи могут содержать полезную информацию для диагностики проблемы.
5. Альтернативные подходы
Если ни один из вышеперечисленных вариантов не сработает, возможно, стоит рассмотреть настройку механизма управления резервными копиями с помощью другой утилиты или вручную реализовать скрипт, который будет регулярно проверять и удалять старые резервные копии.
Заключение
Решение вашей проблемы с удалением резервных копий и WAL-файлов в CNPG требует внимательной проверки конфигурации и инструментов, используемых в вашем кластере. Важно удостовериться, что Barman настроен правильно и что автоматизация поддержки работает как надо. Обращение к сообществу и анализ логов помогут более точно определить причину проблемы.
Следуя указанным шагам, вы сможете решить проблему с политикой хранения резервных копий в вашем CNPG-кластере.