Restaurer une machine virtuelle à partir d'une sauvegarde dans Red Hat OpenShift Virtualization à l'aide de Velero
Restaurez les machines virtuelles dans OpenShift Virtualization à l'aide de Velero et de l'API OpenShift pour la protection des données (OADP). Cette procédure inclut la création d'une ressource personnalisée de restauration (CR) pour récupérer les machines virtuelles et leurs volumes persistants à partir de sauvegardes, avec des options de restauration vers l'espace de noms d'origine, un espace de noms différent ou l'utilisation d'une classe de stockage alternative.
Prérequis
Pour restaurer à partir d’une sauvegarde, supposons que l’espace de noms où la machine virtuelle existait a été supprimé accidentellement.
Restaurer vers le même espace de noms
Pour restaurer à partir de la sauvegarde que nous venons de créer, nous devons créer une ressource personnalisée de restauration (CR). Nous devons lui donner un nom, fournir le nom de la sauvegarde à partir de laquelle nous voulons restaurer et définir restorePVs sur true. Des paramètres supplémentaires peuvent être définis comme indiqué dans le"documentation" . Cliquez sur le bouton Créer.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore1 namespace: openshift-adp spec: backupName: backup1 restorePVs: true
Lorsque la phase est terminée, vous pouvez voir que les machines virtuelles ont été restaurées à l’état dans lequel l’instantané a été pris. (Si la sauvegarde a été créée lorsque la machine virtuelle était en cours d'exécution, la restauration de la machine virtuelle à partir de la sauvegarde démarrera la machine virtuelle restaurée et la ramènera à un état d'exécution). La machine virtuelle est restaurée dans le même espace de noms.
Restaurer vers un espace de noms différent
Pour restaurer la machine virtuelle dans un espace de noms différent, vous pouvez fournir un namespaceMapping dans la définition yaml du CR de restauration.
L'exemple de fichier yaml suivant crée un CR de restauration pour restaurer une machine virtuelle et ses disques dans l'espace de noms virtual-machines-demo lorsque la sauvegarde a été effectuée dans l'espace de noms virtual-machines.
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup restorePVs: true includedNamespaces: - virtual-machines-demo namespaceMapping: virtual-machines-demo: virtual-machines
Lorsque la phase est terminée, vous pouvez voir que les machines virtuelles ont été restaurées à l’état dans lequel l’instantané a été pris. (Si la sauvegarde a été créée lorsque la machine virtuelle était en cours d'exécution, la restauration de la machine virtuelle à partir de la sauvegarde démarrera la machine virtuelle restaurée et la ramènera à un état d'exécution). La machine virtuelle est restaurée dans un espace de noms différent comme spécifié dans le fichier yaml.
Restaurer vers une classe de stockage différente
Velero fournit une capacité générique pour modifier les ressources pendant la restauration en spécifiant des correctifs json. Les correctifs JSON sont appliqués aux ressources avant leur restauration. Les correctifs json sont spécifiés dans une configmap et la configmap est référencée dans la commande de restauration. Cette fonctionnalité vous permet de restaurer à l’aide de différentes classes de stockage.
Dans l'exemple ci-dessous, la machine virtuelle, lors de sa création, utilise ontap-nas comme classe de stockage pour ses disques. Une sauvegarde de la machine virtuelle nommée backup1 est créée.
Simulez une perte de la VM en supprimant la VM.
Pour restaurer la machine virtuelle à l'aide d'une classe de stockage différente, par exemple, la classe de stockage ontap-nas-eco, vous devez effectuer les deux étapes suivantes :
Étape 1
Créez une carte de configuration (console) dans l'espace de noms openshift-adp comme suit : Remplissez les détails comme indiqué dans la capture d'écran : Sélectionnez l'espace de noms : openshift-adp Nom : change-storage-class-config (peut être n'importe quel nom) Clé : change-storage-class-config.yaml : Valeur :
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "^rhel*" namespaces: - virtual-machines-demo patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
L'objet de carte de configuration résultant devrait ressembler à ceci (CLI) :
Cette carte de configuration appliquera la règle de modification des ressources lors de la création de la restauration. Un correctif sera appliqué pour remplacer le nom de la classe de stockage par ontap-nas-eco pour toutes les revendications de volume persistant commençant par rhel.
Étape 2
Pour restaurer la machine virtuelle, utilisez la commande suivante depuis la CLI Velero :
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
La machine virtuelle est restaurée dans le même espace de noms avec les disques créés à l’aide de la classe de stockage ontap-nas-eco.