ボリュームをインポート
tridentctl import を使用するか、または Trident インポートアノテーションを使用して Persistent Volume Claim(PVC)を作成することで、既存のストレージボリュームを Kubernetes PV としてインポートできます。
概要と考慮事項
Astra Tridentにボリュームをインポートすると、次のことが可能になります。
-
アプリケーションをコンテナ化し、既存のデータセットを再利用する
-
一時的なアプリケーションにはデータセットのクローンを使用
-
障害が発生したKubernetesクラスタを再構築します
-
ディザスタリカバリ時にアプリケーションデータを移行
ボリュームをインポートする前に、次の考慮事項を確認してください。
-
Astra TridentでインポートできるのはRW(読み取り/書き込み)タイプのONTAPボリュームのみです。DP(データ保護)タイプのボリュームはSnapMirrorデスティネーションボリュームです。ボリュームをAstra Tridentにインポートする前に、ミラー関係を解除する必要があります。
-
アクティブな接続がないボリュームをインポートすることを推奨します。アクティブに使用されているボリュームをインポートするには、ボリュームのクローンを作成してからインポートを実行します。
Kubernetesは以前の接続を認識せず、アクティブなボリュームをポッドに簡単に接続できるため、これはブロックボリュームで特に重要です。その結果、データが破損する可能性があります。 -
でもね
StorageClassPVCに対して指定する必要があります。Astra Tridentはインポート時にこのパラメータを使用しません。ストレージクラスは、ボリュームの作成時に、ストレージ特性に基づいて使用可能なプールから選択するために使用されます。ボリュームはすでに存在するため、インポート時にプールを選択する必要はありません。そのため、PVCで指定されたストレージクラスと一致しないバックエンドまたはプールにボリュームが存在してもインポートは失敗しません。 -
既存のボリュームサイズはPVCで決定され、設定されます。ストレージドライバによってボリュームがインポートされると、 PV は ClaimRef を使用して PVC に作成されます。
-
再利用ポリシーは、最初にににに設定されています
retainPVにあります。Kubernetes が PVC と PV を正常にバインドすると、再利用ポリシーがストレージクラスの再利用ポリシーに合わせて更新されます。 -
ストレージクラスの再利用ポリシーがの場合 `delete`にすると、PVが削除されるとストレージボリュームが削除されます。
-
-
デフォルトでは、Astra TridentがPVCを管理し、バックエンドでFlexVolとLUNの名前を変更します。を渡すことができます
--no-manage管理対象外のボリュームをインポートするフラグ。を使用する場合 `--no-manage`Astra Tridentは、オブジェクトのライフサイクルを通じてPVCやPVに対して追加の処理を実行することはありません。PVが削除されてもストレージボリュームは削除されず、ボリュームのクローンやボリュームのサイズ変更などのその他の処理も無視されます。このオプションは、コンテナ化されたワークロードに Kubernetes を使用するが、 Kubernetes 以外でストレージボリュームのライフサイクルを管理する場合に便利です。 -
PVC と PV にアノテーションが追加されます。このアノテーションは、ボリュームがインポートされたこと、および PVC と PV が管理されていることを示す二重の目的を果たします。このアノテーションは変更または削除しないでください。
ボリュームをインポートします
`tridentctl import`を使用するか、Tridentインポートアノテーションを使用してPVCを作成することで、ボリュームをインポートできます。
|
|
PVC アノテーションを使用する場合は、 `tridentctl`をダウンロードしたり使用してボリュームをインポートしたりする必要はありません。 |
-
PVCを作成するために使用するPVCファイル(例:
pvc.yaml)を作成します。PVCファイルにはname、namespace、accessModes、および `storageClassName`を含める必要があります。必要に応じて、PVC定義で `unixPermissions`を指定することもできます。最小仕様の例を次に示します。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my_claim namespace: my_namespace spec: accessModes: - ReadWriteOnce storageClassName: my_storage_class必須パラメータのみを入力してください。PV名やボリュームサイズなどの追加パラメータは、インポートコマンドの失敗の原因となる可能性があります。 -
を使用します
tridentctl importコマンドを使用して、ボリュームを含むAstra Tridentバックエンドの名前と、ストレージ上のボリュームを一意に識別する名前(ONTAP FlexVol、Elementボリューム、Cloud Volumes Serviceパスなど)を指定します。。-fPVCファイルへのパスを指定するには、引数が必要です。tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
-
必要なTridentインポートアノテーションを含むPVC YAMLファイル(例:
pvc.yaml)を作成します。PVCファイルには以下を含める必要があります:-
`name`および `namespace`メタデータ内
-
accessModes、resources.requests.storage、および `storageClassName`仕様 -
注釈:
-
trident.netapp.io/importOriginalName:バックエンドのボリューム名 -
trident.netapp.io/importBackendUUID:ボリュームが存在するバックエンドUUID -
trident.netapp.io/notManaged(オプション):管理されていないボリュームの場合は `"true"`に設定します。デフォルトは `"false"`です。以下は、管理対象ボリュームをインポートするための仕様例です:
-
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> -
-
PVC YAML ファイルを Kubernetes クラスターに適用します:
kubectl apply -f <pvc-file>.yaml
Trident はボリュームを自動的にインポートし、PVC にバインドします。
例
サポートされているドライバについて、次のボリュームインポートの例を確認してください。
ONTAP NASおよびONTAP NAS FlexGroup
Astra Tridentでは、を使用したボリュームインポートがサポートされます ontap-nas および ontap-nas-flexgroup ドライバ。
|
|
|
を使用して作成した各ボリューム ontap-nas driverはONTAP クラスタ上のFlexVol です。を使用してFlexVolをインポートする ontap-nas ドライバも同じように動作します。ONTAP クラスタにすでに存在するFlexVol は、としてインポートできます ontap-nas PVC。同様に、FlexGroup ボリュームはとしてインポートできます ontap-nas-flexgroup PVC
次の例は、 `tridentctl`を使用して管理対象ボリュームと管理対象外ボリュームをインポートする方法を示しています。
次の例は、という名前のボリュームをインポートします managed_volume という名前のバックエンドで 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
を使用する場合 --no-manage 引数に指定します。Astra Tridentはボリュームの名前を変更しません。
次に、をインポートする例を示します unmanaged_volume をクリックします ontap_nas バックエンド:
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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
次の例は、PVC アノテーションを使用して管理対象ボリュームと管理対象外ボリュームをインポートする方法を示しています。
次の例では、PVC アノテーションを使用して RWO アクセス モードが設定された、 `81abcb27-ea63-49bb-b606-0a5315ac5f21`から `ontap_volume1`という名前の `ontap-nas`ボリュームをインポートします:
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>
次の例では、PVC アノテーションを使用して RWO アクセス モードが設定された、バックエンド 34abcb27-ea63-49bb-b606-0a5315ac5f34`からという名前 `ontap-volume2`の 1Gi `ontap-nas ボリュームをインポートします:
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
Astra Tridentでは、を使用したボリュームインポートがサポートされます ontap-san ドライバ。を使用したボリュームインポートはサポートされていません ontap-san-economy ドライバ。
Astra Tridentでは、単一のLUNを含むONTAP SAN FlexVolをインポートできます。これはと同じです ontap-san ドライバ。FlexVol 内の各PVCおよびLUNにFlexVol を作成します。Astra TridentがFlexVolをインポートし、PVCの定義に関連付けます。
次の例は、管理対象ボリュームと管理対象外ボリュームのインポートを示しています。
管理対象ボリュームの場合、Astra TridentはFlexVolの名前をに変更します pvc-<uuid> およびFlexVol 内のLUNをからにフォーマットします lun0。
次の例は、をインポートします ontap-san-managed にあるFlexVol ontap_san_default バックエンド:
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 | +------------------------------------------+--------+---------------+----------+--------------------------------------+--------+---------+
次に、をインポートする例を示します unmanaged_example_volume をクリックします ontap_san バックエンド:
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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
次の例に示すように、KubernetesノードのIQNとIQNを共有するigroupにLUNをマッピングすると、エラーが表示されます。 LUN already mapped to initiator(s) in this group。ボリュームをインポートするには、イニシエータを削除するか、LUNのマッピングを解除する必要があります。

要素( Element )
Astra Tridentでは、を使用したNetApp ElementソフトウェアとNetApp HCIボリュームのインポートがサポートされます solidfire-san ドライバ。
|
|
Element ドライバではボリューム名の重複がサポートされます。ただし、ボリューム名が重複している場合はAstra Tridentからエラーが返されます。回避策としてボリュームをクローニングし、一意のボリューム名を指定して、クローンボリュームをインポートします。 |
次に、をインポートする例を示します element-managed バックエンドのボリューム 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 の 1 つです
Astra Tridentでは、を使用したボリュームインポートがサポートされます gcp-cvs ドライバ。
|
|
NetApp Cloud Volumes Serviceから作成されたボリュームをGoogle Cloud Platformにインポートするには、ボリュームパスでボリュームを特定します。ボリュームパスは、ボリュームのエクスポートパスののに続く部分です :/。たとえば、エクスポートパスがの場合などです 10.0.0.1:/adroit-jolly-swift、ボリュームのパスはです adroit-jolly-swift。
|
次に、をインポートする例を示します gcp-cvs バックエンドのボリューム gcpcvs_YEppr を指定します 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 の特長
Astra Tridentでは、を使用したボリュームインポートがサポートされます azure-netapp-files ドライバ。
|
|
Azure NetApp Filesボリュームをインポートするには、ボリュームパスでボリュームを特定します。ボリュームパスは、ボリュームのエクスポートパスののに続く部分です :/。たとえば、マウントパスがの場合などです 10.0.0.2:/importvol1、ボリュームのパスはです importvol1。
|
次に、をインポートする例を示します azure-netapp-files バックエンドのボリューム azurenetappfiles_40517 を指定します 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+