ONTAP SAN 配置選項和範例
了解如何在Trident安裝中建立和使用ONTAP SAN 驅動程式。本節提供後端設定範例以及將後端對應到 StorageClasses 的詳細資訊。
"ASA r2 系統"與其他ONTAP系統(ASA、 AFF和FAS)在儲存層的實作上有所不同。這些變化會影響某些參數的使用,如註釋中所述。"了解更多關於ASA r2 系統與其他ONTAP系統之間的差異"。
|
|
只有 `ontap-san`ASA r2 系統支援驅動程式(支援 iSCSI 和 NVMe/TCP 協定)。 |
在Trident後端設定中,無需指定您的系統是ASA r2。當您選擇 `ontap-san`作為 `storageDriverName`Trident可自動偵測ASA r2 或傳統的ONTAP系統。如下表所示,某些後端設定參數不適用於ASA r2 系統。
後端配置選項
請參閱下表以了解後端配置選項:
| 範圍 | 描述 | 預設 | ||
|---|---|---|---|---|
|
始終為 1 |
|||
|
儲存驅動程式的名稱 |
|
||
|
自訂名稱或儲存後端 |
驅動程式名稱 + "_" + dataLIF |
||
|
叢集或 SVM 管理 LIF 的 IP 位址。 可以指定一個完全限定網域名稱(FQDN)。 如果Trident安裝時使用了 IPv6 標誌,則可以設定為使用 IPv6 位址。 IPv6 位址必須用方括號定義,例如: 為了實現MetroCluster 的無縫切換,請參閱MetroCluster範例。
|
"10.0.0.1", "[2001:1234:abcd::fefe]" |
||
|
LIF協定的IP位址。如果Trident安裝時使用了 IPv6 標誌,則可以設定為使用 IPv6 位址。 IPv6 位址必須用方括號定義,例如: |
由支援向量機導出 |
||
|
要使用的儲存虛擬機器 *Metrocluster 除外。 *查看MetroCluster範例。 |
如果是 SVM 則推導而來 `managementLIF`已指定 |
||
|
使用 CHAP 對ONTAP SAN 驅動程式的 iSCSI 進行驗證 [布林值]。設定為 `true`讓Trident配置並使用雙向 CHAP 作為後端給定 SVM 的預設身份驗證。參考 "準備配置後端ONTAP SAN 驅動程式" 了解詳情。 *不支援FCP或NVMe/TCP協定。 * |
|
||
|
CHAP 發起者金鑰。如果是必填項 |
“” |
||
|
若要套用於磁碟區的任意 JSON 格式標籤集 |
“” |
||
|
CHAP 目標發起者金鑰。如果是必填項 |
“” |
||
|
入站用戶名。如果是必填項 |
“” |
||
|
目標用戶名。如果是必填項 |
“” |
||
|
用戶端憑證的 Base64 編碼值。用於基於憑證的身份驗證 |
“” |
||
|
客戶端私鑰的 Base64 編碼值。用於基於憑證的身份驗證 |
“” |
||
|
受信任 CA 憑證的 Base64 編碼值。選修的。用於基於憑證的身份驗證。 |
“” |
||
|
與ONTAP叢集通訊所需的使用者名稱。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證向後端 SVM 驗證Trident 的身份"。 |
“” |
||
|
與ONTAP集群通訊所需的密碼。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證向後端 SVM 驗證Trident 的身份"。 |
“” |
||
|
使用的儲存虛擬機 |
如果是 SVM 則推導而來 `managementLIF`已指定 |
||
|
在 SVM 中配置新磁碟區時所使用的前綴。之後無法修改。要更新此參數,您需要建立一個新的後端。 |
|
||
|
用於配置的聚合(可選;如果設置,則必須指派給 SVM)。對於 `ontap-nas-flexgroup`驅動程序,此選項將被忽略。如果未分配,則可以使用任何可用的聚合來配置FlexGroup磁碟區。
請勿指定用於ASA r2 系統。 |
“” |
||
|
如果使用率超過此百分比,則配置失敗。如果您使用的是Amazon FSx for NetApp ONTAP後端,請勿指定 |
(預設不強制執行) |
||
|
如果請求的磁碟區大小大於此值,則配置失敗。同時限制其管理的 LUN 卷的最大大小。 |
(預設不強制執行) |
||
|
每個 Flexvol 的最大 LUN 數量必須在 [50, 200] 範圍內 |
|
||
|
故障排除時要使用的調試標誌。例如,{"api":false, "method":true} 除非您正在進行故障排除並且需要詳細的日誌轉儲,否則請勿使用此方法。 |
|
||
|
使用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 系統。 |
|
||
|
用於選擇 `iscsi`對於 iSCSI, `nvme`適用於 NVMe/TCP 或 `fcp`用於光纖通道 (FC) 上的 SCSI。 |
`iscsi`如果為空 |
||
|
使用 `formatOptions`為以下情況指定命令列參數 `mkfs`該命令將在每次格式化磁碟區時套用。這樣您就可以根據自己的喜好格式化音量。請確保指定與 mkfs 指令選項類似的 formatOptions,但不包含裝置路徑。例如:“-E nodiscard” *支援 `ontap-san`和 `ontap-san-economy`支援 iSCSI 協定的驅動程式。 * *此外,在使用 iSCSI 和 NVMe/TCP 協定時, ASA r2 系統也受支援。 * |
|||
|
在 ontap-san-economy 後端使用 LUN 時可請求的最大FlexVol大小。 |
(預設不強制執行) |
||
|
限制 `ontap-san-economy`後端建立新的FlexVol區來包含它們的 LUN。只有預先存在的 Flexvol 才能用於配置新的 PV。 |
使用 formatOptions 的建議
Trident建議採用以下選項來加速格式化流程:
-E nodiscard:
-
保留,不要在執行 mkfs 時嘗試丟棄區塊(最初丟棄區塊對固態設備和稀疏/精簡配置儲存很有用)。這取代了已棄用的選項“-K”,並且適用於所有檔案系統(xfs、ext3 和 ext4)。
使用 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`配置部分。例如,請參閱下面的設定範例。
| 範圍 | 描述 | 預設 |
|---|---|---|
|
LUN 的空間分配 |
“true” 如果指定,則設定為 `true`適用於ASA r2 系統。 |
|
空間預留模式;「無」(細)或「大量」(粗)。 設定為 `none`適用於ASA r2 系統。 |
“沒有任何” |
|
要使用的快照策略。 設定為 `none`適用於ASA r2 系統。 |
“沒有任何” |
|
若要為建立的磁碟區指派的 QoS 策略群組。每個儲存池/後端選擇 qosPolicy 或 adaptiveQosPolicy 之一。將 QoS 策略群組與Trident結合使用需要ONTAP 9.8 或更高版本。您應該使用非共享的 QoS 策略群組,並確保該策略群組單獨套用至每個成員。共享的 QoS 策略群組強制規定所有工作負載的總吞吐量上限。 |
“” |
|
若要為建立的磁碟區指派的自適應 QoS 策略群組。每個儲存池/後端選擇 qosPolicy 或 adaptiveQosPolicy 之一 |
“” |
|
為快照預留的磁碟區百分比。 請勿指定用於ASA r2 系統。 |
如果為“0”, `snapshotPolicy`為“無”,否則為“ |
|
創建時將克隆體從其母體中分離出來 |
“錯誤的” |
|
在新磁碟區啟用NetApp磁碟區加密 (NVE);預設為 |
“false” 如果指定,則設定為 `true`適用於ASA r2 系統。 |
|
啟用LUKS加密。參考"使用 Linux 統一金鑰設定 (LUKS)"。 |
設定為 `false`適用於ASA r2 系統。 |
|
分層策略使用「無」 請勿為ASA r2 系統指定 。 |
|
|
用於建立自訂磁碟區名稱的範本。 |
“” |
卷配置範例
以下是一個定義了預設值的範例:
---
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`驅動程式Trident為FlexVol增加了 10% 的額外容量,以容納 LUN 元資料。 LUN 將依照使用者在 PVC 中要求的確切大小進行設定。 Trident使FlexVol增加 10%(在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`該命令應顯示與此範例類似的結果:
目前,調整大小是將新計算方法應用於現有體積的唯一方法。
最小配置範例
以下範例展示了基本配置,其中大多數參數都保留預設值。這是定義後端最簡單的方法。
|
|
如果您在NetApp ONTAP上使用Amazon FSx和Trident, NetApp建議您為 LIF 指定 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 `managementLIF`並省略 `svm`參數。例如:
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 憑證的 base64 編碼值。
---
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>
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
使用 nameTemplate 的後端設定範例
---
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}}"
ontap-san-economy 驅動程式的 formatOptions 範例
---
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在「備註」欄位中設定配置標籤。在配置時, Trident會將虛擬池上的所有標籤複製到儲存卷,並在FlexVol volume上設定註解。為了方便起見,儲存管理員可以為每個虛擬池定義標籤,並按標籤將磁碟區分組。
在這些範例中,一些儲存池會設定自己的參數。 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 定義指的是具有虛擬池的後端範例。使用 `parameters.selector`在欄位中,每個 StorageClass 都會指出哪些虛擬池可用於託管磁碟區。卷將具有所選虛擬池中定義的各個方面。
-
這 `protection-gold`StorageClass 將會對應到第一個虛擬池。 `ontap-san`後端。這是唯一提供黃金級保護的泳池。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4" -
這 `protection-not-gold`StorageClass 將會對應到第二個和第三個虛擬池。 `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" -
這 `app-mysqldb`StorageClass 將會對應到第三個虛擬池 `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" -
這 `protection-silver-creditpoints-20k`StorageClass 將會對應到第二個虛擬池 `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" -
這 `creditpoints-5k`StorageClass 將會對應到第三個虛擬池 `ontap-san`後端與第四個虛擬池 `ontap-san-economy`後端。這是唯一提供 5000 點的彩池產品。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4" -
這
my-test-app-sc`StorageClass 將會對應到 `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將決定選擇哪個虛擬池,並確保滿足儲存需求。