Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Volumes importieren

Beitragende netapp-aruldeepa juliantap netapp-shwetav netapp-mwallis

Sie können vorhandene Speichervolumes als Kubernetes PV mit tridentctl import importieren oder indem Sie einen Persistent Volume Claim (PVC) mit Trident-Importannotationen erstellen.

Überblick und Überlegungen

Sie können ein Volume in Trident importieren, um:

  • Containerisierung einer Applikation und Wiederverwendung des vorhandenen Datensatzes

  • Verwenden Sie einen Klon eines Datensatzes für eine kurzlebige Applikation

  • Wiederherstellung eines fehlerhaften Kubernetes-Clusters

  • Migration von Applikationsdaten bei der Disaster Recovery

Überlegungen

Lesen Sie vor dem Importieren eines Volumes die folgenden Überlegungen durch.

  • Trident kann nur ONTAP-Volumes vom Typ RW (Lesen/Schreiben) importieren. Volumes im DP-Typ (Datensicherung) sind SnapMirror Ziel-Volumes. Sie sollten die Spiegelungsbeziehung unterbrechen, bevor Sie das Volume in Trident importieren.

  • Wir empfehlen, Volumes ohne aktive Verbindungen zu importieren. Um ein aktiv verwendetes Volume zu importieren, klonen Sie das Volume, und führen Sie dann den Import durch.

    Warnung Dies ist besonders für Block-Volumes wichtig, da Kubernetes die vorherige Verbindung nicht mitbekommt und problemlos ein aktives Volume an einen Pod anbinden kann. Dies kann zu Datenbeschädigungen führen.
  • Obwohl StorageClass auf einer PVC angegeben werden muss, verwendet Trident diesen Parameter beim Import nicht. Während der Volume-Erstellung werden Storage-Klassen eingesetzt, um basierend auf den Storage-Merkmalen aus verfügbaren Pools auszuwählen. Da das Volume bereits vorhanden ist, ist beim Import keine Poolauswahl erforderlich. Daher schlägt der Import auch dann nicht fehl, wenn das Volume auf einem Back-End oder Pool vorhanden ist, das nicht mit der in der PVC angegebenen Speicherklasse übereinstimmt.

  • Die vorhandene Volumegröße wird in der PVC ermittelt und festgelegt. Nachdem das Volumen vom Speichertreiber importiert wurde, wird das PV mit einem ClaimRef an die PVC erzeugt.

    • Die Rückgewinnungsrichtlinie ist zunächst auf festgelegt retain Im PV. Nachdem Kubernetes die PVC und das PV erfolgreich bindet, wird die Zurückgewinnungsrichtlinie aktualisiert und an die Zurückgewinnungsrichtlinie der Storage-Klasse angepasst.

    • Wenn die Richtlinie zur Zurückgewinnung der Storage-Klasse lautet delete, Das 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-manage Flag zum Importieren eines nicht verwalteten Volumes und die --no-rename Flagge, um den Datenträgernamen beizubehalten.

    • --no-manage* - Wenn Sie die --no-manage Laut dieser Meldung führt Trident während des gesamten Lebenszyklus der Objekte keine zusätzlichen Operationen an der PVC oder PV 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.

    • --no-rename* - Wenn Sie die --no-rename Mit dieser Option behält Trident beim Importieren von Volumes den bestehenden Volume-Namen bei und verwaltet den Lebenszyklus der Volumes. Diese Option wird nur für die ontap-nas , ontap-san (einschließlich ASA r2-Systeme) und ontap-san-economy Fahrer.

      Tipp Diese Optionen sind 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.
  • Der PVC und dem PV wird eine Anmerkung hinzugefügt, die einem doppelten Zweck dient, anzugeben, dass das Volumen importiert wurde und ob PVC und PV verwaltet werden. Diese Anmerkung darf nicht geändert oder entfernt werden.

Importieren Sie ein Volume

Sie können ein Volume entweder mit tridentctl import oder durch das Erstellen einer PVC mit Trident-Importanmerkungen importieren.

Hinweis Wenn Sie PVC-Anmerkungen verwenden, müssen Sie tridentctl nicht herunterladen oder verwenden, um das Volume zu importieren.
Verwendung von tridentctl
Schritte
  1. Erstellen Sie eine PVC-Datei (zum Beispiel pvc.yaml), die zur Erstellung des PVC verwendet wird. Die PVC-Datei sollte name, namespace, accessModes und storageClassName enthalten. Optional können Sie unixPermissions in Ihrer PVC-Definition angeben.

    Im Folgenden finden Sie ein Beispiel für eine Mindestspezifikation:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: my_claim
      namespace: my_namespace
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: my_storage_class
    Hinweis Geben Sie nur die erforderlichen Parameter an. Zusätzliche Parameter wie PV-Name oder Volume-Größe können dazu führen, dass der Importbefehl fehlschlägt.
  2. Verwenden Sie die tridentctl import Befehl 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). Der -f Ein Argument ist erforderlich, um den Pfad zur PVC-Datei anzugeben.

    tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
Verwendung von PVC-Anmerkungen
Schritte
  1. Erstellen Sie eine PVC-YAML-Datei (zum Beispiel pvc.yaml) mit den erforderlichen Trident-Importannotationen. Die PVC-Datei sollte Folgendes enthalten:

    • name and namespace in Metadaten

    • accessModes, resources.requests.storage, und storageClassName in Spezifikation

    • Anmerkungen:

      • trident.netapp.io/importOriginalName: Volumenname auf dem Backend

      • trident.netapp.io/importBackendUUID: Backend-UUID, wo das Volume existiert

      • trident.netapp.io/notManaged (Optional): Auf "true" für nicht verwaltete Volumes festlegen. Standardwert ist "false".

        Im Folgenden finden Sie eine Beispielspezifikation für den Import eines verwalteten Volumes:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <pvc-name>
      namespace: <namespace>
      annotations:
        trident.netapp.io/importOriginalName: "<volume-name>"
        trident.netapp.io/importBackendUUID: "<backend-uuid>"
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: <size>
      storageClassName: <storage-class-name>
  2. Wenden Sie die PVC YAML-Datei auf Ihren Kubernetes-Cluster an:

    kubectl apply -f <pvc-file>.yaml

    Trident wird das Volumen automatisch importieren und es an das PVC binden.

Beispiele

Lesen Sie die folgenden Beispiele für den Import von Volumes für unterstützte Treiber.

ONTAP NAS und ONTAP NAS FlexGroup

Trident unterstützt den Import von Volumes mit den ontap-nas Treibern und ontap-nas-flexgroup.

Hinweis
  • Trident unterstützt keinen Volumenimport mit dem ontap-nas-economy Treiber.

  • Der ontap-nas Und ontap-nas-flexgroup Treiber erlauben keine doppelten Volume-Namen.

Jedes mit dem Treiber erstellte Volume ontap-nas ist eine FlexVol volume im ONTAP Cluster. Der Import von FlexVol-Volumes mit dem ontap-nas Treiber funktioniert gleich. FlexVol Volumes, die bereits in einem ONTAP-Cluster vorhanden sind, können als PVC importiert werden ontap-nas. Ebenso können FlexGroup-Volumes als PVCs importiert werden ontap-nas-flexgroup.

ONTAP NAS-Beispiele mit tridentctl

Die folgenden Beispiele zeigen, wie verwaltete und nicht verwaltete Volumes mit tridentctl importiert werden.

Gemanagtes Volume

Im folgenden Beispiel wird ein Volume mit dem Namen importiert managed_volume Auf einem Backend mit dem Namen 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    |
+------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Nicht verwaltetes Volume

Bei Verwendung des --no-manage Arguments benennt Trident das Volume nicht um.

Das folgende Beispiel importiert unmanaged_volume Auf dem ontap_nas Back-End:

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 NAS-Beispiele mit PVC-Annotationen

Die folgenden Beispiele zeigen, wie verwaltete und nicht verwaltete Volumes mithilfe von PVC-Annotationen importiert werden.

Gemanagtes Volume

Das folgende Beispiel importiert ein 1GiB ontap-nas Volume namens ontap_volume1 vom Backend 81abcb27-ea63-49bb-b606-0a5315ac5f21 mit RWO-Zugriffsmodus, der mithilfe von PVC-Annotationen festgelegt ist:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: <managed-imported-volume>
  namespace: <namespace>
  annotations:
    trident.netapp.io/importOriginalName: "ontap_volume1"
    trident.netapp.io/importBackendUUID: "81abcb27-ea63-49bb-b606-0a5315ac5f21"
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: <storage-class-name>
Nicht verwaltetes Volume

Das folgende Beispiel importiert ein 1Gi ontap-nas Volume mit dem Namen ontap-volume2 vom Backend 34abcb27-ea63-49bb-b606-0a5315ac5f34 mit festgelegtem RWO-Zugriffsmodus mithilfe von PVC-Annotationen:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: <umanaged-imported-volume>
  namespace: <namespace>
  annotations:
    trident.netapp.io/importOriginalName: "ontap-volume2"
    trident.netapp.io/importBackendUUID: "34abcb27-ea63-49bb-b606-0a5315ac5f34"
    trident.netapp.io/notManaged: "true"
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: <storage-class-name>

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.

Die folgenden Beispiele zeigen, wie verwaltete und nicht verwaltete Volumes importiert werden:

Gemanagtes Volume

Für verwaltete Volumes benennt Trident die FlexVol volume in das Format und die LUN in der FlexVol volume in lun0 um pvc-<uuid>.

Im folgenden Beispiel werden die auf dem Backend vorhandenen FlexVol volume ontap_san_default importiert ontap-san-managed:

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    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Nicht verwaltetes Volume

Das folgende Beispiel importiert unmanaged_example_volume Auf dem ontap_san Back-End:

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 LUNS Initiatorgruppen zugeordnet sind, die einen IQN mit einem Kubernetes-Node-IQN teilen, wie im folgenden Beispiel dargestellt, erhalten Sie die Fehlermeldung: LUN already mapped to initiator(s) in this group. Sie müssen den Initiator entfernen oder die Zuordnung der LUN aufheben, um das Volume zu importieren.

Image der LUNS, die iqn und Cluster-iqn zugeordnet sind.

Element

Trident unterstützt NetApp Element-Software und NetApp HCI-Volume-Import mit dem solidfire-san Treiber.

Hinweis Der Elementtreiber unterstützt doppelte Volume-Namen. Trident gibt jedoch einen Fehler zurück, wenn es doppelte Volume-Namen gibt. Um dies zu umgehen, klonen Sie das Volume, geben Sie einen eindeutigen Volume-Namen ein und importieren Sie das geklonte Volume.

Im folgenden Beispiel wird ein importiert element-managed Volume am 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    |
+------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+

Azure NetApp Dateien

Trident unterstützt den Import von Volumes mithilfe des azure-netapp-files Treibers.

Hinweis Um ein Azure NetApp Files-Volume zu importieren, identifizieren Sie das Volume anhand seines Volume-Pfads. Der Volume-Pfad ist der Teil des Exportpfades des Volumes nach dem :/. Beispiel: Wenn der Mount-Pfad lautet 10.0.0.2:/importvol1, Der Volume-Pfad ist importvol1.

Im folgenden Beispiel wird ein importiert azure-netapp-files Volume am Backend azurenetappfiles_40517 Mit dem Volume-Pfad 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 Import von Volumes mithilfe des google-cloud-netapp-volumes Treibers.

Das folgende Beispiel importiert ein Volume auf Backend backend-tbc-gcnv1 mit dem 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    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+

Im folgenden Beispiel wird ein Volume importiert google-cloud-netapp-volumes, wenn zwei Volumes in derselben Region 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    |
+------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+