SAN組態選項與範例ONTAP
在 Trident 安裝中建立和使用 ONTAP SAN 驅動程式。本節提供後端組態範例,以及將後端映射至 StorageClasses 的詳細資訊。"ASA r2 系統"與其他 ONTAP 系統(ASA、AFF 和 FAS)在儲存層的實作上有所不同。這些差異會影響某些參數的使用,如註釋所示。"詳細了解 ASA r2 系統與其他 ONTAP 系統之間的差異"。在 Trident 後端組態中,您無需指定系統為 ASA r2。當您選擇 `ontap-san`作為 `storageDriverName`時,Trident 會自動偵測 ASA r2 或其他 ONTAP 系統。如下表所示,某些後端組態參數不適用於 ASA r2 系統。
|
|
只有 `ontap-san`ASA r2 系統支援驅動程式(支援 iSCSI、NVMe/TCP 和 FC 協定)。 |
後端組態選項
從 26.06 版本開始,您可以啟用 ONTAP 均衡放置,以便 ONTAP 為新 Volume 選擇彙總。請參閱 "使用 ONTAP 後端進行均衡放置" 以瞭解需求和範例。
如需後端組態選項、請參閱下表:
| 參數 | 說明 | 預設 | ||
|---|---|---|---|---|
「分度」 |
永遠為1 |
|||
「torageDriverName」 |
儲存驅動程式名稱 |
|
||
「後端名稱」 |
自訂名稱或儲存後端 |
驅動程式名稱 + "_" + dataLIF |
||
《馬納格門達利》 |
叢集或 SVM 管理 LIF 的 IP 位址。 您可以指定完整網域名稱(FQDN)。 如果使用 IPv6 旗標安裝 Trident 、則可設定為使用 IPv6 位址。IPv6 位址必須以方括弧定義,例如 如需無縫 MetroCluster 之間的互通性MetroCluster 範例、請參閱。
|
"10.0.0.1 " , "[2001:1234:abcd::fefe] |
||
「DataLIF」 |
傳輸協定LIF的IP位址。如果使用 IPv6 旗標安裝 Trident 、則可設定為使用 IPv6 位址。IPv6 位址必須以方括弧定義,例如 |
源自SVM |
||
《虛擬機器》 |
要使用的儲存虛擬機器 |
如果指定SVM "managementLIF"則衍生 |
||
《使用CHAP》 |
使用CHAP驗證iSCSI以供ONTAP 支援不支援的SAN驅動程式使用[布林值]。設為 |
「假」 |
||
《chapInitiator機密》 |
CHAP啟動器密碼。如果是"useCHAP=true"、則為必要項目 |
" |
||
《標籤》 |
套用到磁碟區的任意JSON-格式化標籤集 |
" |
||
《chapTargetInitiator機密》 |
CHAP目標啟動器機密。如果是"useCHAP=true"、則為必要項目 |
" |
||
「chapUsername」 |
傳入使用者名稱。如果是"useCHAP=true"、則為必要項目 |
" |
||
《chapTargetUsername》 |
目標使用者名稱。如果是"useCHAP=true"、則為必要項目 |
" |
||
「用戶端憑證」 |
用戶端憑證的Base64編碼值。用於憑證型驗證 |
" |
||
「clientPrivate Key」 |
用戶端私密金鑰的Base64編碼值。用於憑證型驗證 |
" |
||
「可信賴的CACertifcate」 |
受信任CA憑證的Base64編碼值。選用。用於憑證型驗證。 |
" |
||
《使用者名稱》 |
與ONTAP叢集通訊所需的使用者名稱。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證向後端 SVM 驗證Trident 的身份"。 |
" |
||
密碼 |
與ONTAP集群通訊所需的密碼。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證向後端 SVM 驗證Trident 的身份"。 |
" |
||
《虛擬機器》 |
要使用的儲存虛擬機器 |
如果指定SVM "managementLIF"則衍生 |
||
「toragePrefix」 |
在 SVM 中為新 Volume 進行資源配置時所使用的前置詞。之後無法修改。若要更新此參數,您需要建立新的後端。 |
|
||
《Aggregate》 |
用於資源配置的彙總(可選;如果設定,則必須指派給 SVM)。對於 `ontap-nas-flexgroup`驅動程式,此選項將被忽略。如果未指派,則可以使用任何可用的彙總來資源配置 FlexGroup Volume。
不要指定 ASA r2 系統。 請勿指定何時 |
" |
||
|
將新 Volume 的彙總選擇委託給 ONTAP [布林值]。需要 ONTAP 9.19.1 或更新版本,且 請參考 "使用 ONTAP 後端進行均衡放置" 以了解需求和範例。 |
「假」 |
||
「限制Aggregateusage」 |
如果使用率高於此百分比、則無法進行資源配置。如果您使用 Amazon FSX for NetApp ONTAP 後端、請勿指定 |
""(預設不強制執行) |
||
《限制Volume大小》 |
如果要求的磁碟區大小高於此值、則資源配置失敗。也會限制其管理 LUN 的最大磁碟區大小。 |
"" (預設不會強制執行) |
||
《lunsPerFlexvol》 |
每FlexVol 個LUN的最大LUN數量、範圍必須在[50、200] |
|
||
「DebugTraceFlags」 |
疑難排解時要使用的偵錯旗標。例如、 { "api" : false 、 "method" : true} |
|
||
《useREST》 |
使用ONTAP REST API 的布林參數。 `useREST`當設定為 `true`, Trident使用ONTAP REST API 與後端通訊;當設定為 `false`, Trident使用 ONTAPI(ZAPI)呼叫與後端進行通訊。此功能需要ONTAP 9.11.1 及更高版本。此外,使用的ONTAP登入角色必須具有訪問 `ontapi`應用。這是透過預定義的 `vsadmin`和 `cluster-admin`角色。從Trident 24.06 版本和ONTAP 9.15.1 或更高版本開始, `useREST`設定為 `true`預設;改變 `useREST`到 `false`使用 ONTAPI (ZAPI) 呼叫。 `useREST`完全符合 NVMe/TCP 的要求。
如果指定,則始終設定為 `true`適用於ASA r2 系統。 |
|
||
|
用於選擇 |
|
||
|
使用 `formatOptions`為 `mkfs`命令指定命令列參數,此命令會在每次格式化 Volume 時套用。這可讓您根據自己的偏好格式化 Volume。請確保指定的 formatOptions 與 mkfs 命令選項類似,但不包含裝置路徑。例如:"-E nodiscard" *支援 `ontap-san`和 `ontap-san-economy`帶有 iSCSI 協定的驅動程式。 **此外,在使用 iSCSI 和 NVMe/TCP 協定時,支援 ASA r2 系統。 * |
|||
|
在 ONTAP SAN 經濟型後端中使用 LUN 時、可要求的最大 FlexVol 大小。 |
""(預設不強制執行) |
||
|
限制 `ontap-san-economy`後端建立新的 FlexVol 磁碟區以包含其 LUN 。只有預先存在的 FlexVols 可用於佈建新的 PV 。 |
使用 formatOptions 的建議
Trident建議採用以下選項來加速格式化流程:
-
-E nodiscard (ext3, ext4): 不要嘗試在 mkfs 時丟棄區塊(最初丟棄區塊對固態設備和稀疏/精簡配置儲存很有用)。這將取代已棄用的選項“-K”,並且適用於 ext3、ext4 檔案系統。
-
-K (xfs): 不要在執行 mkfs 時嘗試丟棄區塊。此選項適用於 xfs 檔案系統。
使用 Active Directory 憑證向後端 SVM 驗證Trident 的身份
您可以設定Trident以使用 Active Directory (AD) 憑證對後端 SVM 進行驗證。在 AD 帳戶可以存取 SVM 之前,您必須設定 AD 網域控制站對叢集或 SVM 的存取權限。對於使用 AD 帳戶進行叢集管理,您必須建立網域隧道。參考 "在ONTAP中設定 Active Directory 網域控制站存取" 了解詳情。
-
為後端 SVM 配置網域名稱系統 (DNS) 設定:
vserver services dns create -vserver <svm_name> -dns-servers <dns_server_ip1>,<dns_server_ip2> -
執行下列命令在 Active Directory 中為 SVM 建立電腦帳戶:
vserver active-directory create -vserver DataSVM -account-name ADSERVER1 -domain demo.netapp.com -
使用此命令建立 AD 使用者或群組來管理叢集或 SVM
security login create -vserver <svm_name> -user-or-group-name <ad_user_or_group> -application <application> -authentication-method domain -role vsadmin -
在Trident後端設定檔中,設定
username和password參數分別為 AD 使用者或群組名稱和密碼。
用於資源配置磁碟區的後端組態選項
您可以使用中的這些選項來控制預設資源配置 defaults 組態區段。如需範例、請參閱下列組態範例。
| 參數 | 說明 | 預設 |
|---|---|---|
"paceAllocate(配置)" |
LUN的空間分配 |
"true" 如果指定,則設定為 `true`適用於 ASA r2 系統。 |
《保護區》 |
空間保留模式;「無」(精簡)或「 Volume (大量)」(粗)。設定為 `none`適用於 ASA r2 系統。 |
" 無 " |
「快照原則」 |
要使用的 Snapshot 原則。設定為 `none`適用於 ASA r2 系統。 |
" 無 " |
「qosPolicy」 |
要指派給所建立磁碟區的QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy。搭配 Trident 使用 QoS 原則群組需要 ONTAP 9 8 或更新版本。您應該使用非共用的 QoS 原則群組、並確保個別將原則群組套用至每個成員。共享 QoS 原則群組會強制執行所有工作負載總處理量的上限。 |
" |
《adaptiveQosPolicy》 |
要指派給所建立磁碟區的調適性QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy |
" |
「快照保留區」 |
保留給快照的磁碟區百分比。不要為 ASA r2 系統指定。 |
「 0 」如果 |
「PlitOnClone」 |
建立複本時、從其父複本分割複本 |
"假" |
加密 |
在新 Volume 上啟用 NetApp Volume Encryption (NVE);預設為 |
“false” 如果指定,則設定為 `true`適用於 ASA r2 系統。 |
|
啟用LUKS加密。請參閱 "使用Linux統一金鑰設定(LUKS)"。 |
"" 設定為 `false`適用於 ASA r2 系統。 |
「分層政策」 |
分層策略使用「無」 不要為 ASA r2 系統指定。 |
|
|
建立自訂磁碟區名稱的範本。 |
" |
Volume資源配置範例
以下是定義預設值的範例:
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: trident_svm
username: admin
password: <password>
labels:
k8scluster: dev2
backend: dev2-sanbackend
storagePrefix: alternate-trident
debugTraceFlags:
api: false
method: true
defaults:
spaceReserve: volume
qosPolicy: standard
spaceAllocation: 'false'
snapshotPolicy: default
snapshotReserve: '10'
|
|
對於使用此 `ontap-san`驅動程式建立的所有 Volume,Trident 會額外增加 10% 的容量至 FlexVol,以容納 LUN 中繼資料。LUN 的資源配置大小與使用者在 PVC 中要求的大小完全一致。Trident 額外增加 10% 至 FlexVol(在 ONTAP 中顯示為可用大小)。使用者現在可獲得所要求的可用容量。此變更也可防止 LUN 在可用空間未完全使用之前變為唯讀狀態。此變更不適用於 ontap-san-economy。 |
對於定義的後端 snapshotReserve, Trident 將按以下方式計算卷的大小:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
1.1 是Trident為容納 LUN 元資料而額外添加到FlexVol 的10%。對於 snapshotReserve = 5%,PVC 請求 = 5 GiB,則總磁碟區大小為 5.79 GiB,可用大小為 5.5 GiB。 `volume show`命令應顯示與此範例類似的結果:
目前、只有調整大小、才能將新計算用於現有的Volume。
最低組態範例
下列範例顯示基本組態、讓大部分參數保留預設值。這是定義後端最簡單的方法。
|
|
如果您在 NetApp ONTAP 上搭配 Trident 使用 Amazon FSX , NetApp 建議您指定生命體的 DNS 名稱,而非 IP 位址。 |
ONTAP SAN 範例
這是使用的基本組態 ontap-san 驅動程式:
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
labels:
k8scluster: test-cluster-1
backend: testcluster1-sanbackend
username: vsadmin
password: <password>
MetroCluster 範例
您可以設定後端、避免在切換和切換期間手動更新後端定義 "SVM 複寫與還原"。
若要無縫切換和切換,請使用並省略 svm`參數來指定 SVM `managementLIF 。例如:
version: 1
storageDriverName: ontap-san
managementLIF: 192.168.1.66
username: vsadmin
password: password
ONTAP SAN 經濟效益範例
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
username: vsadmin
password: <password>
憑證型驗證範例
在此基本組態範例中 clientCertificate、 clientPrivateKey`和 `trustedCACertificate (選用、如果使用信任的CA)會填入 backend.json 並分別取得用戶端憑證、私密金鑰及信任CA憑證的基礎64編碼值。
---
version: 1
storageDriverName: ontap-san
backendName: DefaultSANBackend
managementLIF: 10.0.0.1
svm: svm_iscsi
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
雙向 CHAP 範例
這些範例使用建立後端 useCHAP 設定為 true。
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
labels:
k8scluster: test-cluster-1
backend: testcluster1-sanbackend
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
均衡佈局範例
此範例啟用 ONTAP 平衡放置,以便 ONTAP 為新 Volume 選擇彙總。平衡放置需要 ONTAP 9.19.1 或更新版本。如需詳細資訊,請參閱 "使用 ONTAP 後端進行均衡放置"。
---
version: 1
storageDriverName: ontap-san
backendName: san-balanced-placement
managementLIF: 10.0.0.1
svm: svm_iscsi
username: vsadmin
password: <password>
useBalancedPlacement: true
NVMe / TCP 範例
您必須在 ONTAP 後端上設定 NVMe 的 SVM 。這是適用於 NVMe / TCP 的基本後端組態。
---
version: 1
backendName: NVMeBackend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_nvme
username: vsadmin
password: password
sanType: nvme
useREST: true
SCSI over FC ( FCP )範例
您必須在 ONTAP 後端設定具有 FC 的 SVM 。這是 FC 的基本後端組態。
---
version: 1
backendName: fcp-backend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_fc
username: vsadmin
password: password
sanType: fcp
useREST: true
名稱範本的後端組態範例
---
version: 1
storageDriverName: ontap-san
backendName: ontap-san-backend
managementLIF: <ip address>
svm: svm0
username: <admin>
password: <password>
defaults:
nameTemplate: "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.vo\
lume.RequestName}}"
labels:
cluster: ClusterA
PVC: "{{.volume.Namespace}}_{{.volume.RequestName}}"
formatOptions ONTAP - SAN 經濟型驅動程式範例
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: ""
svm: svm1
username: ""
password: "!"
storagePrefix: whelk_
debugTraceFlags:
method: true
api: true
defaults:
formatOptions: -E nodiscard
虛擬集區的後端範例
在這些後端定義檔案範例中、會針對所有儲存池設定特定的預設值、例如 spaceReserve 無、 spaceAllocation 假、和 encryption 錯。虛擬資源池是在儲存區段中定義的。
Trident 會在「意見」欄位中設定資源配置標籤。在 FlexVol volume Trident 上設定的註解會將虛擬集區上的所有標籤複製到資源配置時的儲存磁碟區。為了方便起見、儲存管理員可以針對每個虛擬資源池定義標籤、並依標籤將磁碟區分組。
在這些範例中、有些儲存池是自行設定的 spaceReserve、 spaceAllocation`和 `encryption 值、而某些資源池會覆寫預設值。
ONTAP SAN 範例
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
defaults:
spaceAllocation: "false"
encryption: "false"
qosPolicy: standard
labels:
store: san_store
kubernetes-cluster: prod-cluster-1
region: us_east_1
storage:
- labels:
protection: gold
creditpoints: "40000"
zone: us_east_1a
defaults:
spaceAllocation: "true"
encryption: "true"
adaptiveQosPolicy: adaptive-extreme
- labels:
protection: silver
creditpoints: "20000"
zone: us_east_1b
defaults:
spaceAllocation: "false"
encryption: "true"
qosPolicy: premium
- labels:
protection: bronze
creditpoints: "5000"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
ONTAP SAN 經濟效益範例
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
defaults:
spaceAllocation: "false"
encryption: "false"
labels:
store: san_economy_store
region: us_east_1
storage:
- labels:
app: oracledb
cost: "30"
zone: us_east_1a
defaults:
spaceAllocation: "true"
encryption: "true"
- labels:
app: postgresdb
cost: "20"
zone: us_east_1b
defaults:
spaceAllocation: "false"
encryption: "true"
- labels:
app: mysqldb
cost: "10"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
- labels:
department: legal
creditpoints: "5000"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
NVMe / TCP 範例
---
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: 10.0.0.1
svm: nvme_svm
username: vsadmin
password: <password>
useREST: true
defaults:
spaceAllocation: "false"
encryption: "true"
storage:
- labels:
app: testApp
cost: "20"
defaults:
spaceAllocation: "false"
encryption: "false"
將後端對應至StorageClass
以下 StorageClass 定義均參照 [虛擬集區的後端範例]。使用 parameters.selector 欄位,每個 StorageClass 都會指出哪些虛擬資源池可用於裝載 Volume。Volume 現在具有所選虛擬資源池中定義的屬性。
-
The
protection-goldStorageClass 映射到ontap-san後端的第一個虛擬資源池。這是唯一提供黃金級保護的資源池。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4" -
The
protection-not-goldStorageClass 映射至 `ontap-san`後端中的第二和第三個虛擬資源池。這些是唯一提供金級以外其他保護層級的資源池。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: csi.trident.netapp.io parameters: selector: "protection!=gold" fsType: "ext4" -
The
app-mysqldbStorageClass 映射到 `ontap-san-economy`後端中的第三個虛擬儲存資源池。這是唯一一個為 mysqldb 類型應用程式提供儲存資源池組態的儲存資源池。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4" -
The
protection-silver-creditpoints-20kStorageClass 對應至ontap-san後端中的第二個虛擬資源池。這是唯一提供白銀級保護和 20000 信用點的資源池。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-silver-creditpoints-20k provisioner: csi.trident.netapp.io parameters: selector: "protection=silver; creditpoints=20000" fsType: "ext4" -
The
creditpoints-5kStorageClass 分別對應 `ontap-san`後端中的第三個虛擬資源池和 `ontap-san-economy`後端中的第四個虛擬資源池。只有這兩個資源池產品提供 5000 creditpoints。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4" -
StorageClass
my-test-app-sc`映射到 `testAPP`驅動程式中的虛擬資源池 `ontap-san,並搭配sanType: nvme。這是唯一提供 `testApp`的資源池。--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-test-app-sc provisioner: csi.trident.netapp.io parameters: selector: "app=testApp" fsType: "ext4"
Trident 決定選擇哪個虛擬資源池,並確保符合儲存需求。