列舉NAS組態選項與範例ONTAP
瞭解如何在 Trident 安裝中建立及使用 ONTAP NAS 驅動程式。本節提供後端組態範例及將後端對應至 StorageClasses 的詳細資料。
後端組態選項
如需後端組態選項、請參閱下表:
參數 | 說明 | 預設 | ||
---|---|---|---|---|
「分度」 |
永遠為1 |
|||
「torageDriverName」 |
儲存驅動程式名稱 |
|
||
「後端名稱」 |
自訂名稱或儲存後端 |
驅動程式名稱 + "_" + dataLIF |
||
《馬納格門達利》 |
叢集或 SVM 管理 LIF 的 IP 位址可以指定完整網域名稱( FQDN )。如果使用 IPv6 旗標安裝 Trident 、則可設定為使用 IPv6 位址。IPv6 位址必須以方括弧定義,例如 |
"10.0.0.1 " , "[2001:1234:abcd::fefe] |
||
「DataLIF」 |
傳輸協定LIF的IP位址。NetApp 建議指定 |
指定位址或從SVM衍生(若未指定)(不建議使用) |
||
《虛擬機器》 |
要使用的儲存虛擬機器 |
如果指定SVM "managementLIF"則衍生 |
||
「AutoExpportPolicy」 |
啟用自動匯出原則建立及更新[布 林值]。使用 `autoExportPolicy`和 `autoExportCIDRs`選項、 Trident 可以自動管理匯出原則。 |
錯 |
||
《AutoExpportCIDR》(自動匯出CTR) |
將 Kubernetes 節點 IP 篩選在啟用時的 CIDR 清單 |
["0.0.0/0" 、 ":/0"]` |
||
《標籤》 |
套用到磁碟區的任意JSON-格式化標籤集 |
" |
||
「用戶端憑證」 |
用戶端憑證的Base64編碼值。用於憑證型驗證 |
" |
||
「clientPrivate Key」 |
用戶端私密金鑰的Base64編碼值。用於憑證型驗證 |
" |
||
「可信賴的CACertifcate」 |
受信任CA憑證的Base64編碼值。選用。用於憑證型驗證 |
" |
||
《使用者名稱》 |
連線至叢集/ SVM的使用者名稱。用於認證型驗證 |
|||
密碼 |
連線至叢集/ SVM的密碼。用於認證型驗證 |
|||
「toragePrefix」 |
在SVM中配置新磁碟區時所使用的前置碼。設定後無法更新
|
" Trident " |
||
《Aggregate》 |
用於資源配置的Aggregate(選用;如果已設定、則必須指派給SVM)。對於 `ontap-nas-flexgroup`驅動程式、此選項會被忽略。如果未指派、 任何可用的集合體都可用於佈建 FlexGroup Volume 。
|
" |
||
「限制Aggregateusage」 |
如果使用率高於此百分比、則無法進行資源配置。不適用於 Amazon FSx for ONTAP。 |
""(預設不強制執行) |
||
FlexgroupAggregateList |
用於資源配置的集合體清單(選用;如果已設定、則必須指派給 SVM )。指派給 SVM 的所有集合體都會用於佈建 FlexGroup Volume 。支援 * ONTAP NAS FlexGroup * 儲存驅動程式。
|
" |
||
《限制Volume大小》 |
如果要求的磁碟區大小高於此值、則資源配置失敗。也會限制其管理 qtree 的最大磁碟區大小,且此 `qtreesPerFlexvol`選項可讓您自訂每個 FlexVol volume 的最大 qtree 數量 |
"" (預設不會強制執行) |
||
「DebugTraceFlags」 |
疑難排解時要使用的偵錯旗標。例如、 { "api" : false 、 "method" : true} |
null |
||
|
設定NFS或SMB磁碟區建立。選項包括 |
|
||
「nfsMountOptions」 |
以逗號分隔的NFS掛載選項清單。Kubernetes-Persistent Volume 的掛載選項通常是在儲存類別中指定、但如果儲存類別中未指定掛載選項、則 Trident 會回復為使用儲存後端組態檔案中指定的掛載選項。如果儲存類別或組態檔案中未指定任何掛載選項、 Trident 將不會在關聯的持續磁碟區上設定任何掛載選項。 |
" |
||
"qtreesPerFlexvol" |
每FlexVol 個邊的最大qtree數、必須在範圍內[50、300] |
"200" |
||
|
您可以指定下列其中一項:使用 Microsoft 管理主控台或 ONTAP CLI 建立的 SMB 共用名稱;允許 Trident 建立 SMB 共用的名稱;或將參數保留空白以防止共用磁碟區。對於內部部署 ONTAP 、此參數為選用項目。Amazon FSX 需要此參數才能支援 ONTAP 後端、且不可為空白。 |
|
||
《useREST》 |
使用ONTAP Isrest API的布林參數。 |
|
||
|
在 ONTAP NAS 經濟型後端使用 qtree 時、可要求的 FlexVol 大小上限。 |
""(預設不強制執行) |
||
|
限制 `ontap-nas-economy`後端建立新的 FlexVol 磁碟區以包含其 qtree 。只有預先存在的 FlexVols 可用於佈建新的 PV 。 |
|||
|
具有 SMB 共用完全存取權限的 Active Directory 管理員使用者或使用者群組。使用此參數可為 SMB 共用提供具有完全控制權的管理員權限。 |
用於資源配置磁碟區的後端組態選項
您可以使用中的這些選項來控制預設資源配置 defaults
組態區段。如需範例、請參閱下列組態範例。
參數 | 說明 | 預設 |
---|---|---|
"paceAllocate(配置)" |
qtree 的空間分配 |
" 對 " |
《保護區》 |
空間保留模式;「無」(精簡)或「 Volume 」(粗) |
" 無 " |
「快照原則」 |
要使用的Snapshot原則 |
" 無 " |
「qosPolicy」 |
要指派給所建立磁碟區的QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy |
" |
《adaptiveQosPolicy》 |
要指派給所建立磁碟區的調適性QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy。不受ONTAP-NAS-經濟支援。 |
" |
「快照保留區」 |
保留給快照的磁碟區百分比 |
「 0 」如果 |
「PlitOnClone」 |
建立複本時、從其父複本分割複本 |
"假" |
加密 |
在新磁碟區上啟用 NetApp Volume Encryption ( NVE );預設為 |
"假" |
「分層政策」 |
分層原則以使用「無」 |
|
「unixPermissions」 |
新磁碟區的模式 |
"777" 表示 NFS 磁碟區; SMB 磁碟區為空的(不適用) |
「napshotDir |
控制對的存取 |
針對 NFSv3 的 NFSv4 "false" 為 "true" |
「匯出政策」 |
要使用的匯出原則 |
"預設" |
《生態樣式》 |
新磁碟區的安全樣式。NFS支援 |
NFS預設為 |
|
建立自訂磁碟區名稱的範本。 |
" |
|
搭配 Trident 使用 QoS 原則群組需要 ONTAP 9 8 或更新版本。您應該使用非共用的 QoS 原則群組、並確保個別將原則群組套用至每個成員。共享 QoS 原則群組會強制執行所有工作負載總處理量的上限。 |
Volume資源配置範例
以下是定義預設值的範例:
---
version: 1
storageDriverName: ontap-nas
backendName: customBackendName
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
labels:
k8scluster: dev1
backend: dev1-nasbackend
svm: trident_svm
username: cluster-admin
password: <password>
limitAggregateUsage: 80%
limitVolumeSize: 50Gi
nfsMountOptions: nfsvers=4
debugTraceFlags:
api: false
method: true
defaults:
spaceReserve: volume
qosPolicy: premium
exportPolicy: myk8scluster
snapshotPolicy: default
snapshotReserve: "10"
為了 ontap-nas`和 `ontap-nas-flexgroups
Trident現在使用新的計算方法,以確保FlexVol 的大小與快照預留百分比和 PVC 的百分比相符。當使用者要求 PVC 時, Trident會使用新的計算方法建立具有更多空間的原始FlexVol 。此計算方法可確保使用者在 PVC 中獲得其請求的可寫入空間,而不是少於其請求的空間。在 v21.07 之前,當使用者要求 PVC(例如 5 GiB)時,如果快照預留百分比為 50%,則只能獲得 2.5 GiB 的可寫入空間。這是因為用戶要求的是整個卷,並且 snapshotReserve`是其中的百分比。在Trident 21.07 中,使用者要求的是可寫入空間,而Trident定義了 `snapshotReserve`佔總體積的百分比。這不適用於 `ontap-nas-economy
。請參閱以下範例以了解其工作原理:
計算方式如下:
Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)
對於快照預留 = 50% 且 PVC 請求 = 5 GiB 的情況,總磁碟區大小為 5/.5 = 10 GiB,可用大小為 5 GiB,這正是使用者在 PVC 請求中請求的大小。 `volume show`命令應顯示與此範例類似的結果:

升級Trident時,先前安裝的現有後端將以上述方式設定磁碟區。對於升級前建立的捲,您應該調整其大小以觀察到變更。例如,一個 2 GiB 的 PVC 包含 `snapshotReserve=50`先前的結果是卷提供了 1 GiB 的可寫空間。例如,將磁碟區大小調整為 3 GiB,將在 6 GiB 的磁碟區上為應用程式提供 3 GiB 的可寫入空間。
最低組態範例
下列範例顯示基本組態、讓大部分參數保留預設值。這是定義後端最簡單的方法。
|
如果您在NetApp ONTAP 支援Trident的NetApp支援上使用Amazon FSX、建議您指定lifs的DNS名稱、而非IP位址。 |
ONTAP NAS 經濟效益範例
---
version: 1
storageDriverName: ontap-nas-economy
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
ONTAP NAS FlexGroup 範例
---
version: 1
storageDriverName: ontap-nas-flexgroup
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
MetroCluster 範例
您可以設定後端、避免在切換和切換期間手動更新後端定義 "SVM 複寫與還原"。
若要無縫切換和切換、請使用指定 SVM managementLIF
並省略 dataLIF
和 svm
參數。例如:
---
version: 1
storageDriverName: ontap-nas
managementLIF: 192.168.1.66
username: vsadmin
password: password
SMB Volume 範例
---
version: 1
backendName: ExampleBackend
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
nasType: smb
securityStyle: ntfs
unixPermissions: ""
dataLIF: 10.0.0.2
svm: svm_nfs
username: vsadmin
password: password
憑證型驗證範例
這是最小的後端組態範例。 clientCertificate
、 clientPrivateKey`和 `trustedCACertificate
(選用、如果使用信任的CA)會填入 backend.json
並分別取得用戶端憑證、私密金鑰及信任CA憑證的基礎64編碼值。
---
version: 1
backendName: DefaultNASBackend
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
dataLIF: 10.0.0.15
svm: nfs_svm
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
storagePrefix: myPrefix_
自動匯出原則範例
本範例說明如何指示 Trident 使用動態匯出原則來自動建立及管理匯出原則。和 ontap-nas-flexgroup`驅動程式的運作方式相同 `ontap-nas-economy
。
---
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
labels:
k8scluster: test-cluster-east-1a
backend: test1-nasbackend
autoExportPolicy: true
autoExportCIDRs:
- 10.0.0.0/24
username: admin
password: password
nfsMountOptions: nfsvers=4
IPv6 位址範例
此範例顯示 managementLIF
使用IPv6位址。
---
version: 1
storageDriverName: ontap-nas
backendName: nas_ipv6_backend
managementLIF: "[5c5d:5edf:8f:7657:bef8:109b:1b41:d491]"
labels:
k8scluster: test-cluster-east-1a
backend: test1-ontap-ipv6
svm: nas_ipv6_svm
username: vsadmin
password: password
Amazon FSX for ONTAP 使用 SMB Volume 範例
。 smbShare
使用 SMB 磁碟區的 ONTAP 需要 FSX 參數。
---
version: 1
backendName: SMBBackend
storageDriverName: ontap-nas
managementLIF: example.mgmt.fqdn.aws.com
nasType: smb
dataLIF: 10.0.0.15
svm: nfs_svm
smbShare: smb-share
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
storagePrefix: myPrefix_
名稱範本的後端組態範例
---
version: 1
storageDriverName: ontap-nas
backendName: ontap-nas-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}}"
虛擬集區的後端範例
在下面顯示的後端定義檔案範例中、會針對所有儲存池設定特定的預設值、例如 spaceReserve
無、 spaceAllocation
假、和 encryption
錯。虛擬資源池是在儲存區段中定義的。
Trident 會在「意見」欄位中設定資源配置標籤。註解是在 FlexVol for 或 FlexGroup for ontap-nas-flexgroup
上設定 ontap-nas
。Trident 會在資源配置時、將虛擬集區上的所有標籤複製到儲存磁碟區。為了方便起見、儲存管理員可以針對每個虛擬資源池定義標籤、並依標籤將磁碟區分組。
在這些範例中、有些儲存池是自行設定的 spaceReserve
、 spaceAllocation`和 `encryption
值、而某些資源池會覆寫預設值。
ONTAP NAS 範例
---
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
svm: svm_nfs
username: admin
password: <password>
nfsMountOptions: nfsvers=4
defaults:
spaceReserve: none
encryption: "false"
qosPolicy: standard
labels:
store: nas_store
k8scluster: prod-cluster-1
region: us_east_1
storage:
- labels:
app: msoffice
cost: "100"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
adaptiveQosPolicy: adaptive-premium
- labels:
app: slack
cost: "75"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
department: legal
creditpoints: "5000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
app: wordpress
cost: "50"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
app: mysqldb
cost: "25"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
ONTAP NAS FlexGroup 範例
---
version: 1
storageDriverName: ontap-nas-flexgroup
managementLIF: 10.0.0.1
svm: svm_nfs
username: vsadmin
password: <password>
defaults:
spaceReserve: none
encryption: "false"
labels:
store: flexgroup_store
k8scluster: prod-cluster-1
region: us_east_1
storage:
- labels:
protection: gold
creditpoints: "50000"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
- labels:
protection: gold
creditpoints: "30000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
protection: silver
creditpoints: "20000"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
protection: bronze
creditpoints: "10000"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
ONTAP NAS 經濟效益範例
---
version: 1
storageDriverName: ontap-nas-economy
managementLIF: 10.0.0.1
svm: svm_nfs
username: vsadmin
password: <password>
defaults:
spaceReserve: none
encryption: "false"
labels:
store: nas_economy_store
region: us_east_1
storage:
- labels:
department: finance
creditpoints: "6000"
zone: us_east_1a
defaults:
spaceReserve: volume
encryption: "true"
unixPermissions: "0755"
- labels:
protection: bronze
creditpoints: "5000"
zone: us_east_1b
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0755"
- labels:
department: engineering
creditpoints: "3000"
zone: us_east_1c
defaults:
spaceReserve: none
encryption: "true"
unixPermissions: "0775"
- labels:
department: humanresource
creditpoints: "2000"
zone: us_east_1d
defaults:
spaceReserve: volume
encryption: "false"
unixPermissions: "0775"
將後端對應至StorageClass
請參閱下列 StorageClass 定義 虛擬集區的後端範例。使用 parameters.selector
欄位中、每個 StorageClass 都會呼叫哪些虛擬集區可用於主控磁碟區。磁碟區將會在所選的虛擬資源池中定義各個層面。
-
。
protection-gold
StorageClass 會對應至中的第一個和第二個虛擬集區ontap-nas-flexgroup
後端:這是唯一提供金級保護的資源池。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-nas-flexgroup
後端:這是唯一提供金級以外保護層級的資源池。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-nas
後端:這是唯一為 mysqldb 類型應用程式提供儲存池組態的集區。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4"
-
t
protection-silver-creditpoints-20k
StorageClass 會對應至中的第三個虛擬集區ontap-nas-flexgroup
後端:這是唯一提供銀級保護和 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-nas
後端和中的第二個虛擬集區ontap-nas-economy
後端:這是唯一擁有 5000 個信用點數的集區方案。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4"
Trident 會決定要選取哪個虛擬集區、並確保符合儲存需求。
更新 dataLIF
初始組態之後
您可以在初始設定後變更 dataLIF ,方法是執行下列命令,以更新的 dataLIF 提供新的後端 JSON 檔案。
tridentctl update backend <backend-name> -f <path-to-backend-json-file-with-updated-dataLIF>
|
如果 PVCS 連接到一個或多個 Pod ,您必須關閉所有對應的 Pod ,然後重新啟動,新的 dataLIF 才會生效。 |
安全 SMB 範例
使用 ontap-nas 驅動程式的後端配置
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
svm: svm2
nasType: smb
defaults:
adAdminUser: tridentADtest
credentials:
name: backend-tbc-ontap-invest-secret
使用 ontap-nas-economy 驅動程式的後端配置
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas-economy
managementLIF: 10.0.0.1
svm: svm2
nasType: smb
defaults:
adAdminUser: tridentADtest
credentials:
name: backend-tbc-ontap-invest-secret
具有儲存池的後端配置
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
svm: svm0
useREST: false
storage:
- labels:
app: msoffice
defaults:
adAdminUser: tridentADuser
nasType: smb
credentials:
name: backend-tbc-ontap-invest-secret
採用 ontap-nas 驅動程式的儲存類別範例
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-smb-sc
annotations:
trident.netapp.io/smbShareAdUserPermission: change
trident.netapp.io/smbShareAdUser: tridentADtest
parameters:
backendType: ontap-nas
csi.storage.k8s.io/node-stage-secret-name: smbcreds
csi.storage.k8s.io/node-stage-secret-namespace: trident
trident.netapp.io/nasType: smb
provisioner: csi.trident.netapp.io
reclaimPolicy: Delete
volumeBindingMode: Immediate
|
確保添加 `annotations`啟用安全 SMB。如果沒有註釋,安全 SMB 就無法運作,無論後端或 PVC 中設定了什麼配置。 |
採用 ontap-nas-economy 驅動程式的儲存類別範例
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-smb-sc
annotations:
trident.netapp.io/smbShareAdUserPermission: change
trident.netapp.io/smbShareAdUser: tridentADuser3
parameters:
backendType: ontap-nas-economy
csi.storage.k8s.io/node-stage-secret-name: smbcreds
csi.storage.k8s.io/node-stage-secret-namespace: trident
trident.netapp.io/nasType: smb
provisioner: csi.trident.netapp.io
reclaimPolicy: Delete
volumeBindingMode: Immediate
具有單一 AD 使用者的 PVC 範例
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc4
namespace: trident
annotations:
trident.netapp.io/smbShareAccessControl: |
change:
- tridentADtest
read:
- tridentADuser
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: ontap-smb-sc
具有多個 AD 使用者的 PVC 範例
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-test-pvc
annotations:
trident.netapp.io/smbShareAccessControl: |
full_control:
- tridentTestuser
- tridentuser
- tridentTestuser1
- tridentuser1
change:
- tridentADuser
- tridentADuser1
- tridentADuser4
- tridentTestuser2
read:
- tridentTestuser2
- tridentTestuser3
- tridentADuser2
- tridentADuser3
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi