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

ONTAP SAN 設定選項和範例

了解如何在 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 系統。

註 ASA r2 系統僅支援 `ontap-san`驅動程式(使用 iSCSI、NVMe/TCP 和 FC 協定)。

後端組態選項

請參閱下表以了解後端組態選項:

參數 說明 預設

version

始終為 1

storageDriverName

儲存驅動程式的名稱

ontap-sanontap-san-economy

backendName

自訂名稱或儲存後端

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

managementLIF

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

可以指定完全限定網域名稱(FQDN)。

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

如需無縫 MetroCluster 切換、請參閱 MetroCluster 範例

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

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

dataLIF

協定 LIF 的 IP 位址。如果 Trident 是使用 IPv6 旗標安裝的,則可以設定為使用 IPv6 位址。IPv6 位址必須用方括號定義,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。*對於 iSCSI,請勿指定此參數。*Trident 使用"ONTAP Selective LUN Map"來發現建立多路徑會話所需的 iSCSI LIF。如果 `dataLIF`明確定義了此參數,則會產生警告。*對於 MetroCluster,請省略此參數。*請參閱MetroCluster 範例

由 SVM 導出

svm

要使用的儲存虛擬機器 *MetroCluster 除外。*請參閱MetroCluster 範例

如果指定了 managementLIF SVM,則衍生

useCHAP

使用 CHAP 對 ONTAP SAN 驅動程式的 iSCSI 進行驗證 [布林值]。設定為 `true`時、Trident 會將雙向 CHAP 設定並用作後端中指定 SVM 的預設驗證。詳情請參閱 "準備使用 ONTAP SAN 驅動程式配置後端"不支援 FCP 或 NVMe/TCP。

false

chapInitiatorSecret

CHAP 啟動器密碼。如果 `useCHAP=true`則為必填項目

""

labels

要套用於磁碟區的任意 JSON 格式標籤集

""

chapTargetInitiatorSecret

CHAP 目標啟動器密碼。如果 `useCHAP=true`則為必填項目

""

chapUsername

入站使用者名稱。如果 `useCHAP=true`則為必填項目

""

chapTargetUsername

目標使用者名稱。如果 `useCHAP=true`則為必填項目

""

clientCertificate

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

""

clientPrivateKey

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

""

trustedCACertificate

受信任 CA 憑證的 Base64 編碼值。此參數為可選。用於憑證型驗證。

""

username

與 ONTAP 叢集通訊所需的使用者名稱。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證對後端 SVM 進行 Trident 驗證"

""

password

與 ONTAP 叢集通訊所需的密碼。用於基於憑證的身份驗證。有關 Active Directory 驗證,請參閱 "使用 Active Directory 憑證對後端 SVM 進行 Trident 驗證"

""

svm

要使用的儲存虛擬機器

如果指定了 managementLIF SVM,則衍生

storagePrefix

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

trident

aggregate

用於配置的 Aggregate (選用;如果設定,則必須指派給 SVM)。對於 ontap-nas-flexgroup 驅動程式,此選項將被忽略。如果未指派,則可以使用任何可用的 Aggregate 來配置 FlexGroup Volume。

註 當 SVM 中的 Aggregate 更新時,Trident 會自動輪詢 SVM 並更新,無需重新啟動 Trident Controller。如果您已在 Trident 中設定用於配置 Volume 的特定 Aggregate,則如果該 Aggregate 被重新命名或從 SVM 中移出,後端將在輪詢 SVM Aggregate 時進入故障狀態。您必須將該 Aggregate 變更為 SVM 中已存在的 Aggregate,或將其完全移除,才能使後端恢復連線狀態。

請勿為 ASA r2 系統指定

""

limitAggregateUsage

如果使用率超過此百分比,則配置失敗。如果您使用的是 Amazon FSx for NetApp ONTAP 後端,請勿指定 limitAggregateUsage。提供的 `fsxadmin`和 `vsadmin`不包含使用 Trident 檢索 Aggregate 使用情況並加以限制所需的權限。請勿為 ASA r2 系統指定

" (預設不強制執行)

limitVolumeSize

如果請求的磁碟區大小超過此值,則配置失敗。此外,也會限制其管理的 LUN 磁碟區大小上限。

" (預設不強制執行)

lunsPerFlexvol

每個 FlexVol 的最大 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`;若要使用 ONTAPI(ZAPI)呼叫,請將 `useREST`變更為 `false`。

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`命令指定命令列引數,這些引數將在每次格式化磁碟區時套用。這樣可讓您根據自己的偏好格式化磁碟區。請確保指定的 formatOptions 與 mkfs 命令選項類似,但不包含裝置路徑。範例:"-E nodiscard"

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

limitVolumePoolSize

在 ontap-san-economy 後端使用 LUN 時可請求的最大 FlexVol 大小。

" (預設不強制執行)

denyNewVolumePools

限制 `ontap-san-economy`後端建立新的 FlexVol 磁碟區以包含其 LUN 。僅使用預先存在的 Flexvol 來配置新的 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 網域控制器存取"

步驟
  1. 為後端 SVM 設定網域名稱系統(Domain Name System、DNS)設定:

    vserver services dns create -vserver <svm_name> -dns-servers <dns_server_ip1>,<dns_server_ip2>

  2. 執行下列命令、在 Active Directory 中為 SVM 建立電腦帳戶:

    vserver active-directory create -vserver DataSVM -account-name ADSERVER1 -domain demo.netapp.com

  3. 使用此命令建立 AD 使用者或群組來管理叢集或 SVM

    security login create -vserver <svm_name> -user-or-group-name <ad_user_or_group> -application <application> -authentication-method domain -role vsadmin

  4. 在 Trident 後端組態檔中,將 usernamepassword 參數分別設定為 AD 使用者或群組名稱和密碼。

磁碟區配置的後端組態選項

您可以使用 defaults 配置部分中的這些選項來控制預設配置。例如、請參閱下面的組態範例。

參數 說明 預設

spaceAllocation

LUN 的空間分配

"true" 如果指定、請針對 ASA r2 系統設定為 true

spaceReserve

空間保留模式;「 none 」(精簡)或「 volume 」(完整)。針對 ASA r2 系統設為 none

"none"

snapshotPolicy

要使用的快照原則。針對 ASA r2 系統設定為 none

"none"

qosPolicy

要為建立的磁碟區指派 QoS 策略群組。每個儲存資源池/後端可選擇 qosPolicy 或 adaptiveQosPolicy 其中之一。搭配 Trident 使用 QoS 策略群組需要 ONTAP 9.8 或更新版本。您應該使用非共享的 QoS 策略群組,並確保該策略群組單獨套用至每個成員。共享的 QoS 策略群組會強制限制所有工作負載的總吞吐量上限。

""

adaptiveQosPolicy

為建立的磁碟區指派的自適應 QoS 原則群組。為每個儲存資源池 / 後端選擇 qosPolicy 或 adaptiveQosPolicy 其中之一

""

snapshotReserve

為快照預留的磁碟區百分比。請勿為 ASA r2 系統指定

若 `snapshotPolicy`為「none」,則為「0」,否則為「」

splitOnClone

建立時將複本從其父項分割

"false"

encryption

在新磁碟區上啟用 NetApp Volume Encryption(NVE);預設值為 false。要使用此選項,叢集必須已獲得 NVE 許可並啟用 NVE。如果後端啟用了 NAE,則在 Trident 中佈建的任何磁碟區都會啟用 NAE。如需詳細資訊,請參閱:"Trident 與 NVE 和 NAE 的運作方式"

"false" 如果指定、請針對 ASA r2 系統設定為 true

luksEncryption

啟用 LUKS 加密。請參閱"使用 Linux Unified Key Setup ( LUKS )"

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

tieringPolicy

分層策略使用「無」 請勿為 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 會額外增加 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 為 FlexVol 額外增加的 10% ,以容納 LUN 元資料。對於 snapshotReserve = 5% ,且 PVC 請求 = 5 GiB ,總磁碟區大小為 5.79 GiB ,可用大小為 5.5 GiB 。 `volume show`命令應顯示與此範例類似的結果:

顯示 volume show 命令的輸出。

目前,調整大小是將新計算方法應用於現有磁碟區的唯一方法。

最小組態範例

以下範例展示了基本配置,其中大多數參數都保留預設值。這是定義後端最簡單的方法。

註 如果您在 NetApp ONTAP 上使用 Amazon FSx for NetApp ONTAP 搭配 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 複製與復原" 期間進行切換和切換後手動更新後端定義。

為了實現無縫切換和回退,請使用 managementLIF 指定 SVM 並省略 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>
基於憑證的驗證範例

在這個基本設定範例中 clientCertificateclientPrivateKeytrustedCACertificate(選用,如果使用受信任的 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

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 economy 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
使用 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}}"
formatOptions ontap-san-economy 驅動程式範例
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: ""
svm: svm1
username: ""
password: "!"
storagePrefix: whelk_
debugTraceFlags:
  method: true
  api: true
defaults:
  formatOptions: -E nodiscard

具有虛擬資源池的後端範例

在這些範例後端定義檔中,所有儲存池都設定了特定的預設值,例如 `spaceReserve`為 none、 `spaceAllocation`為 false 和 `encryption`為 false。虛擬資源池在儲存區段中定義。

Trident 在「備註」欄位中設定配置標籤。備註設置在 FlexVol volume 上。Trident 在配置時將虛擬資源池上的所有標籤複製到儲存磁碟區。為了方便起見,儲存管理員可以為每個虛擬資源池定義標籤,並按標籤將磁碟區分組。

在這些範例中,部分儲存資源池設定了自己的 spaceReservespaceAllocationencryption 值,而部分儲存資源池則覆寫了預設值。

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"

將後端對應至 StorageClasses

以下 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 creditpoints 的資源池。

    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 將決定選擇哪個虛擬資源池,並確保符合儲存需求。