Volumes importieren
Sie können vorhandene Storage-Volumes mit importieren tridentctl import
.
Überblick und Überlegungen
Ein Volume kann in Astra Trident importiert werden, 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
Lesen Sie vor dem Importieren eines Volumes die folgenden Überlegungen durch.
-
Astra Trident kann nur ONTAP Volumes vom Typ RW (Lese-/Schreibzugriff) importieren. Volumes im DP-Typ (Datensicherung) sind SnapMirror Ziel-Volumes. Sie sollten die Spiegelungsbeziehung unterbrechen, bevor Sie das Volume in Astra 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.
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 Astra 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 Zurückgewinnungsrichtlinie ist zunächst im PV auf festgelegt
retain
. 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 Zurückgewinnungsrichtlinie der Speicherklasse lautet
delete
, wird das Speichervolume gelöscht, wenn das PV gelöscht wird.
-
-
Astra Trident verwaltet standardmäßig die PVC und benennt die FlexVol und die LUN auf dem Backend um. Sie können das Flag übergeben
--no-manage
, um ein nicht verwaltetes Volume zu importieren. Wenn Sie verwenden--no-manage
, führt Astra Trident keine zusätzlichen Operationen auf der PVC oder PV für den Lebenszyklus der Objekte aus. Das Speicher-Volume wird nicht gelöscht, wenn das PV gelöscht wird und andere Vorgänge wie Volume-Klon und Volume-Größe ebenfalls ignoriert werden.Diese Option ist nützlich, wenn Sie Kubernetes für Workloads in Containern verwenden möchten, aber ansonsten den Lebenszyklus des Storage Volumes außerhalb von Kubernetes managen 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 zum Importieren eines Volumes verwenden tridentctl import
.
-
Erstellen Sie die PVC-Datei (Persistent Volume Claim) (z. B.
pvc.yaml
), die zum Erstellen der PVC verwendet wird. Die PVC-Datei sollte , ,namespace
accessModes
undstorageClassName
enthaltenname
. Optional können Sie in Ihrer PVC-Definition angebenunixPermissions
.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
Verwenden Sie keine zusätzlichen Parameter wie den PV-Namen oder die Volume-Größe. Dies kann dazu führen, dass der Importbefehl fehlschlägt. -
Verwenden Sie den
tridentctl import
Befehl, um den Namen des Astra Trident-Backends anzugeben, das das Volume enthält, sowie den Namen, der das Volume im Storage eindeutig identifiziert (z. B. ONTAP FlexVol, Element Volume oder Cloud Volumes Service-Pfad). Das-f
Argument ist erforderlich, um den Pfad zur PVC-Datei anzugeben.tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
Beispiele
Lesen Sie die folgenden Beispiele für den Import von Volumes für unterstützte Treiber.
ONTAP NAS und ONTAP NAS FlexGroup
Astra Trident unterstützt den Volume-Import mithilfe der ontap-nas
Treiber und ontap-nas-flexgroup
.
|
Jedes mit dem Treiber erstellte Volume ontap-nas
ist eine FlexVol im ONTAP Cluster. Das Importieren von FlexVols mit dem ontap-nas
Treiber funktioniert gleich. Eine FlexVol, die bereits in einem ONTAP-Cluster vorhanden ist, kann als PVC importiert werden ontap-nas
. Ebenso können FlexGroup-Volumes als PVCs importiert werden ontap-nas-flexgroup
.
Die folgende Darstellung zeigt ein Beispiel für ein verwaltetes Volume und einen nicht verwalteten Volume-Import.
Das folgende Beispiel importiert ein Volume mit dem Namen 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Bei Verwendung des --no-manage
Arguments benennt Astra Trident das Volume nicht um.
Im folgenden Beispiel werden Importe auf das ontap_nas
Backend importiert unmanaged_volume
:
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
Astra Trident unterstützt den Volume-Import mithilfe des ontap-san
Treibers. Der Import von Volumes wird mit dem Treiber nicht unterstützt ontap-san-economy
.
Astra Trident kann ONTAP SAN FlexVols importieren, die eine einzige LUN enthalten. Dies ist mit dem Treiber konsistent ontap-san
, der für jede PVC und eine LUN in der FlexVol eine FlexVol erstellt. Astra Trident importiert die FlexVol und ordnet sie der PVC-Definition zu.
Die folgende Darstellung zeigt ein Beispiel für ein verwaltetes Volume und einen nicht verwalteten Volume-Import.
Für gemanagte Volumes benennt Astra Trident die FlexVol in das Format und die LUN in der FlexVol in lun0
um pvc-<uuid>
.
Im folgenden Beispiel werden die auf dem Backend vorhandenen FlexVol 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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
Im folgenden Beispiel werden Importe auf das ontap_san
Backend importiert unmanaged_example_volume
:
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.
Element
Astra Trident unterstützt die NetApp Element-Software sowie den NetApp HCI-Volume-Import über den solidfire-san
Treiber.
Der Elementtreiber unterstützt doppelte Volume-Namen. Astra 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. |
Das folgende Beispiel importiert ein element-managed
Volume auf dem 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
Astra Trident unterstützt den Volume-Import mithilfe des gcp-cvs
Treibers.
Um ein Volume zu importieren, das von NetApp Cloud Volumes Service in die Google Cloud Platform unterstützt wird, identifizieren Sie das Volume anhand seines Volume-Pfads. Der Volumenpfad ist der Teil des Exportpfades des Volumes nach dem :/ . Wenn der Exportpfad beispielsweise lautet 10.0.0.1:/adroit-jolly-swift , ist der Volumenpfad adroit-jolly-swift .
|
Im folgenden Beispiel wird ein Volume auf dem Backend gcpcvs_YEppr
mit dem Volume-Pfad von adroit-jolly-swift
importiert gcp-cvs
.
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 Dateien
Astra Trident unterstützt den Volume-Import mithilfe des azure-netapp-files
Treibers.
Um ein Azure NetApp Files-Volume zu importieren, identifizieren Sie das Volume anhand seines Volume-Pfads. Der Volumenpfad ist der Teil des Exportpfades des Volumes nach dem :/ . Wenn der Mount-Pfad beispielsweise lautet 10.0.0.2:/importvol1 , ist der Volume-Pfad importvol1 .
|
Das folgende Beispiel importiert ein azure-netapp-files
Volume auf dem 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+