設定Cloud Volumes Service 適用於Google Cloud後端的功能
瞭Cloud Volumes Service 解如何使用提供的範例組態、將NetApp for Google Cloud設定為Astra Trident安裝的後端。
Google Cloud 驅動程式詳細資料
Astra Trident 提供 gcp-cvs
與叢集通訊的驅動程式。支援的存取模式包括: ReadWriteOnce ( rwo )、 ReadOnlyMany ( ROX )、 _ReadWriteMany ( rwx )、 _ReadWriteOncePod ( RWOP )。
驅動程式 | 傳輸協定 | Volume模式 | 支援的存取模式 | 支援的檔案系統 |
---|---|---|---|---|
|
NFS |
檔案系統 |
Rwo 、 ROX 、 rwx 、 RWOP |
|
深入瞭解Astra Trident對Cloud Volumes Service Google Cloud的支援
Astra Trident 可以在"服務類型"以下兩種中的一種中建立 Cloud Volumes Service Volume :
-
* CVS效能*:預設的Astra Trident服務類型。這種效能最佳化的服務類型最適合重視效能的正式作業工作負載。CVS效能服務類型是一種硬體選項、可支援最小100 GiB大小的磁碟區。您可以選擇"三種服務層級"下列其中一項:
-
standard
-
premium
-
extreme
-
-
* CVS:CVS服務類型提供高分區可用度、但效能等級僅限於中度。CVS服務類型是一種軟體選項、使用儲存資源池來支援小至1 GiB的磁碟區。儲存資源池最多可包含50個磁碟區、其中所有磁碟區都會共用資源池的容量和效能。您可以選擇"兩種服務層級"下列其中一項:
-
standardsw
-
zoneredundantstandardsw
-
若要設定及使用 "適用於 Google Cloud Cloud Volumes Service"後端、您需要下列項目:
-
Google Cloud帳戶已設定NetApp Cloud Volumes Service 功能
-
Google Cloud帳戶的專案編號
-
具有此角色的 Google Cloud Service 帳戶
netappcloudvolumes.admin
-
API金鑰檔案、供Cloud Volumes Service 您的I方面 帳戶使用
後端組態選項
每個後端都會在單一Google Cloud區域中配置磁碟區。若要在其他區域建立磁碟區、您可以定義其他後端。
參數 | 說明 | 預設 |
---|---|---|
|
永遠為1 |
|
|
儲存驅動程式名稱 |
「GCP-CVS」 |
|
自訂名稱或儲存後端 |
驅動程式名稱+「_」+ API金鑰的一部分 |
|
用於指定CVS服務類型的選用參數。用於 |
|
|
僅限CVS服務類型。選用參數、用於指定用於建立磁碟區的儲存資源池。 |
|
|
Google Cloud帳戶專案編號。此值可在Google Cloud入口網站首頁找到。 |
|
|
如果使用共享VPC網路、則為必要項目。在此案例中 |
|
|
Astra Trident在Google Cloud區域建立Cloud Volumes Service 了各種不全的功能。建立跨區域 Kubernetes 叢集時、在中建立的磁碟區 `apiRegion`可用於跨多個 Google Cloud 區域的節點上排程的工作負載。跨區域流量會產生額外成本。 |
|
|
具有此角色的 Google Cloud 服務帳戶的 API 金鑰 |
|
|
Proxy URL(如果需要Proxy伺服器才能連線至CVS帳戶)。Proxy伺服器可以是HTTP Proxy或HTTPS Proxy。對於HTTPS Proxy、會跳過憑證驗證、以允許在Proxy伺服器中使用自我簽署的憑證。不支援已啟用驗證的Proxy伺服器。 |
|
|
精細控制NFS掛載選項。 |
"nfsves=3" |
|
如果要求的磁碟區大小高於此值、則資源配置失敗。 |
""(預設不強制執行) |
|
適用於新磁碟區的CVS效能或CVS服務層級。CVS-Performance 值包括 |
CVS效能預設為「標準」。CVS預設為「標準」。 |
|
Google Cloud網路用於Cloud Volumes Service 解決資料不整的問題。 |
"預設" |
|
疑難排解時要使用的偵錯旗標。範例: |
null |
|
若要啟用跨區域存取、的 StorageClass 定義 |
Volume資源配置選項
您可以在組態檔案的區段中控制預設的 Volume 資源配置 defaults
。
參數 | 說明 | 預設 |
---|---|---|
|
新磁碟區的匯出規則。必須是以逗號分隔的清單、以CIDR表示法列出所有的IPv4位址或IPv4子網路組合。 |
「0.00.0.0/0」 |
|
存取 `.snapshot`目錄 |
"假" |
|
保留給快照的磁碟區百分比 |
""(接受CVS預設值為0) |
|
新磁碟區的大小。CVS效能最低為100 GiB。CVS最低為1 GiB。 |
CVS效能服務類型預設為「100GiB」。CVS服務類型並未設定預設值、但至少需要1 GiB。 |
CVS效能服務類型範例
下列範例提供CVS效能服務類型的範例組態。
範例1:最低組態
這是使用預設「標準」服務層級的預設CVS效能服務類型的最低後端組態。
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com
範例2:服務層級組態
本範例說明後端組態選項、包括服務層級和Volume預設值。
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com proxyURL: http://proxy-server-hostname/ nfsMountOptions: vers=3,proto=tcp,timeo=600 limitVolumeSize: 10Ti serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '5' exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100 size: 5Ti
範例 3 :虛擬集區組態
此範例使用 `storage`來設定虛擬集區、以及 `StorageClasses`可重新參照它們的。請參閱儲存類別定義以瞭解儲存類別的定義方式。
此處會針對所有虛擬集區設定特定的預設值、將設為 5% 、將設 snapshotReserve`為 `exportRule
0.0.0.0/0 。虛擬集區是在一節中定義 storage
。每個個別虛擬集區都會自行定義 serviceLevel
、有些集區會覆寫預設值。虛擬池標籤用於根據和 protection`區分池 `performance
。
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com nfsMountOptions: vers=3,proto=tcp,timeo=600 defaults: snapshotReserve: '5' exportRule: 0.0.0.0/0 labels: cloud: gcp region: us-west2 storage: - labels: performance: extreme protection: extra serviceLevel: extreme defaults: snapshotDir: 'true' snapshotReserve: '10' exportRule: 10.0.0.0/24 - labels: performance: extreme protection: standard serviceLevel: extreme - labels: performance: premium protection: extra serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '10' - labels: performance: premium protection: standard serviceLevel: premium - labels: performance: standard serviceLevel: standard
儲存類別定義
下列StorageClass定義適用於虛擬集區組態範例。使用 `parameters.selector`時、您可以為每個 StorageClass 指定用於主控磁碟區的虛擬集區。該磁碟區會在所選的資源池中定義各個層面。
儲存類別範例
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: csi.trident.netapp.io parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "protection=extra" allowVolumeExpansion: true
-
First StorageClass (
cvs-extreme-extra-protection
)映射到第一個虛擬池。這是唯一提供極致效能、快照保留率為10%的資源池。 -
Last StorageClass (
cvs-extra-protection
(最後一個 StorageClass )調用任何提供 10% 快照保留的儲存池。Astra Trident決定選取哪個虛擬集區、並確保符合快照保留需求。
CVS服務類型範例
下列範例提供CVS服務類型的範例組態。
範例1:最低組態
這是用來指定 CVS 服務類型和預設服務層級的 standardsw`最低後端組態 `storageClass
。
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' storageClass: software apiRegion: us-east4 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com serviceLevel: standardsw
範例2:儲存資源池組態
此後端組態範例用於 `storagePools`設定儲存池。
--- version: 1 storageDriverName: gcp-cvs backendName: gcp-std-so-with-pool projectNumber: '531265380079' apiRegion: europe-west1 apiKey: type: service_account project_id: cloud-native-data private_key_id: "<id_value>" private_key: |- -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com client_id: '107071413297115343396' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40cloud-native-data.iam.gserviceaccount.com storageClass: software zone: europe-west1-b network: default storagePools: - 1bc7f380-3314-6005-45e9-c7dc8c2d7509 serviceLevel: Standardsw
接下來呢?
建立後端組態檔之後、請執行下列命令:
tridentctl create backend -f <backend-file>
如果後端建立失敗、表示後端組態有問題。您可以執行下列命令來檢視記錄、以判斷原因:
tridentctl logs
識別並修正組態檔的問題之後、您可以再次執行create命令。