Резервное копирование/экспорт и восстановление данных Transformation Advisor

Примечание: Если в параметре persistence.enabled конфигурации установки задано значение false, данные хранятся только в контейнере и теряются при перезапуске контейнера.

Резервное копирование данных

Transformation Advisor хранит данные в базе данных CouchDB и размещает данные на томах постоянного хранения.
Рекомендуется регулярно создавать резервную копию томов постоянного хранения

Создание резервной копии томов постоянного хранения

Следуйте процедуре, применимой для того типа тома постоянного хранения, на котором размещаются данные Transformation Advisor

Сохранение PersistentVolumeClaim

Можно удалить Transformation Advisor из системы, но сохранить его PersistentVolumeClaim. Это простейший способ сохранения данных при обновлении версий Transformation Advisor, когда автоматическое обновление невозможно (например, при обновлении с версии 2.3.X до версии 2.4.X). Недостаток данного подхода заключается в том, что требуется установка нового экземпляра Transformation Advisor в одно пространство имен с предыдущей версией.

Примечание: Эта процедура должна использоваться, когда объект PersistentVolumeClaim, который требуется сохранить, был создан автоматически во время установки Transformation Advisor. Если в экземпляре Transformation Advisor используется объект PersistentVolumeClaim, созданный вручную, то для сохранения объекта PersistentVolumeClaim описанная ниже процедура может быть излишней. Выполните следующую команду для своего объекта PersistentVolumeClaim:

kubectl get pvc <my-pvc-name> -n <ta-namespace> -o yaml | grep ownerReferences

Если в выводе команды нет ownerReferences в объекте PersistentVolumeClaim, то данная процедура не требуется и после удаления Transformation Advisor объект PersistentVolumeClaim останется. Следует всегда заранее создавать резервную копию данных.

Для того чтобы сохранить PersistentVolumeClaim, выполните следующую процедуру:

  1. Удалите подписку Transformation Advisor и clusterserviceversion. Также будет удален оператор. (Не забудьте заменить именем пространства имен, где находится установленный экземпляр.

     export subscription=$(kubectl get subscription --no-headers -n <ta-namespace> | awk '{print $1}')
     kubectl delete subscription ${subscription} -n <ta-namespace> >/dev/null 2>&1
    
     export csv=$(kubectl get csv --no-headers -n <ta-namespace> | awk '{print $1}')
     kubectl delete csv ${csv} -n <ta-namespace>
    

Дождитесь исчезновения пода оператора, прежде чем переходить к шагу 2. Проверьте поды командой oc get pods. В конце концов под ta-operator-XXX исчезнет (где XXX - случайный идентификатор)

  1. Отключите PersistentVolumeClaim от экземпляра Transformation Advisor. Это позволит удалить экземпляр Transformation Advisor, но оставить PersistentVolumeClaim.

     export pvc_name=$(oc get deployment -n <ta-namespace> | grep couchdb | awk '{print$1}')
     kubectl patch pvc ${pvc_name} -n <ta-namespace> --type=json -p='[{"op": "remove", "path": "/metadata/ownerReferences"}]'
    
  2. Удалите экземпляр Transformation Advisor

     # Выполните следующую команду в фоновом режиме с помощью оператора '&'
     kubectl delete transadvs.charts.ta.cloud.ibm.com/ta -n <ta-namespace> &
     kubectl patch transadvs.charts.ta.cloud.ibm.com/ta -p '{"metadata":{"finalizers":[]}}' --type=merge -n <ta-namespace>
    

    Дождитесь исчезновения подов Transformation Advisor, прежде чем переходить к шагу 4. Проверьте состояние подов командой oc get pods. В конце концов все поды в пространстве имен исчезнут.

  3. Удалите CustomResourceDefinition

     # Выполните эту команду в фоновом режиме с помощью оператора '&'
     kubectl delete crd/transadvs.charts.ta.cloud.ibm.com &
     kubectl patch crd/transadvs.charts.ta.cloud.ibm.com -n <ta-namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
    
  4. Удалите другие ресурсы Transformation Advisor в пространстве имен

     kubectl delete secret transformation-advisor-secret -n <ta-namespace> 
    
     export opertor_group=$(oc get operatorgroup -n <ta-namespace> --no-headers | awk '{print $1}')
     kubectl delete operatorgroup ${opertor_group} -n <ta-namespace> 
    
     kubectl delete clusterrolebinding <ta-namespace>-cluster-admin -n <ta-namespace>
    
  5. Установите новую версию Transformation Advisor в то же пространство имен. Во время установки новой версии Transformation Advisor используйте сохраненный объект PersistentVolumeClaim. См. инструкции по настройке Transformation Advisor с существующим объектом PersistentVolumeClaim в разделах Предварительные требования и Установка.

  6. (необязательно) После установки новой версии Transformation Advisor можно подключить объект PersistentVolumeClaim к новому экземпляру. Подключение объекта PersistentVolumeClaim к новому экземпляру Transformation Advisor означает, что в будущем, когда потребуется удалить этот экземпляр Transformation Advisor, объект PersistentVolumeClaim тоже будет удален вместе с экземпляром. Это также является поведением по умолчанию стандартной установки Transformation Advisor. Если это нежелательно, то можно пропустить данный шаг. (Не забудьте указать настоящее пространство имен и имя объекта PersistentVolumeClaim в команде)

     export uid=$(oc get transadvs.ta.ibm.com/ta -o yaml -n <ta-namespace> | grep uid | awk 'NR==1{print$2}')
    
     kubectl patch pvc <my-ta-pvc> --type=json -p='[{"op": "add", "path": "/metadata/ownerReferences", "value": [{"apiVersion": "ta.ibm.com/v1", "blockOwnerDeletion": true, "controller": true, "kind": "TransAdv", "name": "ta", "uid": "'${uid}'"}]}]'
    

Другие варианты

Репликация CouchDB

Для резервного копирования данных можно использовать функцию репликации CouchDB https://docs.couchdb.org/en/stable/replication/intro.html

Прямой экспорт данных

Данные можно экспортировать прямо из пода CouchDB. Внутри пода CouchDB данные находятся в каталоге /opt/couchdb/data. Каталог данных можно скопировать из пода командой kubectl cp:

kubectl cp <ta-namespace>/<couchdb-pod>:/opt/couchdb/data /tmp/my_ta_data

Эта команда копирует данные CouchDB в каталог /tmp/my_ta_data на хосте.

Прямой экспорт данных Transformation Advisor Local

Перейдите в каталог установки TA_LOCAL.
Найдите каталог данных и скопируйте его в требуемое расположение.

Экспорт данных Transformation Advisor через конечные точки HTTP

См. раздел Экспорт и импорт данных Transformation Advisor через конечные точки HTTP.

Как импортировать данные Transformation Advisor в OpenShift Cloud Platform

Импортируемые данные Transformation Advisor необходимо сохранить на соответствующий том постоянного хранения, чтобы они были доступны контейнеру CouchDB. Данные нельзя сохранить прямо в контейнере, так как в этом случае они будут утрачены при перезапуске.

Определите, где данные хранятся постоянно

Если PersistentVolume использует NFS или Hostpath, то для поиска данных выполните следующие действия.

NFS PV

oc describe pv <имя-pv>

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

Hostpath PV

oc describe pv <имя-pv>

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

Восстановление данных и версий Transformation Advisor

Восстановление в такой же версии:

Если при восстановлении данных новая версия Transformation Advisor совпадает с версией, из которой данные были экспортированы, выполните следующие действия:

  1. Поместите содержимое экспортированного каталога данных в новый каталог данных, где новый каталог данных определяется с помощью процедуры, описанной выше, в разделе "Определите, где данные хранятся постоянно".

Восстановление в новой версии:

Если при восстановлении данных новая версия Transformation Advisor новее версии, из которой данные были экспортированы, выполните следующие действия:

  1. Заново установите или обновите Transformation Advisor до новой версии
  2. Поместите содержимое экспортированного каталога данных в новый каталог данных, где новый каталог данных определяется с помощью процедуры, описанной выше, в разделе "Определите, где данные хранятся постоянно".
  3. Перезапустите контейнер сервера

Восстановление в предыдущей версии:

Если при восстановлении данных новая версия Transformation Advisor старее версии, из которой данные были экспортированы, выполните следующие действия:

Transformation Advisor Server не преобразует данные для совместимости с предыдущими версиями. В этом случае необходимо сделать следующее:

  1. Поместите содержимое экспортированного каталога данных в новый каталог данных, где новый каталог данных определяется с помощью процедуры, описанной выше, в разделе "Определите, где данные хранятся постоянно".

Импорт данных Transformation Advisor через конечные точки HTTP

См. раздел Экспорт и импорт данных Transformation Advisor через конечные точки HTTP.