Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Резервное копирование и восстановление

Longhorn — это распределенная блочная система хранения данных для оркестратора.

В этой инструкции описывается создание автоматических регулярных резервных копий в сервисе Longhorn и восстановление сервисов модуля zVirt DC Manager из резервной копии.

Longhorn совместим с хранилищами NFS, CIFS, Azure или серверами, совместимыми с S3.

Подробнее о работе с резервным копированием — в официальной документации Longhorn.

1. Создание резервной копии

В этой инструкции описывается создание автоматических регулярных резервных копий.

Создание резервных копий вручную можно настроить в интерфейсе Longhorn — подробнее об этом ниже. Однако этот способ не рекомендуется, так как настроенные вручную резервные копии могут быть перезаписаны автоматическими резервными копиями при обновлении модуля.

При установке модуля zVirt DC Manager резервное копирование сервисов можно настроить через переменные развертывания в файле config.yml. Также настройка резервного копирования возможна после установки.

Перед созданием резервной копии установите предварительные настройки в файле config.yml:

  • backup_target-- укажите сервер NFS для хранения резервных копий. Если значение не указано, то резервное копирование на удаленный сервер не выполняется. Общий вид NFS-ссылки: nfs://<server>[:<port>]/<path>

  • backup_recurring_job — настройка автоматического резервного копирования всех томов. Значение true — резервное копирование активировано, false — деактивировано

  • backup_cron — расписание, определяющее частоту создания резервных копий

  • backup_retain — количество последних резервных копий, которые нужно хранить. При переполнении хранилища самые последние резервные копии удаляются или перезаписываются

Пример настроек в config.yml:

backup_target: nfs://storage.portal.box:/path/to/folder

backup_recurring_job: true

backup_cron: "0 0 * * *"

backup_retain: 7

В инструкции описана настройка NFS-подключения без пароля. О создании дополнительных механизмов защиты данных — в официальной документации Longhorn.

Вручную можно создать резервную копию в интерфейсе Longhorn, однако имя Recurring Job не должно быть backup, так как это имя по умолчанию используется для автоматического создания резервных копий в файле config.yml.

  1. Авторизуйтесь в сервисе Longhorn.

  2. Перейдите на вкладку Recurring Job.

  3. Нажмите Create Recurring Job и укажите параметры нового задания:

    • Name — укажите название задачи

    • Task — укажите Backup

    • Retain — укажите количество хранимых в системе резервных копий. Например — 1

    • Concurrency — укажите количество создаваемых одновременно резервных копий. Например — 7

    • Cron — укажите частоту автоматического резервного копирования

  4. Нажмите OK, чтобы завершить создание.

recurring job longhorn

Время создания резервных копий отображается по умолчанию во временной зоне UTC.

Созданные резервные копии расположены на вкладке Backup. Отображаемое состояние резервной копии Creation State — Complete.

2. Восстановление сервиса из резервной копии

2.1. Подготовка к восстановлению

Восстановить можно только те сервисы, которые хранят свое состояние в собственной файловой системе (Stateful Sets). Это такие сервисы, как Clickhouse, Keycloak, Postgress (Vault), Zookeeper.

Для сервисов-операторов (например, postgres-operator (pgo), clickhouse) процесс восстановления из резервной копии отличается. Подробнее о восстановлении сервисов-операторов.

В этой инструкции используется интерфейс Lens (IDE оркестратора).

В процессе выполнения следующих действий сервис будет недоступен до его полного восстановления из резервной копии.

  1. Чтобы остановить сервис, уменьшите реплики до нуля. Выполните действия с помощью kubectl или через IDE-интерфейс:

    • Выполните команды в kubectl:

      1. Получите имя запущенного экземпляра сервиса:

        kubectl get deployments | grep nexus
      2. Уменьшите количество реплик до нуля:

        kubectl scale deployments [SERVICE_NAME] --replicas=0
    • В интерфейсе IDE оркестратора:

      1. Перейдите в раздел Workloads  Stateful Sets.

      2. В строке с выбранным сервисом нажмите на кнопку и выберите Scale.

      3. Уменьшите значение Scale до нуля.

        scale backup

  2. Удалите PV/PVC (Persistent Volume) принадлежащее сервису. Выполните действия с помощью kubectl или через IDE-интерфейс:

    • Выполните команды в kubectl:

      1. Получите имя PVC:

        kubectl get pvc | grep nexus
      2. Получите имя PV (Persistent Volume)

        kubectl describe pvc [PVC NAME] | grep -i volume: | awk '{print $2}'
      3. Удалите PVC:

        kubectl delete pvc [PVC NAME]
      4. Удалите PV:

        kubectl delete pv [PERSISTENT VOLUME ID]
    • В интерфейсе IDE оркестратора:

      1. Перейдите в раздел Storage  Persistent Volumes.

      2. Найдите нужный диск и в строке с ним нажмите на кнопку и выберите Delete.

        delete pv and pvc

2.2. Действия по восстановлению

Восстановление сервиса из резервной копии возможно только в интерфейсе Longhorn:

  1. Удалите Volume в сервисе Longhorn. Для этого:

    1. Перейдите в сервис Longhorn.

    2. Выберите вкладку Volume.

    3. В списке дисков найдите нужный и в строке с ним нажмите и выберите Delete.

      volume delete in longhorn
    4. Подтвердите удаление.

  2. Восстановите Volume из резервной копии. Для этого:

    1. Перейдите в сервис Longhorn.

    2. Выберите вкладку Backup.

    3. В списке резервных копий найдите нужную и в строке с ней нажмите и выберите Restore Latest Backup.

    4. В форме восстановления укажите:

      1. Use Previous Name — активируйте эту опцию, так как важно совпадение названий дисков при восстановлении из резервной копии.

      2. Прочие настройки оставьте по умолчанию и нажмите OK.

        После этого запустится восстановление из резервной копии. Процесс восстановления может занять несколько минут. Просмотреть состояние восстанавливающегося диска можно на вкладке Volume.

        Дождитесь полного восстановления диска (Volume). Его статус будет Ready.

        volume proccess backup
        volume proccess backup 2
  3. Восстановите PV/PVC. Для этого:

    1. Перейдите в сервис Longhorn

    2. Выберите вкладку Volume.

    3. В списке дисков найдите нужный и в строке с ним нажмите и выберите Backup.

  4. Увеличьте количество реплик до предыдущего значения. Для этого:

    1. Перейдите в интерфейс IDE оркестратора.

    2. Перейдите в раздел Workloads  Stateful Sets.

    3. В строке с выбранным сервисом нажмите и выберите Scale.

    4. Увеличьте значение Scale до предыдущего состояния.

      Количество реплик Scale нужно увеличить до того количества, которое было ранее задано для этого сервиса. Если при восстановлении из резервной копии реплик будет больше или меньше предыдущего значения, то возможны ошибки восстановления.

3. Восстановление из резервной копии сервисов-операторов

Операторы — это сервисы, которые управляют другими сервисами (например, postgres-operator (pgo), clickhouse). У некоторых операторов в названии присутствует обозначение «operator» — так их можно отличить от обычных сервисов.

Их восстановление из резервной копии отличается от обычных сервисов.

3.1. Подготовка к восстановлению

В процессе выполнения следующих действий сервис будет недоступен до его полного восстановления из резервной копии.

  1. Чтобы остановить сервис, уменьшите реплики оператора до нуля. Для этого:

    1. В интерфейсе IDE оркестратора перейдите в раздел Workloads  Stateful Sets.

    2. В строке с выбранным сервисом нажмите и выберите Scale.

    3. Уменьшите значение Scale до нуля.

  2. Уменьшите реплики сервисов оператора до нуля. Для этого:

    1. В интерфейсе IDE оркестратора перейдите в раздел Workloads  Stateful Sets.

    2. В строке с выбранным сервисом нажмите и выберите Scale.

    3. Уменьшите значение Scale до нуля.

  3. Удалите PV/PVC (Persistent Volume) принадлежащее сервису. Для этого:

    1. Перейдите в раздел Storage  Persistent Volumes.

    2. Найдите нужный диск и в строке с ним нажмите и выберите Delete.

3.2. Действия по восстановлению

  1. Удалите Volume из сервиса Longhorn. Для этого:

    1. Перейдите в сервис Longhorn.

    2. Выберите вкладку Volume.

    3. В списке дисков найдите нужный и в строке с ним нажмите и выберите Delete.

    4. Подтвердите удаление.

  2. Восстановите Volume из резервной копии. Для этого:

    1. Перейдите в сервис Longhorn.

    2. Выберите вкладку Backup.

    3. В списке резервных копий найдите нужную и в строке с ней нажмите и выберите Restore Latest Backup.

    4. В форме восстановления укажите:

      1. Use Previous Name — активируйте эту опцию, так как важно совпадение названий дисков при восстановлении из резервной копии.

      2. Прочие настройки оставьте по умолчанию и нажмите OK.

        После этого запустится восстановление из резервной копии. Процесс восстановления может занять несколько минут. Просмотреть состояние восстанавливающегося диска можно на вкладке Volume.

        Дождитесь полного восстановления диска (Volume). Его статус будет Ready.

  3. Увеличьте количество реплик сервисов оператора до предыдущего значения. Для этого:

    1. Перейдите в интерфейс IDE оркестратора.

    2. Перейдите в раздел Workloads  Stateful Sets.

    3. В строке с выбранным сервисом нажмите и выберите Scale.

    4. Увеличьте значение Scale до предыдущего состояния.

      Для сервиса увеличивать количество реплик не нужно, оператор сам поднимет правильное значение.

  4. Восстановите PV/PVC. Для этого

    1. Перейдите в сервис Longhorn.

    2. Выберите вкладку Volume.

    3. В списке дисков найдите нужный и в строке с ним нажмите и выберите Backup.