1.9. La restauration de l’OADP
1.9.1. La restauration des applications Copier lienLien copié sur presse-papiers!
Les sauvegardes d’applications sont restaurées en créant une ressource personnalisée de restauration (CR). Découvrez la création d’un CR de restauration.
Il est possible de créer des crochets de restauration pour exécuter des commandes dans un conteneur dans un pod en éditant le CR Restaurer. Découvrez Créer des crochets de restauration.
1.9.1.1. Aperçu des ressources avant d’exécuter la sauvegarde et la restauration Copier lienLien copié sur presse-papiers!
L’OADP sauvegarde les ressources applicatives en fonction du type, de l’espace de noms ou de l’étiquette. Cela signifie que vous pouvez afficher les ressources une fois la sauvegarde terminée. De même, vous pouvez voir les objets restaurés en fonction de l’espace de noms, du volume persistant (PV) ou de l’étiquette après la fin d’une opération de restauration. Afin de prévisualiser les ressources à l’avance, vous pouvez effectuer un cycle sec des opérations de sauvegarde et de restauration.
Conditions préalables
- L’opérateur OADP a été installé.
Procédure
Afin de prévisualiser les ressources incluses dans la sauvegarde avant d’exécuter la sauvegarde réelle, exécutez la commande suivante:
velero backup create <backup-name> --snapshot-volumes false
$ velero backup create <backup-name> --snapshot-volumes false1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez la valeur du paramètre --snapshot-volumes comme false.
Afin de connaître plus de détails sur les ressources de sauvegarde, exécutez la commande suivante:
velero describe backup <backup_name> --details
$ velero describe backup <backup_name> --details1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez le nom de la sauvegarde.
Afin de prévisualiser les ressources incluses dans la restauration avant d’exécuter la restauration réelle, exécutez la commande suivante:
velero restore create --from-backup <backup-name>
$ velero restore create --from-backup <backup-name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez le nom de la sauvegarde créée pour examiner les ressources de sauvegarde.
ImportantLa commande de création de la restauration velero crée des ressources de restauration dans le cluster. Après avoir examiné les ressources, vous devez supprimer les ressources créées dans le cadre de la restauration.
Afin de connaître plus de détails sur les ressources de restauration, exécutez la commande suivante:
velero describe restore <restore_name> --details
$ velero describe restore <restore_name> --details1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez le nom de la restauration.
1.9.1.2. Création d’un CR de restauration Copier lienLien copié sur presse-papiers!
La restauration d’une ressource personnalisée de sauvegarde (CR) en créant un CR de restauration.
Conditions préalables
- Il faut installer l’API OpenShift pour l’opérateur de protection des données (OADP).
- Le DataProtectionApplication CR doit être dans un état prêt.
- Il faut avoir un Velero Backup CR.
- La capacité de volume persistant (PV) doit correspondre à la taille demandée au moment de la sauvegarde. Ajustez la taille demandée si nécessaire.
Procédure
Créer un CR Restaurer, comme dans l’exemple suivant:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le nom du Backup CR.
- 2
- Facultatif : Spécifiez un éventail de ressources à inclure dans le processus de restauration. Les ressources peuvent être des raccourcis (par exemple, po pour les pods) ou entièrement qualifiés. En cas d’absence de précision, toutes les ressources sont incluses.
- 3
- Facultatif: Le paramètre de restaurationPVs peut être défini sur false pour désactiver la restauration de PersistentVolumes à partir de VolumeSnapshot of Container Storage Interface (CSI) instantanés ou à partir de snapshots natifs lorsque VolumeSnapshotLocation est configuré.
Assurez-vous que l’état de la Restauration CR est complété en entrant la commande suivante:
oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'$ oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les ressources de sauvegarde ont été restaurées en entrant la commande suivante:
oc get all -n <namespace>
$ oc get all -n <namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Espace de noms que vous avez sauvegardé.
Lorsque vous rétablissez DeploymentConfig avec des volumes ou si vous utilisez des crochets post-restauration, exécutez le script de nettoyage dc-post-restore.sh en entrant la commande suivante:
bash dc-restic-post-restore.sh -> dc-post-restore.sh
$ bash dc-restic-post-restore.sh -> dc-post-restore.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteAu cours du processus de restauration, les plug-ins OADP Velero réduisent les objets DeploymentConfig et restaurent les pods en tant que gousses autonomes. Ceci est fait pour empêcher le cluster de supprimer les pods restaurés DeploymentConfig immédiatement sur la restauration et pour permettre aux crochets de restauration et de post-restauration de compléter leurs actions sur les gousses restaurées. Le script de nettoyage ci-dessous supprime ces pods déconnectés et met à l’échelle tous les objets DeploymentConfig vers le nombre approprié de répliques.
Exemple 1.1. DC-restic-post-restore.sh
script de nettoyage dc-post-restore.sh Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9.1.3. Créer des crochets de restauration Copier lienLien copié sur presse-papiers!
Créez des crochets de restauration pour exécuter des commandes dans un conteneur dans un pod en éditant la ressource personnalisée Restaurer (CR).
Il est possible de créer deux types de crochets de restauration:
Le crochet init ajoute un conteneur init à un pod pour effectuer des tâches de configuration avant le démarrage du conteneur de l’application.
En cas de restauration d’une sauvegarde Restic, le conteneur init d’attente restique est ajouté avant le conteneur d’entrée du crochet de restauration.
- Le crochet exec exécute des commandes ou des scripts dans un conteneur d’un pod restauré.
Procédure
Ajoutez un crochet au bloc spec.hooks de la Restauration CR, comme dans l’exemple suivant:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Facultatif: Arrivée des espaces de noms auxquels le crochet s’applique. Dans le cas où cette valeur n’est pas spécifiée, le crochet s’applique à tous les espaces de noms.
- 2
- Actuellement, les pods sont la seule ressource prise en charge à laquelle les crochets peuvent s’appliquer.
- 3
- Facultatif: Ce crochet ne s’applique qu’aux objets correspondant au sélecteur d’étiquette.
- 4
- Facultatif: Timeout spécifie la durée maximale d’attente de Velero pour que les conteneurs init se terminent.
- 5
- Facultatif: Si le conteneur n’est pas spécifié, la commande s’exécute dans le premier conteneur dans le pod.
- 6
- C’est le point d’entrée pour le conteneur d’init ajouté.
- 7
- Facultatif: Combien de temps pour attendre qu’un conteneur soit prêt. Cela devrait être assez long pour que le conteneur puisse démarrer et pour que tous les crochets précédents dans le même conteneur soient terminés. Dans le cas contraire, le processus de restauration attend indéfiniment.
- 8
- Facultatif: Combien de temps pour attendre que les commandes s’exécutent. La valeur par défaut est 30s.
- 9
- Les valeurs autorisées pour le traitement des erreurs sont l’échec et la poursuite:
- Continuer: Seuls les échecs de commande sont enregistrés.
- Échec: Plus les crochets de restauration s’exécutent dans n’importe quel conteneur dans n’importe quelle gousse. Le statut de la Restauration CR sera partiellement affiné.
Lors d’une opération de restauration de système de fichiers (FSB), une ressource de déploiement faisant référence à un ImageStream n’est pas restaurée correctement. La gousse restaurée qui exécute le FSB, et le postHook est interrompu prématurément.
Cela se produit parce que, pendant l’opération de restauration, le contrôleur OpenShift met à jour le champ spec.template.spec.containers dans la ressource Déploiement avec un hachage ImageStreamTag mis à jour. La mise à jour déclenche le déploiement d’un nouveau pod, mettant fin à la gousse sur laquelle velero exécute le FSB et le crochet de restauration de poste. En savoir plus sur le déclencheur du flux d’images, voir « Triggering update on image stream changes ».
La solution de contournement de ce comportement est un processus de restauration en deux étapes:
D’abord, effectuer une restauration à l’exclusion des ressources de déploiement, par exemple:
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.appsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Après le succès de la première restauration, effectuez une deuxième restauration en incluant ces ressources, par exemple:
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.appsCopy to Clipboard Copied! Toggle word wrap Toggle overflow