Passer au contenu principal

Sauvegarder et restaurer

Aperçu

Le processus de sauvegarde ThingPark Enterprise permet de créer et d'archiver un instantané de toutes les données de la plateforme. Les données des séries temporelles sont exclues de la sauvegarde : les statistiques des capteurs et des passerelles, ainsi que les paquets wlogger ne sont pas sauvegardés. La sauvegarde et la restauration sont des opérations manuelles déclenchées via les commandes exec de l'API Kubernetes. Une sauvegarde planifiée peut également être configurée.

prudence
  • L'archive peut uniquement être restaurée sur la même version de ThingPark Enterprise.
  • La sauvegarde de la personnalisation de configuration ne fait pas partie de ce processus
  • Si la sauvegarde est restaurée après un désastre du plan de contrôle Kubernetes, une nouvelle installation doit d'abord être effectuée.

Sauvegarde

Sauvegarder les données manuellement

Une sauvegarde manuelle peut être déclenchée en exécutant le script de sauvegarde dans le contexte de déploiement tp-backup-controller.

  1. Exécuter le script de sauvegarde à l'aide du point de terminaison exec de l'API Kubernetes

    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o backup
  2. Archive de sauvegarde poussée avec succès vers le stockage en nuage

    2024-07-25T09:16:57.205Z	INFO	tp-backup/main.go:52	Backup succeed

Planification des sauvegardes

Scheduled backup can be enabled after initial deployment by updating configuration of the Helm thingpark-enterprise release.

  1. Add a schedule key in backup block with appropriate cron expression:

    backup:
    schedule: "30 2 * * *"
  2. Mettre à jour la version du graphique :

    helm upgrade -i tpe -n $NAMESPACE \
    actility/thingpark-enterprise --version $THINGPARK_ENTERPRISE_VERSION \
    -f $CONFIG_REPO_BASEURL/configs/$HOSTING/values-$SEGMENT-segment.yaml \
    -f custom-values.yaml
  3. La rétention des sauvegardes doit être configurée en utilisant les fonctionnalités de stockage en nuage :

Restaurer les données

L'action de restauration doit être effectuée sur une instance TPE déjà installée et configurée.

  1. Identifiez une sauvegarde que vous voulez restaurer en listant celles disponibles :

    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o list
  2. Déclenchez la restauration des données (la commande demandera confirmation) :

    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o restore -b %backup name%

Revenir en arrière

Cette procédure s'applique à un retour en arrière pour toute raison après une mise à jour :

  1. Identifier la dernière sauvegarde déclenchée automatiquement lors de la mise à jour :

    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o list
  2. Retour à la révision précédente de Helm :

    helm rollback -n $NAMESPACE tpe
  3. After all Deployment/Statefulset back to an Available state, start the restoration procedure using identified backup:

    $ kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o restore -b <backup name>
    2024-07-25T09:20:20.918Z INFO logger/logger.go:52 Logger construction succeeded
    2024-07-25T09:20:20.920Z INFO tp-backup/main.go:39 Initialize controller with Loaded Configuration
    2024-07-25T09:20:20.921Z INFO storage/azureblob.go:60 Azure Blob storage initialized
    2024-07-25T09:20:20.937Z INFO datasource/mariadb.go:49 Wireless datasource Initialized
    2024-07-25T09:20:20.988Z INFO datasource/mongodb.go:82 Wireless datasource Initialized
    2024/07/25 09:20:20 connected to 10.240.32.71:2181
    2024/07/25 09:20:21 authenticated: id=144132615539458050, timeout=4000
    2024/07/25 09:20:21 re-submitting `0` credentials after reconnect
    2024-07-25T09:20:22.090Z INFO datasource/core.go:80 Core datasource Initialized
    2024-07-25T09:20:22.091Z INFO datasource/kubernetes.go:68 Kubernetes datasource Initialized
    WARNING: Destructive Operation !!!
    This Operation will restore a previous state of your TPE instance.
    Are you sure you want to delete current datas? (yes/no)
note

If you have already retried helm upgrade, the rollback can be done to a previous Helm Release Revision:

  1. Identifier la révision de la version que vous souhaitez restaurer :

    $ helm history -n $NAMESPACE tpe
    REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
    ...
    8 Thu Jan 20 10:24:54 2022 superseded thingpark-enterprise-1.0.2 7.1.0 Upgrade complete
    ...

  2. Déclencher le retour en arrière de la révision Helm :

    helm rollback -n $NAMESPACE tpe <revision>

Revenir à une révision de configuration de ThingPark-Enterprise

Cette procédure permet de restaurer une révision précédente de Helm avec restauration de données :

  1. Identify the release revision you want to rollback to and take a note of APP VERSION :

    $ helm history -n $NAMESPACE tpe
    REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
    ...
    8 Thu Jan 20 10:24:54 2022 superseded thingpark-enterprise-1.0.2 7.1.0 Upgrade complete
    ...
  2. Lister les sauvegardes disponibles pour récupérer celle que vous souhaitez restaurer

    kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o list
  3. Déclencher le retour en arrière de la révision Helm :

    helm rollback -n $NAMESPACE tpe <revision>
  4. After all Deployment/Statefulset back to an Available state, start the restoration procedure using identified backup:

    $ kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- tp-backup -o restore -b <backup name>
    2024-07-25T09:20:20.918Z INFO logger/logger.go:52 Logger construction succeeded
    2024-07-25T09:20:20.920Z INFO tp-backup/main.go:39 Initialize controller with Loaded Configuration
    2024-07-25T09:20:20.921Z INFO storage/azureblob.go:60 Azure Blob storage initialized
    2024-07-25T09:20:20.937Z INFO datasource/mariadb.go:49 Wireless datasource Initialized
    2024-07-25T09:20:20.988Z INFO datasource/mongodb.go:82 Wireless datasource Initialized
    2024/07/25 09:20:20 connected to 10.240.32.71:2181
    2024/07/25 09:20:21 authenticated: id=144132615539458050, timeout=4000
    2024/07/25 09:20:21 re-submitting `0` credentials after reconnect
    2024-07-25T09:20:22.090Z INFO datasource/core.go:80 Core datasource Initialized
    2024-07-25T09:20:22.091Z INFO datasource/kubernetes.go:68 Kubernetes datasource Initialized
    WARNING: Destructive Operation !!!
    This Operation will restore a previous state of your TPE instance.
    Are you sure you want to delete current datas? (yes/no)