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

volumes d'importation

Contributeurs netapp-aruldeepa

Vous pouvez importer des volumes de stockage existants en tant que PV Kubernetes à l'aide de tridentctl import .

Aperçu et considérations

Vous pouvez importer un volume dans Trident pour :

  • Conteneurisez une application et réutilisez son ensemble de données existant

  • Utiliser un clone d'un ensemble de données pour une application éphémère

  • Reconstruire un cluster Kubernetes défaillant

  • Migrer les données d'application lors d'une reprise après sinistre

Considérations

Avant d'importer un volume, veuillez prendre en compte les points suivants.

  • Trident peut importer uniquement des volumes ONTAP de type RW (lecture-écriture). Les volumes de type DP (protection des données) sont des volumes de destination SnapMirror . Vous devez rompre la relation miroir avant d'importer le volume dans Trident.

  • Nous vous suggérons d'importer les volumes sans connexions actives. Pour importer un volume activement utilisé, clonez le volume puis effectuez l'importation.

    Avertissement Ceci est particulièrement important pour les volumes de blocs, car Kubernetes ne serait pas au courant de la connexion précédente et pourrait facilement associer un volume actif à un pod. Cela peut entraîner une corruption des données.
  • Cependant StorageClass Ce paramètre doit être spécifié sur un PVC ; Trident ne l'utilise pas lors de l'importation. Les classes de stockage sont utilisées lors de la création de volumes pour sélectionner les pools disponibles en fonction des caractéristiques de stockage. Le volume existant déjà, aucune sélection de pool n'est requise lors de l'importation. Par conséquent, l'importation ne connaîtra pas d'échec même si le volume existe sur un backend ou un pool qui ne correspond pas à la classe de stockage spécifiée dans le PVC.

  • Le volume existant est déterminé et fixé dans le PVC. Une fois le volume importé par le pilote de stockage, le PV est créé avec une référence ClaimRef vers le PVC.

    • La politique de réclamation est initialement définie pour retain dans le PV. Une fois que Kubernetes a correctement lié le PVC et le PV, la politique de récupération est mise à jour pour correspondre à la politique de récupération de la classe de stockage.

    • Si la politique de récupération de la classe de stockage est delete Le volume de stockage sera supprimé lorsque le PV sera supprimé.

  • Par défaut, Trident gère le PVC et renomme le FlexVol volume et le LUN en arrière-plan. Vous pouvez réussir le --no-manage Indiquez si vous souhaitez importer un volume non géré. Si vous utilisez --no-manage Trident n'effectue aucune opération supplémentaire sur le PVC ou le PV pendant le cycle de vie des objets. Le volume de stockage n'est pas supprimé lorsque le PV est supprimé, et d'autres opérations telles que le clonage et le redimensionnement de volume sont également ignorées.

    Astuce Cette option est utile si vous souhaitez utiliser Kubernetes pour les charges de travail conteneurisées, mais que vous souhaitez par ailleurs gérer le cycle de vie du volume de stockage en dehors de Kubernetes.
  • Une annotation est ajoutée au PVC et au PV qui sert un double objectif : indiquer que le volume a été importé et si le PVC et le PV sont gérés. Cette annotation ne doit pas être modifiée ni supprimée.

Importer un volume

Vous pouvez utiliser tridentctl import importer un volume.

Étapes
  1. Créez le fichier de revendication de volume persistant (PVC) (par exemple, pvc.yaml ) qui servira à créer le PVC. Le fichier PVC doit inclure name , namespace , accessModes , et storageClassName . Vous pouvez éventuellement spécifier unixPermissions dans votre définition du PVC.

    Voici un exemple de spécification minimale :

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: my_claim
      namespace: my_namespace
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: my_storage_class
    Avertissement N'incluez pas de paramètres supplémentaires tels que le nom du PV ou la taille du volume. Cela peut entraîner l'échec de la commande d'importation.
  2. Utilisez le tridentctl import commande permettant de spécifier le nom du backend Trident contenant le volume et le nom qui identifie de manière unique le volume sur le stockage (par exemple : ONTAP FlexVol, Element Volume, chemin du Cloud Volumes Service ). Le -f Un argument est requis pour spécifier le chemin d'accès au fichier PVC.

    tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>

Exemples

Consultez les exemples d'importation de volumes suivants pour connaître les pilotes pris en charge.

ONTAP NAS et ONTAP NAS FlexGroup

Trident prend en charge l'importation de volumes via ontap-nas et ontap-nas-flexgroup conducteurs.

Remarque
  • Trident ne prend pas en charge l'importation de volume à l'aide de ontap-nas-economy conducteur.

  • Le ontap-nas et ontap-nas-flexgroup Les pilotes n'autorisent pas les noms de volume en double.

Chaque volume créé avec le ontap-nas Le pilote est un FlexVol volume sur le cluster ONTAP . Importer des volumes FlexVol avec le ontap-nas Le pilote fonctionne de la même manière. Un volume FlexVol existant déjà sur un cluster ONTAP peut être importé en tant que ontap-nas PVC. De même, les volumes FlexGroup peuvent être importés en tant que ontap-nas-flexgroup PVC.

Exemples de NAS ONTAP

L'exemple suivant illustre l'importation d'un volume géré et d'un volume non géré.

Volume géré

L'exemple suivant importe un volume nommé managed_volume sur un backend nommé ontap_nas :

tridentctl import volume ontap_nas managed_volume -f <path-to-pvc-file>

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-bf5ad463-afbb-11e9-8d9f-5254004dfdb7 | 1.0 GiB | standard      | file     | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true    |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Volume non géré

Lors de l'utilisation du --no-manage argument, Trident ne renomme pas le volume.

L'exemple suivant importe unmanaged_volume sur le ontap_nas backend :

tridentctl import volume nas_blog unmanaged_volume -f <path-to-pvc-file> --no-manage

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-df07d542-afbc-11e9-8d9f-5254004dfdb7 | 1.0 GiB | standard      | file     | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | false   |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

ONTAP SAN

Trident prend en charge l'importation de volumes à l'aide du ontap-san (iSCSI, NVMe/TCP et FC) et ontap-san-economy conducteurs.

Trident peut importer des volumes ONTAP SAN FlexVol contenant un seul LUN. Ceci est cohérent avec le ontap-san pilote, qui crée un FlexVol volume pour chaque PVC et un LUN dans le FlexVol volume. Trident importe le FlexVol volume et l'associe à la définition PVC. Trident peut importer ontap-san-economy volumes contenant plusieurs LUN.

Exemples ONTAP SAN

L'exemple suivant illustre l'importation d'un volume géré et d'un volume non géré.

Volume géré

Pour les volumes gérés, Trident renomme le FlexVol volume en pvc-<uuid> format et le LUN dans le FlexVol volume à lun0 .

L'exemple suivant importe le ontap-san-managed FlexVol volume présent sur le ontap_san_default backend :

tridentctl import volume ontapsan_san_default ontap-san-managed -f pvc-basic-import.yaml -n trident -d

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-d6ee4f54-4e40-4454-92fd-d00fc228d74a | 20 MiB | basic         | block    | cd394786-ddd5-4470-adc3-10c5ce4ca757 | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Volume non géré

L'exemple suivant importe unmanaged_example_volume sur le ontap_san backend :

tridentctl import volume -n trident san_blog unmanaged_example_volume -f pvc-import.yaml --no-manage
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-1fc999c9-ce8c-459c-82e4-ed4380a4b228 | 1.0 GiB | san-blog      | block    | e3275890-7d80-4af6-90cc-c7a0759f555a | online | false   |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

Si vous avez des LUN mappés à des igroups qui partagent un IQN avec un IQN de nœud Kubernetes, comme indiqué dans l'exemple suivant, vous recevrez l'erreur suivante : LUN already mapped to initiator(s) in this group . Vous devrez supprimer l'initiateur ou déconnecter le LUN pour importer le volume.

Image des LUN mappées sur iqn et cluster iqn.

Élément

Trident prend en charge le logiciel NetApp Element et l'importation de volumes NetApp HCI à l'aide de solidfire-san conducteur.

Remarque Le pilote Element prend en charge les noms de volumes en double. Toutefois, Trident renvoie une erreur en cas de noms de volumes en double. Pour contourner ce problème, clonez le volume, donnez-lui un nom unique, puis importez le volume cloné.
Exemple d'élément

L'exemple suivant importe un element-managed volume sur le backend element_default .

tridentctl import volume element_default element-managed -f pvc-basic-import.yaml -n trident -d

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-970ce1ca-2096-4ecd-8545-ac7edc24a8fe | 10 GiB | basic-element | block    | d3ba047a-ea0b-43f9-9c42-e38e58301c49 | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+

Plateforme Google Cloud

Trident prend en charge l'importation de volumes via gcp-cvs conducteur.

Remarque Pour importer un volume basé sur le service NetApp Cloud Volumes Service dans Google Cloud Platform, identifiez le volume par son chemin d'accès. Le chemin du volume est la portion du chemin d'exportation du volume qui suit le :/ . Par exemple, si le chemin d'exportation est 10.0.0.1:/adroit-jolly-swift , le chemin du volume est adroit-jolly-swift .
Exemple de Google Cloud Platform

L'exemple suivant importe un gcp-cvs volume sur le backend gcpcvs_YEppr avec le chemin de volume de adroit-jolly-swift .

tridentctl import volume gcpcvs_YEppr adroit-jolly-swift -f <path-to-pvc-file> -n trident

+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE  | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
| pvc-a46ccab7-44aa-4433-94b1-e47fc8c0fa55 | 93 GiB | gcp-storage   | file     | e1a6e65b-299e-4568-ad05-4f0a105c888f | online | true    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+

Azure NetApp Files

Trident prend en charge l'importation de volumes via azure-netapp-files conducteur.

Remarque Pour importer un volume Azure NetApp Files , identifiez le volume par son chemin d'accès. Le chemin du volume est la portion du chemin d'exportation du volume qui suit le :/ . Par exemple, si le chemin de montage est 10.0.0.2:/importvol1 , le chemin du volume est importvol1 .
Exemple de Azure NetApp Files

L'exemple suivant importe un azure-netapp-files volume sur le backend azurenetappfiles_40517 avec le chemin de volume importvol1 .

tridentctl import volume azurenetappfiles_40517 importvol1 -f <path-to-pvc-file> -n trident

+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
| pvc-0ee95d60-fd5c-448d-b505-b72901b3a4ab | 100 GiB | anf-storage   | file     | 1c01274f-d94b-44a3-98a3-04c953c9a51e | online | true    |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+

Google Cloud NetApp Volumes

Trident prend en charge l'importation de volumes via google-cloud-netapp-volumes conducteur.

Exemple de Google Cloud NetApp Volumes

L'exemple suivant importe un google-cloud-netapp-volumes volume sur le backend backend-tbc-gcnv1 avec le volume testvoleasiaeast1 .

tridentctl import volume backend-tbc-gcnv1 "testvoleasiaeast1" -f < path-to-pvc> -n trident

+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS        | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
| pvc-a69cda19-218c-4ca9-a941-aea05dd13dc0 |  10 GiB | gcnv-nfs-sc-identity | file     | 8c18cdf1-0770-4bc0-bcc5-c6295fe6d837 | online | true    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+

L'exemple suivant importe un google-cloud-netapp-volumes volume lorsque deux volumes sont présents dans la même région :

tridentctl import volume backend-tbc-gcnv1 "projects/123456789100/locations/asia-east1-a/volumes/testvoleasiaeast1" -f <path-to-pvc> -n trident

+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
|                   NAME                   |  SIZE   | STORAGE CLASS        | PROTOCOL |             BACKEND UUID             | STATE  | MANAGED |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
| pvc-a69cda19-218c-4ca9-a941-aea05dd13dc0 |  10 GiB | gcnv-nfs-sc-identity | file     | 8c18cdf1-0770-4bc0-bcc5-c6295fe6d837 | online | true    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+