Файловое резервное копирование#
Файловое резервное копирование применяется в следующих случаях:
для сохранения содержимого постоянных томов, не поддерживающих создание моментальных снимков;
для выгрузки содержимого моментальных снимков, которые невозможно сконвертировать в блочное устройство.
Сохранение содержимого постоянных томов без моментальных снимков
Сохранение содержимого постоянных томов, которые не поддерживают создание моментальных снимков, выполняется следующим образом:
Запускается вспомогательный под, к нему подключается целевой том посредством его Persistent Volume Claim (PVC).
Использование вспомогательного пода гарантирует, что постоянный том останется подключенным на машине (ноде) даже в случае завершения работы основного пода, использующего этот том.
Данный шаг пропускается, если целевой том уже используется основным подом в режиме доступа
ReadWriteOncePod(так как этот режим запрещает одновременное подключение к другим подам).В служебном пространстве имён на той же машине (ноде), где запущен вспомогательный (или использующий том) под, запускается под резервного копирования. К нему подключается том типа
hostPath, указывающий на директориюKubelet(по умолчанию —/var/lib/kubelet, значение может быть изменено в конфигурации агента).Примечание
Запуск пода резервного копирования в служебном пространстве имён обусловлен необходимостью использования повышенных привилегий. Они требуются для запуска NFS-сервера и подключения томов типа
hostPath. Предполагается, что служебное пространство имён обладает необходимыми правами доступа.Определяется путь, по которому подключён целевой том:
/var/lib/kubelet/pods/<pod-uid>/volumes/*/<pv-name>.Здесь:
<pod-uid>— уникальный идентификатор вспомогательного пода (или пода, использующего том);<pv-name>— имя постоянного тома (Persistent Volume).
В поде резервного копирования запускается NFS-сервер. Через него на агенте подключается содержимое постоянного тома и выполняется резервное копирование.
Схема процесса приведена далее.
Выгрузка содержимого моментальных снимков
Если используемый CSI-драйвер не поддерживает функцию Raw Block (т. е. конвертация моментального снимка в блочный том невозможна), добавьте следующую аннотацию в связанные с ним объекты VolumeSnapshotClass:
kubectl annotate volumesnapshotclass <volume_snapshot_class_name> cyberprotect.ru/convert-to-block-mode=false
В этой команде <volume_snapshot_class_name> — имя класса моментальных снимков томов (VolumeSnapshotClass) в кластере Kubernetes, для которого необходимо отключить конвертацию в блочный режим.
Выгрузка содержимого моментальных снимков осуществляется следующим образом:
Создаётся моментальный снимок целевого постоянного тома.
В служебном пространстве имён запускается под, к которому в режиме
Filesystemподключается новый том, созданный на основе моментального снимка.В поде резервного копирования запускается NFS-сервер. Содержимое постоянного тома монтируется через NFS-сервер, после чего на агенте выполняется файловое резервное копирование данных.
Примечание
Запуск пода резервного копирования в служебном пространстве имён обусловлен необходимостью использования повышенных привилегий. Они требуются для запуска NFS-сервера. Предполагается, что служебное пространство имён обладает необходимыми правами доступа.
Схема процесса приведена далее.