列舉NAS組態選項與範例ONTAP
瞭解如何透過ONTAP Astra Trident安裝來建立及使用NetApp NAS驅動程式。本節提供後端組態範例、以及如何將後端對應至StorageClass的詳細資料。
後端組態選項
如需後端組態選項、請參閱下表:
| 參數 | 說明 | 預設 |
|---|---|---|
|
永遠為1 |
|
|
儲存驅動程式名稱 |
「ONTAP-NAS」、「ONTAP-NAS-節約 型」、「ONTAP-NAS-flexgroup」、「ONTAP-SAN」、「ONTAP-san經濟型」 |
|
自訂名稱或儲存後端 |
驅動程式名稱+「_」+ dataLIF |
|
叢集的IP位址或SVM管理LIF若要順暢MetroCluster 切換、您必須指定SVM管理LIF。 |
「10.0.0.1」、「[2001:1234:abcd:::fefo]」 |
|
傳輸協定LIF的IP位址。IPv6使用方括弧。設定後無法更新 |
除非另有說明、否則由SVM衍生 |
|
啟用自動匯出原則建立與更新[布 林值] |
錯 |
|
根據時間篩選Kubernetes節點IP的CIDR清單 |
[「0.00.0/0」、「:/0」] |
|
套用到磁碟區的任意JSON-格式化標籤集 |
「」 |
|
用戶端憑證的Base64編碼值。用於憑證型驗證 |
「」 |
|
用戶端私密金鑰的Base64編碼值。用於憑證型驗證 |
「」 |
|
受信任CA憑證的Base64編碼值。選用。用於憑證型驗證 |
「」 |
|
連線至叢集/ SVM的使用者名稱。用於認證型驗證 |
|
|
連線至叢集/ SVM的密碼。用於認證型驗證 |
|
|
要使用的儲存虛擬機器 |
如果是SVM則衍生 |
|
要使用之SAN磁碟區的igroup名稱 |
「Trident -<後端-UUID>」 |
|
在SVM中配置新磁碟區時所使用的前置碼。設定後無法更新 |
「Trident」 |
|
如果使用率高於此百分比、則無法進行資源配置。*不適用於Amazon FSX for ONTAP Sfor Sfor * |
「」(預設不強制執行) |
|
如果要求的磁碟區大小高於此值、則資源配置失敗。 |
「」(預設不強制執行) |
|
每FlexVol 個LUN的最大LUN數量、範圍必須在[50、200] |
「100」 |
|
疑難排解時要使用的偵錯旗標。範例:{"API":假、「方法」:true} |
null |
|
以逗號分隔的NFS掛載選項清單 |
「」 |
|
每FlexVol 個邊的最大qtree數、必須在範圍內[50、300] |
「200」 |
|
使用ONTAP Isrest API的布林參數。不支援MetroCluster 技術預覽。 |
錯 |
|
|
<code>useREST</code>注意事項
|
若要與ONTAP 此叢集通訊、您應該提供驗證參數。這可能是安全登入或安裝憑證的使用者名稱/密碼。
|
|
如果您使用Amazon FSX for NetApp ONTAP Sendbackend、請勿指定 limitAggregateUsage 參數。。 fsxadmin 和 vsadmin Amazon FSX for NetApp ONTAP 的角色不包含擷取Aggregate使用量及透過Astra Trident加以限制所需的存取權限。
|
|
|
請勿使用 debugTraceFlags 除非您正在疑難排解並需要詳細的記錄傾印。
|
|
|
建立後端時、請記住 dataLIF 和 storagePrefix 無法在建立後修改。若要更新這些參數、您需要建立新的後端。
|
您可以為指定完整網域名稱(FQDN) managementLIF 選項。也可以為指定FQDN dataLIF 選項、此時FQDN將用於NFS掛載作業。如此一來、您就能建立循環DNS、在多個資料生命期之間實現負載平衡。
`managementLIF` 對於所有ONTAP 的版本、也可以將所有的版本設定為IPv6位址。請務必使用安裝Astra Trident `--use-ipv6` 旗標。必須謹慎定義 `managementLIF` 方括弧內的IPv6位址。
|
|
使用IPv6位址時、請務必確認 managementLIF 和 dataLIF (如果包含在後端定義中)是在方括弧內定義、例如[28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。如果 dataLIF 未提供、Astra Trident會從SVM擷取IPv6資料lifs。
|
使用 autoExportPolicy 和 autoExportCIDRs 選項:「csi Trident」可自動管理匯出原則。所有的ONTAP-NAS-*驅動程式均支援此功能。
適用於 ontap-nas-economy 驅動程式 limitVolumeSize 選項也會限制其管理的qtree和LUN及的最大磁碟區大小 qtreesPerFlexvol 選項可自訂每FlexVol 個支援區的配額樹數上限。
。 nfsMountOptions 參數可用於指定掛載選項。Kubernetes持續磁碟區的掛載選項通常會在儲存類別中指定、但如果儲存類別中未指定掛載選項、則Astra Trident會改回使用儲存後端組態檔中指定的掛載選項。如果儲存類別或組態檔中未指定掛載選項、則Astra Trident不會在相關的持續磁碟區上設定任何掛載選項。
|
|
Astra Trident會在使用建立的所有磁碟區的「Comments」(註解)欄位中設定資源配置標籤(ontap-nas 和(ontap-nas-flexgroup。根據所使用的驅動程式、意見會設定在FlexVol 這個功能上 (ontap-nas)FlexGroup 或 (ontap-nas-flexgroup)。Astra Trident會在儲存資源池配置時、將儲存資源池上的所有標籤複製到儲存磁碟區。儲存管理員可以定義每個儲存資源池的標籤、並將儲存資源池中建立的所有磁碟區分組。這是根據後端組態中提供的一組可自訂標籤、方便區分磁碟區的方法。
|
用於資源配置磁碟區的後端組態選項
您可以在組態的特定區段中、使用這些選項來控制預設配置每個Volume的方式。如需範例、請參閱下列組態範例。
| 參數 | 說明 | 預設 |
|---|---|---|
|
LUN的空間分配 |
「真的」 |
|
空間保留模式;「無」(精簡)或「Volume」(完整) |
「無」 |
|
要使用的Snapshot原則 |
「無」 |
|
要指派給所建立磁碟區的QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy |
「」 |
|
要指派給所建立磁碟區的調適性QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy。不受ONTAP-NAS-經濟支援。 |
「」 |
|
保留給快照「0」的磁碟區百分比 |
如果 |
|
建立複本時、從其父複本分割複本 |
「假」 |
|
在新磁碟區上啟用NetApp Volume Encryption(NVE);預設為 |
「假」 |
|
新磁碟區的安全樣式 |
「UNIX」 |
|
分層原則以使用「無」 |
ONTAP 9.5之前的SVM-DR組態為「純快照」 |
unix權限 |
新磁碟區的模式 |
「777」 |
snapshotDir |
控制的可見度 |
「假」 |
匯出原則 |
要使用的匯出原則 |
「預設」 |
安全性樣式 |
新磁碟區的安全樣式 |
「UNIX」 |
|
|
搭配Astra Trident使用QoS原則群組需要ONTAP 使用更新版本的版本。建議使用非共用的QoS原則群組、並確保原則群組會個別套用至每個組成群組。共享的QoS原則群組將強制所有工作負載的總處理量上限。 |
以下是已定義預設值的範例:
{
"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`Astra Trident現在使用新的計算方法、確保FlexVol 利用snapshotReserve百分比和PVc正確調整尺寸。當使用者要求使用PVCs時、Astra Trident會FlexVol 使用新的計算方式、建立原始的包含更多空間的候選區。此計算可確保使用者在永久虛擬磁碟中獲得所要求的可寫入空間、且空間不得小於所要求的空間。在v21.07之前、當使用者要求使用PVC(例如5GiB)、快照保留區達到50%時、他們只能獲得2.5GiB的可寫入空間。這是因為使用者要求的是整個Volume和 `snapshotReserve 佔此比例。使用Trident 21.07時、使用者要求的是可寫入空間、而Astra Trident定義了 snapshotReserve 數字表示整個Volume的百分比。這不適用於 ontap-nas-economy。請參閱下列範例以瞭解此功能的運作方式:
計算方式如下:
Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)
對於snapshotReserve = 50%、而PVc要求= 5GiB、磁碟區總大小為2/0.5 = 10GiB、可用大小為5GiB、這是使用者在PVC要求中要求的大小。。 volume show 命令應顯示類似以下範例的結果:
在升級Astra Trident時、先前安裝的現有後端會按照上述說明來配置磁碟區。對於在升級之前建立的磁碟區、您應該調整其磁碟區大小、以便觀察變更。例如、採用的2GiB PVC snapshotReserve=50 先前產生的磁碟區提供1GiB的可寫入空間。例如、將磁碟區大小調整為3GiB、可讓應用程式在6 GiB磁碟區上擁有3GiB的可寫入空間。
最低組態範例
下列範例顯示基本組態、讓大部分參數保留預設值。這是定義後端最簡單的方法。
|
|
如果您在NetApp ONTAP 支援Trident的NetApp支援上使用Amazon FSX、建議您指定lifs的DNS名稱、而非IP位址。 |
ontap-nas 具有憑證型驗證的驅動程式
這是最小的後端組態範例。 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_"
}
ontap-nas 具有自動匯出原則的驅動程式
本範例說明如何指示Astra Trident使用動態匯出原則來自動建立及管理匯出原則。這對的運作方式相同 ontap-nas-economy 和 ontap-nas-flexgroup 驅動程式:
{
"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": "secret",
"nfsMountOptions": "nfsvers=4",
}
ontap-nas-flexgroup 驅動程式
{
"version": 1,
"storageDriverName": "ontap-nas-flexgroup",
"managementLIF": "10.0.0.1",
"dataLIF": "10.0.0.2",
"labels": {"k8scluster": "test-cluster-east-1b", "backend": "test1-ontap-cluster"},
"svm": "svm_nfs",
"username": "vsadmin",
"password": "secret",
}
ontap-nas 使用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": "netapp123"
}
ontap-nas-economy 驅動程式
{
"version": 1,
"storageDriverName": "ontap-nas-economy",
"managementLIF": "10.0.0.1",
"dataLIF": "10.0.0.2",
"svm": "svm_nfs",
"username": "vsadmin",
"password": "secret"
}
虛擬儲存資源池的後端範例
在下圖所示的範例後端定義檔案中、會針對所有儲存資源池設定特定的預設值、例如 spaceReserve 無、 spaceAllocation 假、和 encryption 錯。虛擬儲存資源池是在儲存區段中定義。
在此範例中、有些儲存資源池會自行設定 spaceReserve、 spaceAllocation`和 `encryption 值、部分集區會覆寫上述設定的預設值。
ontap-nas 驅動程式
{
{
"version": 1,
"storageDriverName": "ontap-nas",
"managementLIF": "10.0.0.1",
"dataLIF": "10.0.0.2",
"svm": "svm_nfs",
"username": "admin",
"password": "secret",
"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":{"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",
"dataLIF": "10.0.0.2",
"svm": "svm_nfs",
"username": "vsadmin",
"password": "secret",
"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-economy 驅動程式
{
"version": 1,
"storageDriverName": "ontap-nas-economy",
"managementLIF": "10.0.0.1",
"dataLIF": "10.0.0.2",
"svm": "svm_nfs",
"username": "vsadmin",
"password": "secret",
"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":{"department":"legal", "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會呼叫哪些虛擬資源池可用於裝載Volume。磁碟區將會在所選的虛擬資源池中定義各個層面。
-
第一個StorageClass (
protection-gold)將對應至中的第一個、第二個虛擬儲存資源池ontap-nas-flexgroup後端與中的第一個虛擬儲存資源池ontap-san後端:這是唯一提供金級保護的資源池。 -
第二個StorageClass (
protection-not-gold)將對應至中的第三、第四個虛擬儲存資源池ontap-nas-flexgroup中的後端和第二個、第三個虛擬儲存資源池ontap-san後端:這是唯一提供金級以外保護層級的資源池。 -
第三個StorageClass (
app-mysqldb)將對應至中的第四個虛擬儲存資源池ontap-nas中的後端和第三個虛擬儲存資源池ontap-san-economy後端:這些是唯一提供mysqldb類型應用程式儲存池組態的集區。 -
第四個StorageClass (
protection-silver-creditpoints-20k)將對應至中的第三個虛擬儲存資源池ontap-nas-flexgroup中的後端和第二個虛擬儲存資源池ontap-san後端:這些資源池是唯一能以20000個信用點數提供金級保護的資源池。 -
第五個StorageClass (
creditpoints-5k)將對應至中的第二個虛擬儲存資源池ontap-nas-economy中的後端和第三個虛擬儲存資源池ontap-san後端:這些是唯一提供5000個信用點數的資源池產品。
Astra Trident將決定選取哪個虛擬儲存資源池、並確保符合儲存需求。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: netapp.io/trident parameters: selector: "protection=gold" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: netapp.io/trident parameters: selector: "protection!=gold" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: netapp.io/trident parameters: selector: "app=mysqldb" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-silver-creditpoints-20k provisioner: netapp.io/trident parameters: selector: "protection=silver; creditpoints=20000" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: netapp.io/trident parameters: selector: "creditpoints=5000" fsType: "ext4"