匯入磁碟區
您可以使用 `tridentctl import`或透過使用 Trident 匯入註解建立持久性磁碟區宣告(PVC),將現有儲存磁碟區匯入為 Kubernetes PV。
總覽與考量
您可以將磁碟區匯入 Astra Trident 、以便:
-
將應用程式容器化、並重新使用其現有的資料集
-
針對臨時應用程式使用資料集的複本
-
重建故障的 Kubernetes 叢集
-
在災難恢復期間移轉應用程式資料
匯入 Volume 之前、請先檢閱下列考量事項。
-
Astra Trident 只能匯入 RW (讀寫)類型的 ONTAP Volume 。DP (資料保護)類型磁碟區是 SnapMirror 目的地磁碟區。您應該先中斷鏡射關係、再將 Volume 匯入 Astra Trident 。
-
我們建議您在沒有作用中連線的情況下匯入磁碟區。若要匯入使用中的 Volume 、請複製該 Volume 、然後執行匯入。
這對區塊磁碟區特別重要、因為 Kubernetes 不會知道先前的連線、而且很容易將作用中的磁碟區附加到 Pod 。這可能導致資料毀損。 -
雖然 `StorageClass`必須在 PVC 上指定、 Astra Trident 在匯入期間不會使用此參數。建立磁碟區時會使用儲存類別、根據儲存特性從可用的集區中選取。由於該磁碟區已經存在、因此在匯入期間不需要選取任何集區。因此、即使磁碟區存在於與 PVC 中指定的儲存類別不相符的後端或集區、匯入也不會失敗。
-
現有的 Volume 大小是在 PVC 中決定和設定的。儲存驅動程式匯入磁碟區之後、PV會以PVc的ClaimRef建立。
-
回收原則一開始會在 PV 中設定為
retain。Kubernetes成功繫結了PVc和PV之後、系統會更新回收原則以符合儲存類別的回收原則。 -
如果儲存類別的回收原則為、則 `delete`刪除 PV 時、儲存磁碟區將會刪除。
-
-
根據預設、 Astra Trident 會管理 PVC 、並重新命名後端上的 FlexVol 和 LUN 。您可以傳遞
--no-manage`旗標來匯入未受管理的磁碟區。如果您使用 `--no-manage、 Astra Trident 在物件生命週期內不會在 PVC 或 PV 上執行任何其他作業。刪除 PV 時不會刪除儲存磁碟區、也會忽略其他操作、例如 Volume Clone 和 Volume resize 。如果您想要將Kubernetes用於容器化工作負載、但想要管理Kubernetes以外儲存磁碟區的生命週期、則此選項非常實用。 -
將註釋新增至PVc和PV、這有兩種用途、表示已匯入磁碟區、以及是否管理了PVc和PV。不應修改或移除此附註。
匯入 Volume
您可以使用 tridentctl import 或透過建立具有 Trident 匯入註解的 PVC 來匯入磁碟區。
|
|
如果使用 PVC 註釋,則無需下載或使用 `tridentctl`匯入磁碟區。 |
-
建立 PVC 檔案(例如
pvc.yaml),用於建立 PVC。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 Volume 、 Cloud Volumes Service 路徑)。 `-f`需要引數來指定 PVC 檔案的路徑。
tridentctl import volume <backendName> <volumeName> -f <path-to-pvc-file>
-
建立一個 PVC YAML 檔案(例如,
pvc.yaml),其中包含所需的 Trident 匯入註解。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。
範例
請參閱下列 Volume 匯入範例、瞭解支援的驅動程式。
ONTAP NAS 和 ONTAP NAS FlexGroup
Astra Trident 支援使用和 ontap-nas-flexgroup`驅動程式進行 Volume 匯入 `ontap-nas。
|
|
|
使用驅動程式建立的每個磁碟區都 ontap-nas`是 ONTAP 叢集上的 FlexVol 。使用驅動程式匯入 FlexVols 的 `ontap-nas`運作方式相同。ONTAP 叢集上已存在的 FlexVol 可以匯入為 `ontap-nas PVC 。同樣地、 FlexGroup Vols 也可以匯入為 ontap-nas-flexgroup PVCS 。
以下範例展示如何使用 `tridentctl`匯入託管磁碟區和非託管磁碟區。
以下範例會匯入在名為的後端上 ontap_nas`命名的 Volume `managed_volume :
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 不會重新命名 Volume 。
下列範例會匯入 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 註解匯入託管和非託管磁碟區。
以下範例從後端 81abcb27-ea63-49bb-b606-0a5315ac5f21`匯入一個名為 `ontap_volume1`的 1GiB `ontap-nas 磁碟區,並使用 PVC 註解設定了 RWO 存取模式:
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>
以下範例從後端 34abcb27-ea63-49bb-b606-0a5315ac5f34`匯入名為 `ontap-volume2`的 1Gi `ontap-nas 磁碟區,並使用 PVC 註解設定 RWO 存取模式:
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>
SAN ONTAP
Astra Trident 支援使用驅動程式進行 Volume 匯入 ontap-san。磁碟區匯入不支援使用 `ontap-san-economy`驅動程式。
Astra Trident 可以匯入包含單一 LUN 的 ONTAP SAN FlexVols 。這與驅動程式一致 ontap-san、可為 FlexVol 中的每個 PVC 和 LUN 建立 FlexVol 。Astra Trident 會匯入 FlexVol 、並將其與 PVC 定義相關聯。
以下範例展示如何匯入託管和非託管磁碟區:
對於託管卷, Astra Trident 將 FlexVol 重命名爲格式,並將 FlexVol 中的 LUN lun0 重命名爲 pvc-<uuid>。
下列範例會匯入 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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+
如果 LUN 對應至與 Kubernetes 節點 IQN 共用 IQN 的 igroup 、則會收到錯誤訊息: LUN already mapped to initiator(s) in this group。您需要移除啟動器或取消對應 LUN 、才能匯入磁碟區。

元素
Astra Trident 支援使用驅動程式的 NetApp Element 軟體和 NetApp HCI Volume 匯入 solidfire-san。
|
|
Element驅動程式支援重複的Volume名稱。不過、如果有重複的磁碟區名稱、 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
Astra Trident 支援使用驅動程式進行 Volume 匯入 gcp-cvs。
|
|
若要在 Google Cloud Platform 中匯入以 NetApp Cloud Volumes Service 為後盾的 Volume 、請依其 Volume 路徑識別該 Volume 。Volume 路徑是磁碟區匯出路徑的一部分、位於之後 :/。例如,如果匯出路徑為,則 10.0.0.1:/adroit-jolly-swift`磁碟區路徑為 `adroit-jolly-swift。
|
以下範例會在後端 gcpcvs_YEppr`以的 Volume 路徑匯入 `gcp-cvs Volume 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 支援使用驅動程式進行 Volume 匯入 azure-netapp-files。
|
|
若要匯入 Azure NetApp Files Volume 、請依磁碟區路徑識別該磁碟區。Volume 路徑是磁碟區匯出路徑的一部分、位於之後 :/。例如,如果掛載路徑爲,則 10.0.0.2:/importvol1`卷路徑爲 `importvol1。
|
以下示例使用卷路徑 importvol1`導入 `azure-netapp-files`後端上的卷 `azurenetappfiles_40517。
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 | +------------------------------------------+---------+---------------+----------+--------------------------------------+--------+---------+