Резервное копирование и восстановление
Управление резервными копиями
В качестве модуля резервного копирования и восстановления в РОСА Кубис используется доработанный модуль velero. Для создания бэкапа (не snapshot) в клиентском кластере нужно перейти в клиентский кластер в раздел "Резервное копирование и восстановление".
Чтобы создать резервную копию, необходимо:
- подключить S3-хранилище;
- создать конфигурацию резервной копии или планировщик.
Важно ‒ Резервная копия (бэкап) ‒ это не snapshot. В бэкап попадают только те ресурсы, которые в нем запрошены. При восстановлении вы получите не всю систему в состоянии на момент бэкапа, а только состояние тех ресурсов, которые были в бэкапе.
Следует обратить внимание, что, если при восстановлении резервной копии будут такие PV, которые используются в запущенных нагрузках (Deployment, StatefulSet, Pod), то такие PV не будут восстановлены, т.к. это может прервать работу приложений.
Управление хранилищами
Чтобы подключить хранилище, нужно перейти на страницу "Хранилища" (рисунок 235), нажать Добавить хранилище.

Рисунок 235 ‒ Хранилища
На странице добавления хранилища есть два режима: базовый и расширенный. В базовом режиме пользователь может заполнить данные (рисунок 236):

Рисунок 236 ‒ Базовый режим
Имя хранилища‒ (обязательное поле) после сохранения конфигурации поле будет недоступно для редактирования;Bucket‒ (обязательное поле) сегмент хранилища, куда загружаются резервные копии;Директория‒ (необязательное поле) индекс бакета (папка) для хранения резервных копий;Имя пользователя‒ (обязательное поле) имя пользователя/логин для подключения к S3-хранилищу; после сохранения конфигурации поле будет недоступно для редактирования;Пароль‒ (обязательное поле) пароль для подключения к S3-хранилищу; после сохранения конфигурации поле будет недоступно для редактирования;Регион(обязательное поле);Адрес S3‒ (обязательное поле) допустимы варианты указания адреса с помощью FQDN/VIP по HTTP/HTTPS; при необходимости можно указать порты, например, http://example.com:9000 или https://11.11.111.11;Проверить ли сертификат безопасности?‒ пропускать ли проверку сертификата;Файл сертификата.
Если подключение S3-хранилища выполняется без TLS, следует пропустить загрузку сертификата.
В расширенном режиме добавляются поля (рисунок 237):

Рисунок 237 ‒ Расширенный режим
S3ForcePathStyle‒ всегда ли при запросах к хранилищу S3 используется адресация в стиле path (по умолчанию выбрано ‒да);Провайдер‒ нативно velero поддерживает AWS-провайдер; валидность работы с другими провайдерами не гарантируется;Периодичность синхронизации(backupSyncPeriod) ‒ в часах, минутах и секундах.
Следует обратить внимание, что запрос на удаление резервных копий из хранилища на стороне Комплекса является асинхронным. Запрос на удаление может завершиться неуспешно.
Кроме того, если в хранилище были/есть резервные копии на момент подключения, они могут быть отражены в интерфейсе.
Для просмотра ранее подключенного хранилища нужно нажать на названия в списке хранилищ. На вкладке "Хранилище" (рисунок 238) можно просмотреть статус и данные подключенного хранилища. Редактирование параметров подключенного хранилища временно доступно только через интерфейс манифеста.

Рисунок 238 ‒ Статус и данные подключенного хранилища на вкладке "Хранилище"
При необходимости можно изменить выбор "Пропускать ли проверку сертификата", загрузить файл сертификата, изменить периодичность синхронизации. После завершения редактирования требуется нажать кнопку Сохранить.
Также изменить данные возможно с помощью манифеста объекта, для этого перейти на вкладку "Манифест" (рисунок 239).

Рисунок 239 ‒ Вкладка "Манифест"
После внесения изменений в манифест нужно выполнить проверку. Результат проверки будет доступен в правой части экрана. Можно раскрыть блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста хранилища не пройдена, недоступна и проверка манифеста.
Резервные копии
После добавления хранилища можно создавать резервные копии. Для этого нужно перейти на страницу "Резервные копии". Для добавления запроса на создание резервной копии следует нажать Добавить резервную копию.
Следует обратить внимание:
- Это конфигурация разовой резервной копии. После создания поля будут недоступны для изменения. Для создания конфигурации планировщика создания резервных копий нужно перейти на страницу "Планировщики".
- Неймспейс velero автоматически будет исключен из резервной копии, т.к. восстановление неймспейса velero приводит к ошибке.
- В случае резервного копирования кластера с полным набором данных требуется отключить использование резервной копии файловой системы тома пода для всех томов (defaultVolumesToFsBackup). Это позволит избежать возникновения ошибок при восстановлении из резервной копии.
Создание резервной копии
На открывшейся странице будут доступны поля для конфигурации (рисунок 240):

Рисунок 240 ‒ Создание резервной копии кластера
Имя резервной копии‒ (обязательное поле) должно содержать только маленькие латинские буквы и цифры и начинаться с буквы;Время хранения резервной копии(TTL);Имя хранилища‒ (обязательное поле) доступны для выбора ранее созданные S3-хранилища;defaultVolumesToFsBackup‒ использовать ли резервную копию файловой системы тома модуля для всех томов по умолчанию (по умолчанию ‒да(true));Лейблы резервной копии;Селектор объектов‒ используется селектор типа "И", т.е. в резервную копию будут добавлены выбранные объекты кластеров, неймспейсов и объекты, имеющие выбранные лейблы/лейблы, соответствующие выбранным выражениям (рисунок 241).

Рисунок 241 ‒ Селектор объектов
В блоках выбора неймспейсов, неймспейсных и не неймспейсных ресурсов доступно два способа выбора объектов (рисунок 242):
- Только выбранные (включающий);
- Кроме выбранных (исключающий).

Рисунок 242 ‒ Выбор объектов
В блоках представлены полные списки ресурсов, входящих в скоуп, а также доступных неймспейсов. Следует определить, какие ресурсы и неймспейсы должны войти в резервную копию.
Примечание ‒ У модуля резервного копирования есть понимание зависимых объектов. Например, PVC и PV: если в неймспейсных ресурсах выбран PVC, то в резервную копию автоматически попадут PV.
На странице созданной резервной копии доступны вкладки:
- "Резервная копия" ‒ на вкладке отображается статус выполнения резервной копии, ее конфигурация (рисунок 243);

Рисунок 243 ‒ Вкладка "Резервная копия"
- "Манифест" ‒ на вкладке доступен для просмотра YAML-манифест резервной копии (рисунок 244).

Рисунок 244 ‒ Вкладка "Манифест"
Удаление резервных копий
При создании резервной копии, в составе которой есть PV, на стороне S3 создается директория с файлами резервной копии, а также запись в каталоге kopia. Каталог kopia содержит только репозитории. Репозитории привязаны к неймспейсам, в которых расположены бэкапируемые PV, а не к конкретным резервным копиям. На каждый неймспейс с PV в составе резервной копии будут созданы кастомные ресурсы BackupRepository (рисунок 245) с префиксом, содержащим имя неймспейса. Кастомные ресурсы будут расположены в неймспейсе velero (рисунок 246).

Рисунок 245 ‒ Кастомные ресурсы BackupRepository

Рисунок 246 ‒ Неймспейс velero
Удаление резервных копий не влияет на репозитории. Таким образом можно видеть "следы" информации о резервных копиях в каталоге kopia.
Очистка репозиториев происходит во время автоматической процедуры maintenance. Maintenance бывает quick (быстрый) и full (полный).
С помощью "Модуля резервного копирования и восстановления" (velero) (п. Модуль резервного копирования и восстановления (velero)) можно управлять частотой запуска quick maintenance через кастомный ресурс BackupRepository (опция maintenanceFrequency, по умолчанию ‒ 1 час) (рисунок 247).

Рисунок 247 ‒ Кастомный ресурс BackupRepository (опция maintenanceFrequency, по умолчанию ‒ 1 час)
В статусе этого же ресурса можно посмотреть информацию по трем последним maintenance. Логи maintenance можно посмотреть в Jobs неймспейса velero (хранятся последние три Jobs).
Управлять full maintenance нельзя. Он запускается автоматически. Ожидаемый срок полного удаления ‒ неделя после удаления резервной копии.
Планировщики
Планировщик ‒ объект, запрашивающий создание резервных копий по расписанию. Для создания планировщика резервных копий нужно перейти на страницу "Планировщики" и нажать кнопку Добавить планировщик.(рисунок 248).
Следует обратить внимание, что неймспейс velero автоматически будет исключен из резервной копии, т.к. восстановление неймспейса velero приводит к ошибке.

Рисунок 248 ‒ Добавление планировщика резервной копии
На открывшейся странице доступно заполнение расписания для создания резервных копий в cron-формате, а также выбора конфигурации создаваемых резервных копий:
Имя планировщика‒ (обязательное поле);Расписание в cron-формате‒ (обязательное поле);Время хранения резервной копии(TTL);Имя хранилища‒ (обязательное поле) доступны для выбора ранее созданные S3-хранилища;defaultVolumesToFsBackup‒ использовать ли резервную копию файловой системы тома модуля для всех томов по умолчанию (по умолчанию ‒да(true));Лейблы резервной копии;Селектор объектов‒ используется селектор типа "И", т.е. в резервную копию будут добавлены выбранные объекты кластеров, неймспейсов и объекты, имеющие выбранные лейблы/лейблы, соответствующие выбранным выражениям.
В блоках выбора неймспейсов, неймспейсных и не неймспейсных ресурсов доступно два способа выбора объектов:
- Только выбранные (включающий);
- Кроме выбранных (исключающий).
В блоках представлены полные списки ресурсов, входящих в скоуп, а также доступных неймспейсов. Следует определить, какие ресурсы и неймспейсы должны войти в резервную копию.
В сохраненном планировщике можно изменять:
- Расписание;
- Лейблы;
- Селектор объектов;
- Выбор объектов для копирования.
- Лейблы.
Изменения будут применены к новым создаваемым резервным копиям.
Также изменить данные возможно с помощью манифеста объекта. Для этого нужно перейти на вкладку "Манифест" (рисунок 249).

Рисунок 249 ‒ Вкладка "Манифест" планировщика
После внесения изменений в манифест требуется выполнить проверку. Результат проверки будет доступен в правой части экрана. Можно раскрыть блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста планировщика не пройдена, проверка манифеста будет недоступна.
Восстановление из резервных копий
При необходимости восстановления из резервной копии следует перейти на страницу "Восстановленные копии", нажать кнопку Восстановить из резервной копии. Кнопка доступна только в случае, если в этом скоупе есть хотя бы одна созданная резервная копия (рисунок 250).

Рисунок 250 ‒ Восстановление из резервной копии
На открывшейся странице необходимо определить значения полей:
Имя резервной копии‒ из которой нужно делать восстановление (выпадающий список названий резервных копий этого скоупа);Политика обновления существующих ресурсов‒ "Пропустить" (по умолчанию) или "Обновить".
Запуск восстановления создает ресурс restore, который асинхронно восстанавливает запрошенные ресурсы. Процесс восстановления можно отслеживать в статусе ресурса.
После создания восстановленная копия не может быть отредактирована.
На странице созданной восстановленной копии доступны вкладки:
- "Восстановленная копия" ‒ на вкладке отображается статус восстановления резервной копии (рисунок 251);

Рисунок 251 ‒ Вкладка "Восстановленная копия"
- "Манифест" ‒ на вкладке доступен для просмотра YAML-манифест восстановленной резервной копии (рисунок 252).

Рисунок 252 ‒ Вкладка "Манифест"