volumes d'importation
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
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.
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
StorageClassCe 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
retaindans 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
deleteLe 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-manageIndiquez si vous souhaitez importer un volume non géré. Si vous utilisez--no-manageTrident 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.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.
-
Créez le fichier de revendication de volume persistant (PVC) (par exemple,
pvc.yaml) qui servira à créer le PVC. Le fichier PVC doit inclurename,namespace,accessModes, etstorageClassName. Vous pouvez éventuellement spécifierunixPermissionsdans 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_classN'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. -
Utilisez le
tridentctl importcommande 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-fUn 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.
|
|
|
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.
L'exemple suivant illustre l'importation d'un volume géré et d'un volume non 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
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.
L'exemple suivant illustre l'importation d'un volume géré et d'un volume non 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
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.

Élément
Trident prend en charge le logiciel NetApp Element et l'importation de volumes NetApp HCI à l'aide de solidfire-san conducteur.
|
|
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é. |
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.
|
|
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 .
|
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.
|
|
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 .
|
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.
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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+