Importmengen
Sie können vorhandene Speichervolumes als Kubernetes PV importieren, indem Sie tridentctl import .
Überblick und Überlegungen
Sie könnten beispielsweise ein Volume in Trident importieren, um:
-
Eine Anwendung containerisieren und ihren vorhandenen Datensatz wiederverwenden
-
Verwenden Sie eine Kopie eines Datensatzes für eine kurzlebige Anwendung.
-
Einen ausgefallenen Kubernetes-Cluster wiederherstellen
-
Anwendungsdaten während der Notfallwiederherstellung migrieren
Bevor Sie ein Volume importieren, beachten Sie bitte die folgenden Hinweise.
-
Trident kann nur ONTAP -Volumes vom Typ RW (Read-Write) importieren. DP-Volumes (Datenschutz-Volumes) sind SnapMirror Zielvolumes. Sie sollten die Spiegelungsbeziehung aufheben, bevor Sie das Volume in Trident importieren.
-
Wir empfehlen, Volumes ohne aktive Verbindungen zu importieren. Um ein aktiv genutztes Volume zu importieren, klonen Sie das Volume und führen Sie anschließend den Import durch.
Dies ist besonders wichtig für Block-Volumes, da Kubernetes die vorherige Verbindung nicht erkennen würde und leicht ein aktives Volume an einen Pod anhängen könnte. Dies kann zu Datenbeschädigung führen. -
Obwohl
StorageClassmuss auf einem PVC angegeben werden, Trident verwendet diesen Parameter beim Import nicht. Speicherklassen werden bei der Erstellung von Volumes verwendet, um anhand der Speichereigenschaften aus den verfügbaren Pools auszuwählen. Da das Volume bereits existiert, ist während des Imports keine Poolauswahl erforderlich. Daher schlägt der Import auch dann nicht fehl, wenn sich das Volume auf einem Backend oder Pool befindet, der nicht der im PVC angegebenen Speicherklasse entspricht. -
Das vorhandene Volumen wird ermittelt und im PVC festgelegt. Nachdem das Volume vom Speichertreiber importiert wurde, wird das PV mit einem ClaimRef zum PVC erstellt.
-
Die Rückforderungsrichtlinie ist anfänglich so eingestellt, dass
retainim PV. Nachdem Kubernetes PVC und PV erfolgreich gebunden hat, wird die Rückgewinnungsrichtlinie aktualisiert, um der Rückgewinnungsrichtlinie der Speicherklasse zu entsprechen. -
Wenn die Rückgewinnungsrichtlinie der Speicherklasse lautet
deleteDas Speichervolumen wird gelöscht, wenn das PV gelöscht wird.
-
-
Standardmäßig verwaltet Trident die PVC und benennt das FlexVol volume und die LUN im Backend um. Du kannst die
--no-manageFlag zum Importieren eines nicht verwalteten Volumes. Wenn Sie--no-manageTrident führt während des gesamten Lebenszyklus der Objekte keine zusätzlichen Bearbeitungsschritte an den PVC- oder PV-Materialien durch. Das Speichervolume wird beim Löschen des PV nicht gelöscht, und auch andere Operationen wie das Klonen von Volumes und das Ändern der Volume-Größe werden ignoriert.Diese Option ist nützlich, wenn Sie Kubernetes für containerisierte Workloads verwenden möchten, ansonsten aber den Lebenszyklus des Speichervolumens außerhalb von Kubernetes verwalten möchten. -
Dem PVC und PV wird eine Anmerkung hinzugefügt, die einen doppelten Zweck erfüllt: Sie gibt an, dass das Volumen importiert wurde und ob PVC und PV verwaltet werden. Diese Anmerkung darf nicht verändert oder entfernt werden.
Importieren Sie ein Volume
Sie können verwenden tridentctl import ein Volume importieren.
-
Erstellen Sie die Persistent Volume Claim (PVC)-Datei (zum Beispiel,
pvc.yaml) das zur Herstellung des PVC verwendet wird. Die PVC-Datei sollte Folgendes enthalten:name,namespace,accessModes, UndstorageClassName. Optional können Sie Folgendes angebenunixPermissionsin Ihrer PVC-Definition.Nachfolgend ein Beispiel für eine Mindestanforderung:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my_claim namespace: my_namespace spec: accessModes: - ReadWriteOnce storageClassName: my_storage_classFügen Sie keine zusätzlichen Parameter wie PV-Name oder Volumengröße hinzu. Dies kann dazu führen, dass der Importbefehl fehlschlägt. -
Verwenden Sie die
tridentctl importBefehl zur Angabe des Namens des Trident -Backends, das das Volume enthält, und des Namens, der das Volume auf dem Speicher eindeutig identifiziert (z. B. ONTAP FlexVol, Element Volume, Cloud Volumes Service -Pfad). Der-fEin Argument ist erforderlich, um den Pfad zur PVC-Datei anzugeben.tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
Beispiele
Prüfen Sie die folgenden Beispiele für den Volumenimport auf unterstützte Treiber.
ONTAP NAS und ONTAP NAS FlexGroup
Trident unterstützt den Volumenimport über die ontap-nas Und ontap-nas-flexgroup Fahrer.
|
|
|
Jeder mit dem ontap-nas Der Treiber ist ein FlexVol volume auf dem ONTAP Cluster. Importieren von FlexVol -Volumes mit dem ontap-nas Der Treiber funktioniert genauso. Ein FlexVol -Volume, das bereits auf einem ONTAP Cluster vorhanden ist, kann als importiert werden ontap-nas PVC. In ähnlicher Weise können FlexGroup Volumes importiert werden als ontap-nas-flexgroup PVCs.
Nachfolgend werden Beispiele für den Import eines verwalteten und eines nicht verwalteten Volumes gezeigt.
Das folgende Beispiel importiert ein Volume mit dem Namen managed_volume auf einem Backend namens 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Bei der Verwendung des --no-manage Argument: Trident benennt das Volume nicht um.
Das folgende Beispiel importiert unmanaged_volume auf der 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 unterstützt den Volumenimport mithilfe der ontap-san (iSCSI, NVMe/TCP und FC) und ontap-san-economy Treiber.
Trident kann ONTAP SAN FlexVol -Volumes importieren, die eine einzelne LUN enthalten. Dies steht im Einklang mit der ontap-san Treiber, der für jedes PVC ein FlexVol volume und eine LUN innerhalb des FlexVol volume erstellt. Trident importiert das FlexVol volume und verknüpft es mit der PVC-Definition. Trident kann importieren ontap-san-economy Volumes, die mehrere LUNs enthalten.
Nachfolgend werden Beispiele für den Import eines verwalteten und eines nicht verwalteten Volumes gezeigt.
Bei verwalteten Volumes benennt Trident das FlexVol volume um in pvc-<uuid> Format und die LUN innerhalb des FlexVol volume zu lun0 .
Das folgende Beispiel importiert die ontap-san-managed FlexVol volume, die auf dem 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Das folgende Beispiel importiert unmanaged_example_volume auf der 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Wenn Sie LUNs Igroups zugeordnet haben, die einen IQN mit einem Kubernetes-Knoten-IQN teilen, wie im folgenden Beispiel gezeigt, erhalten Sie die Fehlermeldung: LUN already mapped to initiator(s) in this group . Sie müssen den Initiator entfernen oder die LUN-Zuordnung aufheben, um das Volume importieren zu können.

Element
Trident unterstützt die NetApp Element Software und den NetApp HCI Volume-Import mithilfe von solidfire-san Treiber.
|
|
Der Element-Treiber unterstützt doppelte Datenträgernamen. Trident gibt jedoch eine Fehlermeldung aus, wenn doppelte Datenträgernamen vorhanden sind. Als Ausweichlösung können Sie das Volume klonen, einen eindeutigen Volume-Namen vergeben und das geklonte Volume importieren. |
Das folgende Beispiel importiert ein element-managed Lautstärke im 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Google Cloud Platform
Trident unterstützt den Volumenimport über die gcp-cvs Treiber.
|
|
Um ein vom NetApp Cloud Volumes Service unterstütztes Volume in die Google Cloud Platform zu importieren, identifizieren Sie das Volume anhand seines Volume-Pfads. Der Volume-Pfad ist der Teil des Exportpfads des Volumes nach dem :/ . Wenn beispielsweise der Exportpfad lautet 10.0.0.1:/adroit-jolly-swift Der Volumenpfad ist adroit-jolly-swift .
|
Das folgende Beispiel importiert ein gcp-cvs Lautstärke im Backend gcpcvs_YEppr mit dem Volumenpfad von 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 unterstützt den Volumenimport über die azure-netapp-files Treiber.
|
|
Um ein Azure NetApp Files Volume zu importieren, identifizieren Sie das Volume anhand seines Volume-Pfads. Der Volume-Pfad ist der Teil des Exportpfads des Volumes nach dem :/ . Wenn beispielsweise der Mount-Pfad lautet 10.0.0.2:/importvol1 Der Volumenpfad ist importvol1 .
|
Das folgende Beispiel importiert ein azure-netapp-files Lautstärke im Backend azurenetappfiles_40517 mit dem Volumenpfad 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 unterstützt den Volumenimport über die google-cloud-netapp-volumes Treiber.
Das folgende Beispiel importiert ein google-cloud-netapp-volumes Lautstärke im Backend backend-tbc-gcnv1 mit dem Volumen 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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
Das folgende Beispiel importiert ein google-cloud-netapp-volumes Volumen, wenn zwei Volumina im selben Bereich vorhanden sind:
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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+