ONTAP SAN配置选项和示例
创建 ONTAP SAN 驱动程序并在 Trident 安装中使用。本节提供后端配置示例以及将后端映射到 StorageClasses 的详细信息。"ASA r2系统" 在其存储层的实现上与其他 ONTAP 系统(ASA、AFF 和 FAS)有所不同。这些差异会影响某些参数的使用,具体如注释所示。"详细了解 ASA r2 系统与其他 ONTAP 系统之间的差异"。在 Trident 后端配置中,无需指定您的系统为 ASA r2。当您选择 `ontap-san`作为 `storageDriverName`时,Trident 会自动检测 ASA r2 或其他 ONTAP 系统。某些后端配置参数不适用于 ASA r2 系统,如下表所示。
|
|
只有 `ontap-san`ASA r2 系统支持驱动程序(支持 iSCSI、NVMe/TCP 和 FC 协议)。 |
后端配置选项
从 26.06 版本开始,您可以启用 ONTAP 均衡放置,以便 ONTAP 为新卷选择聚合。有关要求和示例,请参阅 "使用 ONTAP 后端的均衡放置"。
有关后端配置选项,请参见下表:
| 参数 | Description | Default | ||
|---|---|---|---|---|
|
始终为 1 |
|||
|
存储驱动程序的名称 |
|
||
|
自定义名称或存储后端 |
驱动程序名称+"_"+ dataLIF |
||
|
集群或SVM管理LIF的IP地址。 可以指定完全限定域名(FQDN)。 如果Trident是使用IPv6标志安装的、则可以设置为使用IPv6地址。IPv6地址必须用方括号定义,例如 有关无缝MetroCluster切换的信息,请参见MetroCluster示例。
|
"10.0.0.1"、"[2001:1234:abc:::fefe]" |
||
|
协议 LIF 的 IP 地址。如果Trident是使用IPv6标志安装的、则可以设置为使用IPv6地址。IPv6地址必须用方括号定义,例如 |
由SVM派生 |
||
|
要使用的 Storage Virtual Machine |
如果指定了 SVM |
||
|
使用CHAP对iSCSI的ONTAP SAN驱动程序进行身份验证[布尔值]。将设置为 |
|
||
|
CHAP 启动程序密钥。如果为 |
"" |
||
|
要应用于卷的一组任意 JSON 格式的标签 |
"" |
||
|
CHAP 目标启动程序密钥。如果为 |
"" |
||
|
入站用户名。如果为 |
"" |
||
|
目标用户名。如果为 |
"" |
||
|
客户端证书的 Base64 编码值。用于基于证书的身份验证 |
"" |
||
|
客户端专用密钥的 Base64 编码值。用于基于证书的身份验证 |
"" |
||
|
受信任 CA 证书的 Base64 编码值。可选。用于基于证书的身份验证。 |
"" |
||
|
与ONTAP集群通信所需的用户名。用于基于凭证的身份验证。有关 Active Directory 身份验证,请参阅 "使用 Active Directory 凭据向后端 SVM 验证Trident 的身份"。 |
"" |
||
|
与ONTAP集群通信所需的密码。用于基于凭证的身份验证。有关 Active Directory 身份验证,请参阅 "使用 Active Directory 凭据向后端 SVM 验证Trident 的身份"。 |
"" |
||
|
要使用的 Storage Virtual Machine |
如果指定了 SVM |
||
|
在 SVM 中预置新卷时使用的前缀。以后无法修改。要更新此参数,需要创建新的后端。 |
|
||
|
用于配置的聚合(可选;如果设置,则必须分配给 SVM)。对于 `ontap-nas-flexgroup`驱动程序,此选项将被忽略。如果未分配,则可以使用任何可用的聚合来配置 FlexGroup 卷。
不要指定 ASA r2 系统。 当 `useBalancedPlacement`设置为 `true`时,请勿指定。 |
"" |
||
|
将新卷的聚合选择委托给 ONTAP [Boolean]。需要 ONTAP 9.19.1 或更高版本,并将 有关要求和示例,请参见 "使用 ONTAP 后端的均衡放置"。 |
|
||
|
如果使用量超过此百分比,则配置失败。如果您使用的是Amazon FSx for NetApp ONTAP后端,请勿指定 |
"" (默认情况下不强制实施) |
||
|
如果请求的卷大小超过此值、则配置失败。此外、还会限制它为LUN管理的卷的大小上限。 |
""(默认情况下不强制实施) |
||
|
每个 FlexVol 的最大 LUN 数,必须在 50 , 200 范围内 |
|
||
|
故障排除时要使用的调试标志。例如、{"api":false、"METHO":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、 |
|
||
|
使用 `formatOptions`为 `mkfs`命令指定命令行参数,该命令在卷格式化时应用。这允许您根据自己的偏好格式化卷。请务必指定与 mkfs 命令选项类似的 formatOptions,不包括设备路径。示例:"-E nodiscard" 支持 `ontap-san`和 `ontap-san-economy`带有 iSCSI 协议的驱动程序。*此外,在使用 iSCSI 和 NVMe/TCP 协议时,支持 ASA r2 系统。* |
|||
|
在LUS-SAN-Economy后端使用ONTAP时可要求的最大FlexVol大小。 |
"" (默认情况下不强制实施) |
||
|
限制 `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 域控制器访问" 了解详情。
-
为后端 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 配置部分。有关示例,请参见以下配置示例。
| 参数 | Description | Default |
|---|---|---|
|
LUN 的空间分配 |
"true" 如果指定,则设置为 `true`适用于 ASA r2 系统。 |
|
空间预留模式;"无"(精简)或"卷"(厚)。设置为 `none`适用于 ASA r2 系统。 |
"无" |
|
要使用的Snapshot策略。设置为 `none`适用于 ASA r2 系统。 |
"无" |
|
要为创建的卷分配的 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一。将QoS策略组与Trident结合使用需要使用ONTAP 9™8或更高版本。您应使用非共享QoS策略组、并确保此策略组分别应用于每个成分卷。共享QoS策略组会对所有工作负载的总吞吐量实施上限。 |
"" |
|
要为创建的卷分配的自适应 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一 |
"" |
|
为快照预留的卷百分比。不要为 ASA r2 系统指定。 |
如果为"0"、则为"0" |
|
创建克隆时,从其父级拆分该克隆 |
false |
|
在新卷上启用 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和、NetApp建议您为Trident指定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>
均衡放置示例
此示例启用 ONTAP 平衡放置,以便 ONTAP 为新卷选择聚合。均衡放置需要 ONTAP 9.19.1 或更高版本。有关详细信息,请参阅 "使用 ONTAP 后端的均衡放置"。
---
version: 1
storageDriverName: ontap-san
backendName: san-balanced-placement
managementLIF: 10.0.0.1
svm: svm_iscsi
username: vsadmin
password: <password>
useBalancedPlacement: true
NVMe/TCP示例
您必须在ONTAP后端为SVM配置NVMe。这是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
基于FC的SCSI (FCP)示例
您必须在ONTAP后端为SVM配置FC。这是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经济驱动程序示例
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: ""
svm: svm1
username: ""
password: "!"
storagePrefix: whelk_
debugTraceFlags:
method: true
api: true
defaults:
formatOptions: -E nodiscard
虚拟池后端示例
在这些示例后端定义文件中、为所有存储池设置了特定默认值、例如 spaceReserve 无、 spaceAllocation 为false、和 encryption 为false。虚拟池在存储部分中进行定义。
Trident会在"Comments"字段中设置配置标签。在配置时、FlexVol volume Trident会将虚拟池上的所有标签复制到存储卷上、从而设置注释。为了方便起见、存储管理员可以按标签为每个虚拟池和组卷定义标签。
在这些示例中、某些存储池会自行设置 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"
将后端映射到 StorageClasses
以下 StorageClass 定义请参阅[虚拟池后端示例]。使用 `parameters.selector`字段,每个 StorageClass 指定哪些虚拟池可用于托管卷。卷现在具有所选虚拟池中定义的属性。
-
The
protection-goldStorageClass 映射到 `ontap-san`后端的第一个虚拟池。这是唯一提供黄金级保护的池。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4" -
The
protection-not-goldStorageClass 映射到 `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-mysqldbStorageClass 映射到 `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" -
The
protection-silver-creditpoints-20kStorageClass 映射到 `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" -
The
creditpoints-5kStorageClass 映射到 `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" -
The
my-test-app-scStorageClass 映射到ontap-san驱动程序中具有sanType: nvme的testAPP虚拟池。这是唯一提供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 决定选择哪个虚拟池,并确保满足存储要求。