Skip to main content
NetApp virtualization solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Protection des données pour les machines virtuelles dans Red Hat OpenShift Virtualization à l'aide de l'OpenShift API de protection des données (OADP)

Contributeurs banum-netapp

OpenShift API for Data Protection (OADP) avec Velero fournit des fonctionnalités de sauvegarde, de restauration et de reprise après sinistre pour les machines virtuelles dans OpenShift Virtualization. Utilisez les snapshots Trident CSI pour sauvegarder les volumes persistants et les métadonnées de machine virtuelle sur NetApp ONTAP S3 ou StorageGRID S3. OADP s'intègre aux API Velero et aux pilotes de stockage CSI pour gérer les opérations de protection des données pour les machines virtuelles conteneurisées.

Les machines virtuelles dans l’environnement de virtualisation OpenShift sont des applications conteneurisées qui s’exécutent dans les nœuds de travail de votre plateforme OpenShift Container. Il est important de protéger les métadonnées des machines virtuelles ainsi que les disques persistants des machines virtuelles, afin que lorsqu'elles sont perdues ou corrompues, vous puissiez les récupérer.

Les disques persistants des machines virtuelles de virtualisation OpenShift peuvent être sauvegardés par le stockage ONTAP intégré au cluster OpenShift à l'aide de"Trident CSI" . Dans cette section, nous utilisons"API OpenShift pour la protection des données (OADP)" pour effectuer la sauvegarde des machines virtuelles, y compris leurs volumes de données,

  • Stockage d'objets ONTAP

  • Grille de stockage

Nous restaurons ensuite à partir de la sauvegarde lorsque cela est nécessaire.

OADP permet la sauvegarde, la restauration et la reprise après sinistre des applications sur un cluster OpenShift. Les données qui peuvent être protégées avec OADP incluent les objets de ressources Kubernetes, les volumes persistants et les images internes.

API OpenShift pour la protection des données

Red Hat OpenShift a tiré parti des solutions développées par les communautés open source pour la protection des données. "Velero" est un outil open source permettant de sauvegarder et de restaurer en toute sécurité, d’effectuer une reprise après sinistre et de migrer les ressources et les volumes persistants des clusters Kubernetes. Pour utiliser Velero facilement, OpenShift a développé l’opérateur OADP et le plugin Velero afin de s’intégrer aux pilotes de stockage CSI. Le cœur des API OADP exposées est basé sur les API Velero. Après avoir installé et configuré l’opérateur OADP, les opérations de sauvegarde et de restauration qui peuvent être effectuées sont basées sur les opérations exposées par l’API Velero.

API OpenShift pour la protection des données

OADP 1.3 est disponible à partir du hub opérateur du cluster OpenShift 4.12 et versions ultérieures. Il dispose d'un Data Mover intégré qui peut déplacer des instantanés de volume CSI vers un magasin d'objets distant. Cela offre portabilité et durabilité en déplaçant les instantanés vers un emplacement de stockage d'objets pendant la sauvegarde. Les instantanés sont ensuite disponibles pour restauration après sinistre.

Voici les différents composants utilisés dans les exemples de cette section

  • OpenShift Cluster 4.14

  • OpenShift Virtualization installé via OpenShift Virtualization Operator fourni par Red Hat

  • Opérateur OADP 1.3 fourni par Red Hat

  • Velero CLI pour Linux

  • Pilote Trident 24.02 CSI pour ONTAP

  • ONTAP 9.12

Créer une sauvegarde à la demande pour les machines virtuelles dans Red Hat OpenShift Virtualization à l'aide de Velero

Sauvegardez les machines virtuelles dans OpenShift Virtualization à l'aide de Velero et NetApp ONTAP S3 ou StorageGRID. Cette procédure inclut la création de ressources personnalisées de sauvegarde (CR) pour les sauvegardes à la demande et de CR planifiées pour les sauvegardes planifiées. Chaque sauvegarde capture les métadonnées de la machine virtuelle et les volumes persistants, en les stockant dans l'emplacement de stockage d'objets spécifié à des fins de récupération ou de conformité.

Étapes pour créer une sauvegarde d'une machine virtuelle

Pour créer une sauvegarde à la demande de l'intégralité de la VM (métadonnées de la VM et disques de la VM), cliquez sur l'onglet Sauvegarde. Cela crée une ressource personnalisée de sauvegarde (CR). Un exemple de fichier yaml est fourni pour créer le CR de sauvegarde. À l’aide de ce fichier yaml, la machine virtuelle et ses disques dans l’espace de noms spécifié seront sauvegardés. Des paramètres supplémentaires peuvent être définis comme indiqué dans le"documentation" .

Un instantané des volumes persistants soutenant les disques sera créé par le CSI. Une sauvegarde de la machine virtuelle ainsi que l'instantané de ses disques sont créés et stockés dans l'emplacement de sauvegarde spécifié dans le fichier yaml. La sauvegarde restera dans le système pendant 30 jours comme spécifié dans le ttl.

apiVersion: velero.io/v1
kind: Backup
metadata:
  name: backup1
  namespace: openshift-adp
spec:
  includedNamespaces:
  - virtual-machines-demo
  snapshotVolumes: true
  storageLocation: velero-demo-1
  ##velero-demo-1 is the backupStorageLocation
  ##previously created when Velero is configured.

  ttl: 720h0m0s

Une fois la sauvegarde terminée, sa phase s'affichera comme terminée.

Sauvegarde terminée

Vous pouvez inspecter la sauvegarde dans le stockage d'objets à l'aide d'une application de navigateur S3. Le chemin de la sauvegarde s'affiche dans le bucket configuré avec le nom de préfixe (velero/demobackup). Vous pouvez voir que le contenu de la sauvegarde comprend les instantanés de volume, les journaux et d’autres métadonnées de la machine virtuelle.

Remarque Dans StorageGrid, vous pouvez également utiliser la console S3 disponible à partir du gestionnaire de locataires pour afficher les objets de sauvegarde.

Sauvegarder des objets dans S3

Création de sauvegardes planifiées

Pour créer des sauvegardes selon un planning, vous devez créer un Schedule CR. Le planning est simplement une expression Cron qui vous permet de spécifier l'heure à laquelle vous souhaitez créer la sauvegarde. Un exemple de fichier yaml pour créer un Schedule CR.

apiVersion: velero.io/v1
kind: Schedule
metadata:
  name: <schedule>
  namespace: openshift-adp
spec:
  schedule: 0 7 * * *
  template:
    hooks: {}
    includedNamespaces:
    - <namespace>
    storageLocation: velero-demo-1
    defaultVolumesToFsBackup: true
    ttl: 720h0m0s

L'expression Cron 0 7 * * * signifie qu'une sauvegarde sera créée à 7h00 tous les jours. Les espaces de noms à inclure dans la sauvegarde et l'emplacement de stockage de la sauvegarde sont également spécifiés. Ainsi, au lieu d'un CR de sauvegarde, le CR planifié est utilisé pour créer une sauvegarde à l'heure et à la fréquence spécifiées.

Une fois le calendrier créé, il sera activé.

Horaire créé

Les sauvegardes seront créées selon ce calendrier et pourront être consultées à partir de l'onglet Sauvegarde.

Horaire créé

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

Details

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.

Créer Restaurer CR

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.

Restauration terminée

Restaurer vers un espace de noms différent

Details

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.

Restauration terminée vers un nouvel espace de noms

Restaurer vers une classe de stockage différente

Details

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.

Machine virtuelle utilisant ontap-nas

Sauvegarde de machine virtuelle ontap-nas

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"

interface utilisateur de la carte de configuration

L'objet de carte de configuration résultant devrait ressembler à ceci (CLI) :

carte de configuration 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.

Restauration de VM ontap-nas-eco

Supprimer un CR de sauvegarde ou restaurer un CR dans Red Hat OpenShift Virtualization à l'aide de Velero

Supprimez les ressources de sauvegarde et de restauration pour les machines virtuelles dans OpenShift Virtualization à l'aide de Velero. Utilisez l'interface de ligne de commande OpenShift pour supprimer les sauvegardes tout en conservant les données de stockage d'objets, ou l'interface de ligne de commande Velero pour supprimer à la fois la ressource personnalisée de sauvegarde (CR) et les données de stockage associées.

Supprimer une sauvegarde

Vous pouvez supprimer un CR de sauvegarde sans supprimer les données de stockage d'objets à l'aide de l'outil OC CLI.

oc delete backup <backup_CR_name> -n <velero_namespace>

Si vous souhaitez supprimer la ressource de sauvegarde (Backup CR) et les données de stockage d'objets associées, vous pouvez le faire à l'aide de l'outil Velero CLI.

Téléchargez l'interface de ligne de commande Velero (CLI) depuis "velero.io". Utilisez la version compatible avec votre version de l'opérateur OADP. Vous pouvez trouver la version compatible dans la documentation "ici".

Exécutez la commande de suppression suivante à l'aide de la CLI Velero

velero backup delete <backup_CR_name> -n <velero_namespace>

Suppression d'une restauration

Vous pouvez supprimer le CR de restauration à l'aide de la CLI Velero

velero restore delete restore --namespace openshift-adp

Vous pouvez utiliser la commande oc ainsi que l'interface utilisateur pour supprimer le CR de restauration

oc delete restore <restore_CR_name> -n <velero_namespace>