Резервное копирование и восстановление#
Резервное копирование – это процесс создания резервной копии, то есть данных, которые необходимы для восстановления платформы Astra Automation.
Резервная копия представляет собой единый файл архива /var/backups/astra-automation/astra-automation-backup-<date>.tar.gz, где <date> – дата и время создания резервной копии.
Архив содержит следующие данные:
информация о настройках системы;
ключи шифрования паролей и секретов базы данных;
каталог с локальными копиями проектов;
резервная копия базы данных;
сертификаты.
Структура архива резервной копии#
В разархивированном виде структура каталогов резервной копии платформы может выглядеть следующим образом:
Архив включает следующие файлы:
<node>.tar.gz– архив с настройками и данными Automation Controller.Здесь
<node>– название узла из группы инвентаряautomationcontroller.astra_automation.version– файл с информацией о версии Astra Automation, в которой была создана резервная копия.automationedacontroller.tar.gz– архив с настройками и данными Event-Driven Automation. Криптографический ключ контроллера Event-Driven Automation (файлSECRET_KEY) хранится внутри данного архива.automationgateway.tar.gz– архив с настройками и данными шлюза.automationhub.tar.gz– архив с настройками и данными Private Automation Hub. Симметричный ключ шифрования полей базы данных Private Automation Hub (database_fields.symmetric.key) хранится внутри данного архива.common.tar.gz– архив с криптографическим ключом Automation Controller.postgres.tar.gz– резервная копия базы данных Automation Controller.
Ниже приведено описание содержимого каталогов компонентов, входящих в резервную копию платформы Astra Automation.
Automation Controller#
В резервной копии для каждого узла Automation Controller создается отдельный каталог, содержащий его настройки и локальные данные.
Пример структуры каталога узла Automation Controller:
Здесь:
conf– каталог с настройками конкретного узла Automation Controller:conf.d– каталог с дополнительными модулями настройки, автоматически загружаемыми при запуске контроллера:aa_setup_custom_variables.py– пользовательские параметры, заданные при установке и настройке платформы;container_groups.py– настройки контейнерных групп;execution_environments.py– описание EE, доступных для выполнения заданий;gateway.py– параметры взаимодействия со шлюзом;ha.py– настройки HA;subscription_usage_model.py– параметры учета использования подписки.
settings.py– основной файл настроек Automation Controller.tower.cert– сертификат TLS Automation Controller.tower.key– закрытый ключ сертификата TLS.uwsgi.ini– настройки сервиса uWSGI.
projects– каталог с проектами автоматизации.
Event-Driven Automation#
Данные Event-Driven Automation сохраняются в одном каталоге, независимо от количества узлов компонента в кластере.
Пример структуры:
Здесь:
automationedacontroller.db– локальная база данных Event-Driven Automation, содержащая настройки и служебные данные компонента.conf– каталог с файловой конфигурацией Event-Driven Automation:SECRET_KEY– файл с криптографическим ключом, используемым компонентом для подписи данных и защиты секретов.settings– служебный файл, в который при резервном копировании сохраняется значение криптографического ключа Event-Driven Automation.
Gateway#
Данные шлюза сохраняются в одном каталоге для всех узлов компонента.
Пример структуры:
Здесь:
automationgateway.db– локальная база данных шлюза, содержащая конфигурационные и служебные данные.conf– каталог с настройками шлюза:SECRET_KEY– криптографический ключ, используемый шлюзом для защиты данных и аутентификации.
Private Automation Hub#
Private Automation Hub сохраняет собственные данные и артефакты в отдельном каталоге резервной копии.
Пример структуры:
Здесь:
automationhub.db– локальная база данных Private Automation Hub, содержащая метаданные репозиториев и коллекций.database_fields.symmetric.key– симметричный ключ, используемый для шифрования данных в базе Private Automation Hub.var_lib_pulp– каталог с данными сервиса Pulp:media/artifact– хранилище артефактов и файлов коллекций Ansible.
Общие сведения#
В каталоге common хранятся криптографические данные платформы, используемые Automation Controller.
Пример структуры:
Здесь:
SECRET_KEY– основной криптографический ключ Automation Controller, используемый для подписи сессий, шифрования секретов и других важных операций;version– служебный файл с информацией о версии платформы.
База данных#
Каталог postgres содержит резервную копию базы данных Automation Controller и вспомогательные сценарии SQL, используемые при восстановлении.
Пример структуры:
Здесь:
aa-controller.db– резервная копия базы данных Automation Controller;instance_group_map.sql– сценарий SQL, сохраняющий во временные таблицы сопоставление групп исполняющих узлов на момент резервного копирования (используется при восстановлении для повторной привязки групп);instance_group_map_cleanup.sql– сценарий SQL, удаляющий эти временные таблицы сопоставления.
Требования к узлу#
Рекомендуется выполнять резервное копирование и восстановление на установочном узле или на узле, удовлетворяющем следующим требованиям:
установленный пакет
astra-automation-setup;корректно заполненный файл
/opt/rbta/aa/astra-automation-setup/inventory.
Утилита назначает владельцем создаваемого файла пользователя, указанного в переменной ansible_user раздела [all:vars] инвентаря.
Если эта переменная отсутствует, владельцем файла будет пользователь, от имени которого выполняется подключение к узлам (результат команды whoami без повышения привилегий).
Пример настройки:
[all:vars]
ansible_user='astra'
Предупреждение
Восстанавливать кластер необходимо в той же конфигурации, которая была на момент создания резервной копии.
При установке с помощью коллекции эти требования соблюдаются на узле с примененной ролью astra.aa_controller.aac.
Требования к дисковому пространству#
Во время резервного копирования на диске временно размещаются несжатые дампы баз данных и промежуточные архивы, суммарный объем которых для рабочих сред (production) с большой историей заданий или крупной библиотекой контента может достигать десятков и даже сотен гигабайт. Если свободного места недостаточно, резервное копирование прерывается с ошибкой, а частично созданные файлы остаются на диске.
Предупреждение
Перед резервным копированием рабочей среды необходимо убедиться, что в каталоге /var/backups/astra-automation/ имеется достаточный запас свободного места на установочном узле и на всех узлах, участвующих в резервном копировании.
Для рабочих сред рекомендуется резервировать не менее 100 ГБ; при большом объеме базы данных Automation Controller объем оценивается по формуле оценки объема базы данных, а при крупной библиотеке контента дополнительно учитывается объем артефактов коллекций Private Automation Hub.
Резервное копирование выполняется распределенно, а не централизованно на одном узле.
Дампы баз данных Automation Controller, Private Automation Hub и шлюза создаются на первом узле соответствующей группы инвентаря (automationcontroller[0], automationhub[0], automationgateway[0]), а дамп базы данных Event-Driven Automation – на каждом узле группы automationedacontroller.
Промежуточные файлы (staging) сохраняются в каталоге backup_dir (по умолчанию /var/backups/astra-automation/) на каждом из этих узлов, а итоговый архив собирается в каталоге backup_dest на установочном узле, с которого запущена команда sudo ./aa-setup -b.
Пиковая нагрузка на диск приходится на следующие узлы:
Узел |
Что размещается |
Основной источник объема |
|---|---|---|
Каждый управляющий узел ( |
Копии файлов проектов ( |
Файлы проектов (100–2000 МБ на проект) |
Первый управляющий узел ( |
Дамп базы данных Automation Controller и его сжатая копия |
История заданий (таблицы |
Первый узел Private Automation Hub ( |
Дамп базы данных Private Automation Hub и копия артефактов коллекций |
Артефакты коллекций Ansible |
Каждый узел Event-Driven Automation ( |
Дамп базы данных Event-Driven Automation |
Служебные данные Event-Driven Automation |
Первый узел шлюза ( |
Дамп базы данных шлюза |
Служебные данные шлюза |
Установочный узел ( |
Копии всех промежуточных архивов компонентов и итоговый архив |
Суммарный объем архивов всех компонентов (промежуточные копии и итоговый архив временно сосуществуют) |
Примечание
По умолчанию каталог backup_dest совпадает с каталогом backup_dir (/var/backups/astra-automation/).
Поэтому, если установочный узел одновременно является узлом компонента (чаще всего первым управляющим узлом) или используется совмещенная топология (single-node, all-in-one), промежуточные файлы, копии архивов и итоговый архив размещаются на одном диске – в этом случае требования соответствующих строк таблицы необходимо суммировать, а не рассматривать по отдельности.
Примечание
Дамп базы данных Automation Controller создается на первом управляющем узле независимо от того, где размещена сама база данных: даже если база данных вынесена на внешнюю СУБД, файл дампа сохраняется на диск первого управляющего узла, а не на узел СУБД. Это необходимо учитывать при планировании дискового пространства в топологиях с вынесенной базой данных.
Объем резервной копии определяют два основных источника.
Первый – база данных Automation Controller, размер которой зависит от количества запусков шаблонов заданий, срока хранения истории и уровня детализации журналов (verbosity).
Второй – артефакты коллекций Private Automation Hub (каталог /var/lib/pulp/media), которые копируются в резервную копию узла automationhub[0]; в средах с крупной библиотекой контента их объем может превышать размер базы данных Automation Controller и определять итоговый размер резервной копии.
Поскольку по умолчанию промежуточный дамп базы данных не сжимается, в момент сборки архива на узле одновременно находятся и несжатый дамп, и его сжатая копия, поэтому под них необходимо резервировать больше места, чем размер одного дампа.
Для снижения риска сбоев резервного копирования рекомендуется:
выделять под каталог
/var/backups/astra-automation/отдельный том (volume) и монтировать его на установочном узле и на всех узлах, участвующих в резервном копировании;на первом управляющем узле резервировать свободное место из расчета не менее чем в три раза больше ожидаемого размера базы данных Automation Controller, но не менее 100 ГБ для рабочих сред;
на узле
automationhub[0]дополнительно резервировать место с учетом объема артефактов коллекций в каталоге/var/lib/pulp/media;на каждом узле Event-Driven Automation (
automationedacontroller) резервировать место под дамп базы данных Event-Driven Automation, который создается на всех узлах этой группы;на установочном узле резервировать не менее чем удвоенный суммарный объем архивов всех компонентов, так как промежуточные копии и итоговый архив временно сосуществуют;
регулярно удалять устаревшие архивы из каталога резервных копий, оставляя только актуальные копии; символическая ссылка
astra-automation-backup-latest.tar.gzвсегда указывает на самую новую копию;контролировать объем свободного места перед запуском резервного копирования штатными средствами мониторинга.
Если резервное копирование завершается ошибкой нехватки места (No space left on device), освободите место в каталоге /var/backups/astra-automation/ или смонтируйте под него отдельный том, после чего повторно выполните команду sudo ./aa-setup -b.
Резервное копирование#
Для выполнения резервного копирования выполните следующие действия:
Убедитесь, что в файле
inventoryв разделе[all:vars]значением параметраansible_userявляется название учетной записи пользователя ОС установочного узла, например:[all:vars] ansible_user='astra'
Перейдите в каталог
/opt/rbta/aa/astra-automation-setup/.Выполните команду:
sudo ./aa-setup -b
По умолчанию резервная копия сохраняется в каталог /var/backups/astra-automation/.
Чтобы сохранить резервную копию в другой каталог, укажите полный путь к нему в качестве позиционного аргумента после аргумента -b, например:
sudo ./aa-setup -b /opt/backups/
В каталоге для хранения резервных копий также создается символическая ссылка astra-automation-backup-latest.tar.gz, которая всегда указывает на самую новую резервную копию в каталоге.
Восстановление из резервной копии#
Для восстановления Astra Automation из резервной копии выполните следующие действия:
Скопируйте архив с резервной копией в каталог
/var/backups/astra-automation/.Перейдите в каталог
/opt/rbta/aa/astra-automation-setup/и запустите утилитуaa-setupс аргументом-r:sudo ./aa-setup -r
По умолчанию утилита
aa-setupвосстанавливает резервную копию из файла/var/backups/astra-automation/astra-automation-backup-latest.tar.gz– символической ссылки, которую резервное копирование создает на самую новую копию. Если символическая ссылка отсутствует (например, архив скопирован в каталог вручную) или для восстановления необходимо использовать другой архив, укажите полный путь к архиву в качестве позиционного аргумента после аргумента-r, например:sudo ./aa-setup -r /var/backups/astra-automation/astra-automation-backup-16-06-2024-155236.tar.gz
Если резервная копия была создана в версии платформы, отличающейся от той, в которой она восстанавливается, утилиту
aa-setupнеобходимо запустить еще раз:sudo ./aa-setupЭто обусловлено несоответствием структуры таблиц базы данных в разных версиях платформы.
Для проверки корректности восстановления выполните вход в веб-интерфейс Astra Automation от имени администратора и проверьте содержимое разделов.