輸入量
既存のストレージボリュームをKubernetes PVとしてインポートするには、 tridentctl import 。
概要と考慮事項
ボリュームをTridentにインポートすると、次のような効果が得られます。
-
アプリケーションをコンテナ化し、既存のデータセットを再利用する
-
一時的なアプリケーションにデータセットのクローンを使用する
-
障害が発生したKubernetesクラスターを再構築する
-
災害復旧時にアプリケーションデータを移行する
ボリュームをインポートする前に、次の考慮事項を確認してください。
-
Trident はRW (読み取り/書き込み) タイプのONTAPボリュームのみをインポートできます。 DP (データ保護) タイプのボリュームは、 SnapMirror の宛先ボリュームです。ボリュームをTridentにインポートする前に、ミラー関係を解除する必要があります。
-
アクティブな接続なしでボリュームをインポートすることをお勧めします。アクティブに使用されているボリュームをインポートするには、ボリュームのクローンを作成してからインポートを実行します。
これは、Kubernetes が以前の接続を認識せず、アクティブなボリュームをポッドに簡単に接続できるため、ブロック ボリュームの場合に特に重要です。これによりデータが破損する可能性があります。 -
けれど `StorageClass`PVC で指定する必要がありますが、 Trident はインポート時にこのパラメータを使用しません。ストレージ クラスは、ボリュームの作成時に、ストレージ特性に基づいて利用可能なプールから選択するために使用されます。ボリュームは既に存在するため、インポート時にプールを選択する必要はありません。したがって、PVC で指定されたストレージ クラスと一致しないバックエンドまたはプールにボリュームが存在する場合でも、インポートは失敗しません。
-
既存のボリューム サイズが決定され、PVC に設定されます。ボリュームがストレージ ドライバーによってインポートされた後、PVC への ClaimRef を使用して PV が作成されます。
-
回収ポリシーは初期設定では `retain`PVでは。 Kubernetes が PVC と PV を正常にバインドすると、再利用ポリシーはストレージクラスの再利用ポリシーと一致するように更新されます。
-
ストレージクラスの回収ポリシーが `delete`PV が削除されると、ストレージ ボリュームも削除されます。
-
-
デフォルトでは、 Trident はPVC を管理し、バックエンドのFlexVol volumeと LUN の名前を変更します。あなたは合格することができます `--no-manage`管理されていないボリュームをインポートするためのフラグ。使用する場合 `--no-manage`Trident は、オブジェクトのライフサイクル中に PVC または PV に対して追加の操作を実行しません。 PV が削除されてもストレージ ボリュームは削除されず、ボリュームのクローンやボリュームのサイズ変更などの他の操作も無視されます。
このオプションは、コンテナ化されたワークロードに Kubernetes を使用するが、それ以外の場合は Kubernetes の外部でストレージ ボリュームのライフサイクルを管理する場合に役立ちます。 -
PVC と PV に注釈が追加されます。注釈には、ボリュームがインポートされたことと、PVC と PV が管理されているかどうかを示すという 2 つの目的があります。この注釈は変更または削除しないでください。
ボリュームをインポートする
使用できます `tridentctl import`ボリュームをインポートします。
-
永続ボリュームクレーム(PVC)ファイルを作成します(例:
pvc.yaml) は、PVC の作成に使用されます。 PVCファイルには以下を含める必要がありますname、namespace、accessModes、 そしてstorageClassName。オプションで指定できます `unixPermissions`PVC 定義では。以下は最小仕様の例です。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my_claim namespace: my_namespace spec: accessModes: - ReadWriteOnce storageClassName: my_storage_classPV 名やボリューム サイズなどの追加パラメータを含めないでください。これにより、インポート コマンドが失敗する可能性があります。 -
使用 `tridentctl import`ボリュームを含むTridentバックエンドの名前と、ストレージ上のボリュームを一意に識別する名前 (例: ONTAP FlexVol、Element Volume、 Cloud Volumes Serviceパス) を指定するコマンド。その `-f`PVC ファイルへのパスを指定するには引数が必要です。
tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
例
サポートされているドライバーについては、次のボリューム インポート例を確認してください。
ONTAP NAS およびONTAP NAS FlexGroup
Tridentはボリュームインポートをサポートしており、 `ontap-nas`そして `ontap-nas-flexgroup`ドライバー。
|
|
|
各ボリュームは、 ontap-nas`ドライバーは、 ONTAPクラスタ上のFlexVol volumeです。 FlexVolボリュームをインポートするには `ontap-nas`ドライバーは同じように動作します。 ONTAPクラスタにすでに存在するFlexVolボリュームは、 `ontap-nas PVC。同様に、 FlexGroupボリュームは次のようにインポートできます。 ontap-nas-flexgroup PVC。
以下に、管理対象ボリュームと管理対象外ボリュームのインポートの例を示します。
次の例では、 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`引数が指定されていない場合、 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
ONTAP SAN
Tridentはボリュームインポートをサポートしており、 ontap-san (iSCSI、NVMe/TCP、FC)および ontap-san-economy ドライバー。
Trident は、単一の LUN を含むONTAP SAN FlexVolボリュームをインポートできます。これは、 ontap-san ドライバは、各 PVC に対してFlexVol volumeを作成し、 FlexVol volume内に LUN を作成します。Trident はFlexVol volumeをインポートし、それを PVC 定義に関連付けます。Tridentは輸入できる ontap-san-economy 複数の LUN を含むボリューム。
以下に、管理対象ボリュームと管理対象外ボリュームのインポートの例を示します。
管理対象ボリュームの場合、 TridentはFlexVol volumeの名前を pvc-<uuid>`FlexVol volume内のフォーマットとLUNを `lun0。
次の例では、 ontap-san-managed FlexVol volumeは、 `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 のマップを解除する必要があります。

要素
TridentはNetApp ElementソフトウェアとNetApp HCIボリュームのインポートをサポートしています。 `solidfire-san`ドライバ。
|
|
Element ドライバーは重複したボリューム名をサポートします。ただし、ボリューム名が重複している場合、 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
Tridentはボリュームインポートをサポートしており、 `gcp-cvs`ドライバ。
|
|
Google Cloud Platform でNetApp Cloud Volumes Serviceによってバックアップされたボリュームをインポートするには、ボリューム パスでボリュームを識別します。ボリュームパスは、ボリュームのエクスポートパスの :/。たとえば、エクスポートパスが 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
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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
Google Cloud NetApp Volumes
Tridentはボリュームインポートをサポートしており、 `google-cloud-netapp-volumes`ドライバ。
次の例では、 google-cloud-netapp-volumes`バックエンドのボリューム `backend-tbc-gcnv1`ボリュームとともに `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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+
次の例では、 `google-cloud-netapp-volumes`同じリージョンに 2 つのボリュームが存在する場合のボリューム:
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 | +------------------------------------------+---------+----------------------+----------+--------------------------------------+--------+---------+