Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

SAN組態選項與範例ONTAP

貢獻者 netapp-aruldeepa juliantap netapp-mwallis

瞭解如何在 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

「torageDriverName」

儲存驅動程式名稱

ontap-san`或 `ontap-san-economy

「後端名稱」

自訂名稱或儲存後端

驅動程式名稱 + "_" + dataLIF

《馬納格門達利》

叢集或 SVM 管理 LIF 的 IP 位址。

您可以指定完整網域名稱(FQDN)。

如果使用 IPv6 旗標安裝 Trident 、則可設定為使用 IPv6 位址。IPv6 位址必須以方括弧定義,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]

如需無縫 MetroCluster 之間的互通性MetroCluster 範例、請參閱。

註 如果您使用的是「 vsadmin 」認證,則必須是 SVM 的認 managementLIF`證;如果使用的是「 admin 」認證,則必須是叢集的認證 `managementLIF

"10.0.0.1 " , "[2001:1234:abcd::fefe]

「DataLIF」

傳輸協定LIF的IP位址。如果使用 IPv6 旗標安裝 Trident 、則可設定為使用 IPv6 位址。IPv6 位址必須以方括弧定義,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。* 請勿指定 iSCSI 。 Trident 使用"可選擇的LUN對應ONTAP"來探索建立多重路徑工作階段所需的 iSCSI 生命。如果明確定義、就會產生警告 dataLIF MetroCluster 省略。 *請參閱MetroCluster 範例

源自SVM

《虛擬機器》

要使用的儲存虛擬機器

* MetroCluster 請省略。 * 請參閱 MetroCluster 範例

如果指定SVM "managementLIF"則衍生

《使用CHAP》

使用CHAP驗證iSCSI以供ONTAP 支援不支援的SAN驅動程式使用[布林值]。設為 true、讓 Trident 設定並使用雙向 CHAP 做為後端所指定 SVM 的預設驗證。如 "準備使用ONTAP 支援的SAN驅動程式來設定後端" 需詳細資訊、請參閱。*不支援 FCP 或 NVMe/TCP。 *

「假」

《chapInitiator機密》

CHAP啟動器密碼。如果是"useCHAP=true"、則為必要項目

"

《標籤》

套用到磁碟區的任意JSON-格式化標籤集

"

《chapTargetInitiator機密》

CHAP目標啟動器機密。如果是"useCHAP=true"、則為必要項目

"

「chapUsername」

傳入使用者名稱。如果是"useCHAP=true"、則為必要項目

"

《chapTargetUsername》

目標使用者名稱。如果是"useCHAP=true"、則為必要項目

"

「用戶端憑證」

用戶端憑證的Base64編碼值。用於憑證型驗證

"

「clientPrivate Key」

用戶端私密金鑰的Base64編碼值。用於憑證型驗證

"

「可信賴的CACertifcate」

受信任CA憑證的Base64編碼值。選用。用於憑證型驗證。

"

《使用者名稱》

與ONTAP 該叢集通訊所需的使用者名稱。用於認證型驗證。

"

密碼

與ONTAP 該叢集通訊所需的密碼。用於認證型驗證。

"

《虛擬機器》

要使用的儲存虛擬機器

如果指定SVM "managementLIF"則衍生

「toragePrefix」

在SVM中配置新磁碟區時所使用的前置碼。稍後無法修改。若要更新此參數、您需要建立新的後端。

trident

《Aggregate》

用於資源配置的Aggregate(選用;如果已設定、則必須指派給SVM)。對於 `ontap-nas-flexgroup`驅動程式、此選項會被忽略。如果未指派、 任何可用的集合體都可用於佈建 FlexGroup Volume 。

註 在 SVM 中更新 Aggregate 時、它會透過輪詢 SVM 而無需重新啟動 Trident 控制器、在 Trident 中自動更新。當您在 Trident 中設定特定的 Aggregate 以配置 Volume 時、如果將 Aggregate 重新命名或移出 SVM 、則在輪詢 SVM Aggregate 時、後端將會移至 Trident 中的失敗狀態。您必須將 Aggregate 變更為 SVM 上的 Aggregate 、或是將其全部移除、才能使後端重新上線。

不要指定 ASA r2 系統

"

「限制Aggregateusage」

如果使用率高於此百分比、則無法進行資源配置。如果您使用 Amazon FSX for NetApp ONTAP 後端、請勿指定 limitAggregateUsage。提供的 `fsxadmin`和 `vsadmin`不包含使用 Trident 擷取彙總使用量並加以限制所需的權限。不要指定 ASA r2 系統

""(預設不強制執行)

《限制Volume大小》

如果要求的磁碟區大小高於此值、則資源配置失敗。也會限制其管理 LUN 的最大磁碟區大小。

"" (預設不會強制執行)

《lunsPerFlexvol》

每FlexVol 個LUN的最大LUN數量、範圍必須在[50、200]

100

「DebugTraceFlags」

疑難排解時要使用的偵錯旗標。例如、 { "api" : false 、 "method" : true}

除非您正在進行疑難排解並需要詳細的記錄傾印、否則請勿使用。

null

《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 的要求。

註 NVMe 僅支援ONTAP REST API,不支援 ONTAPI (ZAPI)。

如果指定,則始終設定為 `true`適用於ASA r2 系統

true 對於 ONTAP 9.15.1 或更高版本,否則 false

sanType

用於選擇 iscsi iSCSI 、 nvme NVMe / TCP 或 fcp SCSI over Fibre Channel ( FC )。

iscsi 如果空白

formatOptions

用於 formatOptions`指定命令的命令列引數、每當格式化磁碟區時都會套用這些引數 `mkfs。這可讓您根據偏好設定來格式化 Volume 。請務必指定與 mkfs 命令選項類似的格式選項、但不包括裝置路徑。範例:「 -E nobard 」

*支援 `ontap-san`和 `ontap-san-economy`帶有 iSCSI 協定的驅動程式。 **此外,在使用 iSCSI 和 NVMe/TCP 協定時,支援 ASA r2 系統。 *

limitVolumePoolSize

在 ONTAP SAN 經濟型後端中使用 LUN 時、可要求的最大 FlexVol 大小。

""(預設不強制執行)

denyNewVolumePools

限制 `ontap-san-economy`後端建立新的 FlexVol 磁碟區以包含其 LUN 。只有預先存在的 FlexVols 可用於佈建新的 PV 。

使用 formatOptions 的建議

Trident 建議使用下列選項來加速格式化程序:

*-E nobard : *

  • 保留、請勿嘗試在 mkfs 時間捨棄區塊(丟棄區塊一開始在固態裝置和稀疏 / 精簡配置儲存設備上很有用)。這會取代已過時的選項「 -K 」,而且適用於所有檔案系統( xfs , ext3 和 ext4 )。

用於資源配置磁碟區的後端組態選項

您可以使用中的這些選項來控制預設資源配置 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 」如果 snapshotPolicy 為「無」、否則為「」

「PlitOnClone」

建立複本時、從其父複本分割複本

"假"

加密

在新磁碟區上啟用 NetApp Volume Encryption ( NVE );預設為 false。必須在叢集上授權並啟用NVE、才能使用此選項。如果在後端啟用 NAE 、則 Trident 中配置的任何 Volume 都將啟用 NAE 。如需更多資訊、請參閱"Trident 如何與 NVE 和 NAE 搭配運作":。

“false” 如果指定,則設定為 `true`適用於 ASA r2 系統

luksEncryption

啟用LUKS加密。請參閱 "使用Linux統一金鑰設定(LUKS)"

"" 設定為 `false`適用於 ASA r2 系統

「分層政策」

分層策略使用「無」 不要為 ASA r2 系統指定

nameTemplate

建立自訂磁碟區名稱的範本。

"

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、 Trident 會為 FlexVol 額外增加 10% 的容量、以容納 LUN 中繼資料。LUN的配置大小與使用者在PVc中要求的大小完全相同。Trident 將 10% 新增至 FlexVol (在 ONTAP 中顯示為可用大小)。使用者現在可以取得所要求的可用容量。此變更也可防止LUN成為唯讀、除非可用空間已充分利用。這不適用於ONTAP-san經濟型。

對於定義的後端 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 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>
憑證型驗證範例

在此基本組態範例中 clientCertificateclientPrivateKey`和 `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

ONTAP SAN CHAP 範例
---
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>
ONTAP SAN 經濟 CHAP 範例
---
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
名稱範本的後端組態範例
---
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 上設定的註解會將虛擬集區上的所有標籤複製到資源配置時的儲存磁碟區。為了方便起見、儲存管理員可以針對每個虛擬資源池定義標籤、並依標籤將磁碟區分組。

在這些範例中、有些儲存池是自行設定的 spaceReservespaceAllocation`和 `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 都會呼叫哪些虛擬集區可用於主控磁碟區。磁碟區將會在所選的虛擬資源池中定義各個層面。

  • 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 會決定要選取哪個虛擬集區、並確保符合儲存需求。