Файловое резервное копирование

Файловое резервное копирование#

Файловое резервное копирование применяется в следующих случаях:

  • для сохранения содержимого постоянных томов, не поддерживающих создание моментальных снимков;

  • для выгрузки содержимого моментальных снимков, которые невозможно сконвертировать в блочное устройство.

Сохранение содержимого постоянных томов без моментальных снимков

Сохранение содержимого постоянных томов, которые не поддерживают создание моментальных снимков, выполняется следующим образом:

  1. Запускается вспомогательный под, к нему подключается целевой том посредством его Persistent Volume Claim (PVC).

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

    Данный шаг пропускается, если целевой том уже используется основным подом в режиме доступа ReadWriteOncePod (так как этот режим запрещает одновременное подключение к другим подам).

  2. В служебном пространстве имён на той же машине (ноде), где запущен вспомогательный (или использующий том) под, запускается под резервного копирования. К нему подключается том типа hostPath, указывающий на директорию Kubelet (по умолчанию — /var/lib/kubelet, значение может быть изменено в конфигурации агента).

    Примечание

    Запуск пода резервного копирования в служебном пространстве имён обусловлен необходимостью использования повышенных привилегий. Они требуются для запуска NFS-сервера и подключения томов типа hostPath. Предполагается, что служебное пространство имён обладает необходимыми правами доступа.

  3. Определяется путь, по которому подключён целевой том: /var/lib/kubelet/pods/<pod-uid>/volumes/*/<pv-name>.

    Здесь:

    • <pod-uid> — уникальный идентификатор вспомогательного пода (или пода, использующего том);

    • <pv-name> — имя постоянного тома (Persistent Volume).

  4. В поде резервного копирования запускается NFS-сервер. Через него на агенте подключается содержимое постоянного тома и выполняется резервное копирование.

Схема процесса приведена далее.

_images/File-based-backup-1.png

Выгрузка содержимого моментальных снимков

Если используемый CSI-драйвер не поддерживает функцию Raw Block (т. е. конвертация моментального снимка в блочный том невозможна), добавьте следующую аннотацию в связанные с ним объекты VolumeSnapshotClass:

kubectl annotate volumesnapshotclass <volume_snapshot_class_name> cyberprotect.ru/convert-to-block-mode=false

В этой команде <volume_snapshot_class_name> — имя класса моментальных снимков томов (VolumeSnapshotClass) в кластере Kubernetes, для которого необходимо отключить конвертацию в блочный режим.

Выгрузка содержимого моментальных снимков осуществляется следующим образом:

  1. Создаётся моментальный снимок целевого постоянного тома.

  2. В служебном пространстве имён запускается под, к которому в режиме Filesystem подключается новый том, созданный на основе моментального снимка.

  3. В поде резервного копирования запускается NFS-сервер. Содержимое постоянного тома монтируется через NFS-сервер, после чего на агенте выполняется файловое резервное копирование данных.

    Примечание

    Запуск пода резервного копирования в служебном пространстве имён обусловлен необходимостью использования повышенных привилегий. Они требуются для запуска NFS-сервера. Предполагается, что служебное пространство имён обладает необходимыми правами доступа.

Схема процесса приведена далее.

_images/File-based-backup-2.png