Rechercher

5.5. Clonage du volume CSI

download PDF

Le clonage de volume duplique un volume persistant existant pour aider à protéger contre la perte de données dans OpenShift Container Platform. Cette fonctionnalité n'est disponible qu'avec les pilotes CSI (Container Storage Interface) pris en charge. Vous devez vous familiariser avec les volumes persistants avant de provisionner un clone de volume CSI.

5.5.1. Vue d'ensemble du clonage de volumes CSI

Un clone de volume de l'interface de stockage de conteneurs (CSI) est un duplicata d'un volume persistant existant à un moment donné.

Le clonage de volume est similaire aux instantanés de volume, mais il est plus efficace. Par exemple, un administrateur de cluster peut dupliquer un volume de cluster en créant une autre instance du volume de cluster existant.

Le clonage crée une copie exacte du volume spécifié sur le périphérique dorsal, plutôt que de créer un nouveau volume vide. Après le provisionnement dynamique, vous pouvez utiliser un clone de volume comme vous le feriez avec n'importe quel volume standard.

Aucun nouvel objet API n'est nécessaire pour le clonage. Le champ dataSource existant dans l'objet PersistentVolumeClaim est étendu de manière à pouvoir accepter le nom d'un PersistentVolumeClaim existant dans le même espace de noms.

5.5.1.1. Limites du soutien

Par défaut, OpenShift Container Platform prend en charge le clonage de volume CSI avec ces limitations :

  • La revendication de volume persistant (PVC) de destination doit exister dans le même espace de noms que le PVC source.
  • Le clonage est pris en charge avec une classe de stockage différente.

    • Le volume de destination peut être le même pour une classe de stockage différente de celle de la source.
    • Vous pouvez utiliser la classe de stockage par défaut et omettre storageClassName dans le champ spec.
  • La prise en charge n'est disponible que pour les pilotes CSI. In-tree et FlexVolumes ne sont pas pris en charge.
  • Les pilotes CSI peuvent ne pas avoir implémenté la fonctionnalité de clonage de volume. Pour plus de détails, voir la documentation du pilote CSI.

5.5.2. Approvisionnement d'un clone de volume CSI

Lorsque vous créez un objet API de réclamation de volume persistant (PVC) cloné, vous déclenchez le provisionnement d'un clone de volume CSI. Le clone est pré-rempli avec le contenu d'un autre PVC, en respectant les mêmes règles que tout autre volume persistant. La seule exception est que vous devez ajouter une adresse dataSource qui fait référence à un PVC existant dans le même espace de noms.

Conditions préalables

  • Vous êtes connecté à un cluster OpenShift Container Platform en cours d'exécution.
  • Votre PVC est créé à l'aide d'un pilote CSI qui prend en charge le clonage de volume.
  • Votre back-end de stockage est configuré pour le provisionnement dynamique. La prise en charge du clonage n'est pas disponible pour les provisionneurs statiques.

Procédure

Pour cloner un PVC à partir d'un PVC existant :

  1. Créer et sauvegarder un fichier avec l'objet PersistentVolumeClaim décrit par le YAML suivant :

    pvc-clone.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-1-clone
      namespace: mynamespace
    spec:
      storageClassName: csi-cloning 1
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
      dataSource:
        kind: PersistentVolumeClaim
        name: pvc-1

    1
    Le nom de la classe de stockage qui fournit le back-end de stockage. La classe de stockage par défaut peut être utilisée et storageClassName peut être omis dans la spécification.
  2. Créez l'objet que vous avez sauvegardé à l'étape précédente en exécutant la commande suivante :

    $ oc create -f pvc-clone.yaml

    Un nouveau PVC pvc-1-clone est créé.

  3. Vérifiez que le clone de volume a été créé et qu'il est prêt en exécutant la commande suivante :

    $ oc get pvc pvc-1-clone

    Le site pvc-1-clone indique qu'il s'agit de Bound.

    Vous êtes maintenant prêt à utiliser le nouveau PVC cloné pour configurer un pod.

  4. Créer et enregistrer un fichier avec l'objet Pod décrit par le YAML. Par exemple :

    kind: Pod
    apiVersion: v1
    metadata:
      name: mypod
    spec:
      containers:
        - name: myfrontend
          image: dockerfile/nginx
          volumeMounts:
          - mountPath: "/var/www/html"
            name: mypd
      volumes:
        - name: mypd
          persistentVolumeClaim:
            claimName: pvc-1-clone 1
    1
    Le PVC cloné créé lors de l'opération de clonage du volume CSI.

    L'objet Pod créé est maintenant prêt à consommer, cloner, snapshoter ou supprimer votre PVC cloné indépendamment de son PVC dataSource d'origine.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.