Резервное копирование и восстановление¶
Резервное копирование¶
В KeyStack реализовано резервное копирование данных LCM-узла и баз данных для регионов OpenStack. Резервные копии баз данных регионов шифруются алгоритмом AES-256 с использованием PBKDF2 для усиления безопасности ключа.
Для корректной работы резервного копирования должен быть настроен соответствующий пользователь kolla. Настройка пользователя производится при установке LCM. Если настройка не была произведена, перед началом копирования зайдите на LCM-узел на SSH, а затем выполните только шаги по настройке пользователя kolla из раздела Базовая установка LCM.
Резервное копирование LCM-узла¶
Перед выполнением резервного копирования необходимо убедиться, что в настройках репозитория ci разрешено использование токенов задач CI/CD для services / backup, в противном случае задача резервного копирования будет завершаться с ошибкой. Для этого:
Войдите в GitLab и перейдите в репозиторий project_k / ci.
В репозитории перейдите в раздел .
В разделе CI/CD перейдите в Job token permissions и убедитесь, что в списке CI/CD job token allowlist присутствует репозиторий project_k / services / backup или группа project_k.
Проверка прав для репозитория backup¶
Если репозитория в списке нет, добавьте его. Для этого нажмите на кнопку Add, выберите Group or project, а затем введите имя нужного репозитория (
project_k/services/backup) и выполните действие Add.
Добавление прав для репозитория backup¶
Для выполнения резервного копирования LCM-узла выполните следующие действия:
Войдите в GitLab и перейдите в репозиторий project_k / services / backup.
Создайте и запустите новый пайплайн: .
Дождитесь выполнения пайплайна.
Также вы можете настроить регулярное выполнение резервного копирования с помощью функции Pipeline Schedules. Для настройки выполните следующие действия:
В репозитории project_k / services / backup перейдите в раздел и создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите название расписания, например, «Backup».
Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите необходимую периодичность выполнения задачи резервного копирования, например,
Every week. Также вы можете задать свой интервал запуска расписания, выбрав вариантCustomи введя нужное cron-выражение. К примеру, выражение0 5 * * 6соответствует тому, что задача резервного копирования будет запускаться каждую субботу в 05:00.Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Создание расписания резервного копирования LCM-узла¶
В результате выполнения задачи резервного копирования по заданному расписанию в директорию /installer/backup/ будут сохраняться архивы с именем в формате backupLCM-31-08-2025-1661925161.tar.gz.
Кроме того, выполнить резервное копирование LCM можно, запустив сам скрипт backupLCM.sh в директории с инсталлятором.
На текущий момент резервные копии LCM-узла хранятся неограниченное количество времени.
Резервное копирование базы данных OpenStack¶
Данные региона OpenStack хранятся в базе данных MariaDB. На текущий момент при резервном копировании MariaDB осуществляется только полное копирование базы данных, инкрементальные бэкапы не поддерживаются.
Поддерживается 3 опции хранения бэкапов:
На LCM-узле по пути
{{ INSTALL_HOME }}/backup/{{ OPENSTACK_ENV }}-{{ item }}. Для данной опции в конфигурационном файле регионаglobals.d/REGION.ymlдолжны быть указаны следующие параметры:LCM_IP: <$LCM_IP>
Во внешнем S3. Для данной опции в конфигурационном файле региона
globals.d/REGION.ymlдолжны быть указаны следующие параметры:s3_host: <адрес сервиса S3> s3_backet: <имя хранилища, в котором будут храниться бэкапы> s3_access_key: <Access Key ID> s3_secret_key: <Secret Access Key> s3_region: <регион S3>
В Nexus. Для данной опции в конфигурационном файле региона
globals.d/REGION.ymlдолжны быть указаны следующие параметры:KEYSTACK_NEXUS_BACKUP: <адрес сервиса Nexus, на котором будут храниться бэкапы, например, http://nexus:8081/repository/k-backup/> NEXUS_USER: <имя пользователя Nexus> NEXUS_PASSWORD: <пароль пользователя Nexus>
На текущий момент резервные копии хранятся неограниченное количество времени.
При сценарии хранения резервных копий на S3 ротацию файлов возможно настроить на стороне хранилища S3.
Также статус бэкапов БД отображается на Портале администратора в разделе DB Backups, расположенном на вкладке . Для просмотра доступны данные за последние 7 дней.
Для выполнения резервного копирования базы данных MariaDB выполните следующие действия:
Войдите в GitLab и перейдите в репозиторий региона project_k / deployments / <имя региона>.
Создайте и запустите новый пайплайн: .
Вручную запустите задачу backup-db на этапе deploy.
Дождитесь выполнения пайплайна.
Также вы можете настроить регулярное выполнение резервного копирования БД с помощью функции Pipeline Schedules. Для настройки выполните следующие действия:
В репозитории project_k / deployments / <имя региона> перейдите в раздел и создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите название расписания, например, «DB daily backup».
Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите необходимую периодичность выполнения задачи резервного копирования, например,
Every day. Также вы можете задать свой интервал запуска расписания, выбрав вариантCustomи введя нужное cron-выражение. К примеру, выражение0 2 * * *соответствует тому, что задача резервного копирования будет запускаться каждый день в 02:00.В поле Variables добавьте переменную
BACKUPсо значениемtrue.Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Создание расписания резервного копирования MariaDB¶
Восстановление из резервной копии¶
Восстановление LCM-узла из резервной копии¶
Восстановление осуществляется путём запуска скрипта restoreLCM.sh, находящегося в директории инсталлятора.
Для запуска скрипта восстановления LCM необходимо разместить резервную копию LCM-узла с именем файла в формате backupLCM-31-08-2025-1661925161.tar.gz в ту же директорию, после чего запустить скрипт.
После восстановления LCM из резервной копии, задание на создание резервной копии запускается автоматически, вне зависимости от времени старта «по расписанию».
Восстановление базы данных OpenStack из резервной копии¶
За помощью в восстановлении базы данных регионов OpenStack следует обратиться к вендору.