ONTAP SAN配置选项和示例
了解如何在Astra三端安装中创建和使用ONTAP SAN驱动程序。本节提供了将后端映射到StorageClasses的后端配置示例和详细信息。
后端配置选项
有关后端配置选项,请参见下表:
参数 | 说明 | 默认 |
---|---|---|
|
始终为 1 |
|
|
存储驱动程序的名称 |
|
|
自定义名称或存储后端 |
驱动程序名称+"_"+ dataLIF |
|
集群或SVM管理LIF的IP地址。可以指定完全限定域名(FQDN)。如果使用IPv6标志安装了Asta三元组、则可以设置为使用IPv6地址。IPv6地址必须用方括号定义,例如 |
"10.0.0.1 " , "2001 : 1234 : abcd ::: fefe] " |
|
协议 LIF 的 IP 地址。*不指定iSCSI。*Asta Trident使用"ONTAP 选择性LUN映射"发现建立多路径会话所需的iSCI LUN。如果明确定义、则会生成警告 |
由SVM派生 |
|
要使用的Storage Virtual Machine *省略for MetroCluster。*请参见[mcc-best]。 |
如果指定了SVM、则派生此参数 |
|
使用CHAP对iSCSI的ONTAP SAN驱动程序进行身份验证[布尔值]。将设置为 `true`可使Astra Trident配置双向CHAP并将其用作后端中提供的SVM的默认身份验证。有关详细信息、请参见 "准备使用ONTAP SAN驱动程序配置后端" 。 |
|
|
CHAP 启动程序密钥。如果需要、则为必需项 |
"" |
|
要应用于卷的一组任意 JSON 格式的标签 |
"" |
|
CHAP 目标启动程序密钥。如果需要、则为必需项 |
"" |
|
入站用户名。如果需要、则为必需项 |
"" |
|
目标用户名。如果需要、则为必需项 |
"" |
|
客户端证书的 Base64 编码值。用于基于证书的身份验证 |
"" |
|
客户端专用密钥的 Base64 编码值。用于基于证书的身份验证 |
"" |
|
受信任 CA 证书的 Base64 编码值。可选。用于基于证书的身份验证。 |
"" |
|
与ONTAP 集群通信所需的用户名。用于基于凭据的身份验证。 |
"" |
|
与ONTAP 集群通信所需的密码。用于基于凭据的身份验证。 |
"" |
|
要使用的 Storage Virtual Machine |
如果指定了SVM、则派生此参数 |
|
在 SVM 中配置新卷时使用的前缀。无法稍后修改。要更新此参数、您需要创建一个新的后端。 |
|
|
如果使用量超过此百分比,则配置失败。如果您使用的是Amazon FSx for NetApp ONTAP后端,请勿指定 |
"" (默认情况下不强制实施) |
|
如果请求的卷大小超过此值、则配置失败。此外、还会限制它为qtree和LUN管理的卷的最大大小。 |
"" (默认情况下不强制实施) |
|
每个 FlexVol 的最大 LUN 数,必须在 50 , 200 范围内 |
|
|
故障排除时要使用的调试标志。例如、除非您正在进行故障排除并需要详细的日志转储、否则不会使用{"api":false、"METHO":true}。 |
|
|
用于使用 ONTAP REST API 的布尔参数。 |
|
|
用于为iSCSI或NVMe/TCP选择 |
`iscsi`如果为空 |
用于配置卷的后端配置选项
您可以在配置部分使用这些选项控制默认配置 defaults
。有关示例,请参见以下配置示例。
参数 | 说明 | 默认 |
---|---|---|
|
LUN 的空间分配 |
"正确" |
|
空间预留模式;"无"(精简)或"卷"(厚) |
"无" |
|
要使用的 Snapshot 策略 |
"无" |
|
要为创建的卷分配的 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一。在 Astra Trident 中使用 QoS 策略组需要 ONTAP 9.8 或更高版本。建议使用非共享QoS策略组、并确保策略组分别应用于每个成分卷。共享 QoS 策略组将对所有工作负载的总吞吐量实施上限。 |
"" |
|
要为创建的卷分配的自适应 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一 |
"" |
|
为快照预留的卷百分比 |
如果为"none"、则为"0" |
|
创建克隆时,从其父级拆分该克隆 |
"错误" |
|
在新卷上启用NetApp卷加密(NVE);默认为 |
"错误" |
|
启用LUKS加密。请参阅 "使用Linux统一密钥设置(LUKS)"。NVMe/TCP不支持使用此类数据加密。 |
"" |
|
新卷的安全模式 |
|
|
使用"无"的层策略 |
对于ONTAP 9.5 SVM-DR之前的配置、为"仅快照" |
|
用于创建自定义卷名称的模板。 |
"" |
|
在LUS-SAN-Economy后端使用ONTAP时可要求的最大FlexVol大小。 |
"" (默认情况下不强制实施) |
卷配置示例
下面是一个定义了默认值的示例:
--- 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 、Asta Trident会向FlexVol额外添加10%的容量、以容纳LUN元数据。LUN 将使用用户在 PVC 中请求的确切大小进行配置。Astra Trident 将 FlexVol 增加 10% (在 ONTAP 中显示为可用大小)。用户现在将获得所请求的可用容量。此更改还可防止 LUN 变为只读状态,除非已充分利用可用空间。这不适用于 ontap-san-economy.
|
对于定义的后端 snapshotReserve
,Asta Trident将按如下方式计算卷的大小:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
1.1 是 Astra Trident 向 FlexVol 额外添加 10% 以容纳 LUN 元数据。对于 snapshotReserve
= 5%、PVC请求= 5 GiB、则卷总大小为5.79 GiB、可用大小为5.5 GiB。此 `volume show`命令应显示类似于以下示例的结果:
目前,调整大小是对现有卷使用新计算的唯一方法。
最低配置示例
以下示例显示了将大多数参数保留为默认值的基本配置。这是定义后端的最简单方法。
如果您将Amazon FSx on NetApp ONTAP与Asta Dent结合使用、则建议您为指定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>
ONTAP SAN经济性示例
--- version: 1 storageDriverName: ontap-san-economy managementLIF: 10.0.0.1 svm: svm_iscsi_eco username: vsadmin password: <password>
-
示例
您可以配置后端,以避免在期间切换和切回后手动更新后端定义"SVM复制和恢复"。
要进行无缝切换和切回、请使用指定SVM managementLIF
、并省略 `dataLIF`和 `svm`参数。例如:
--- version: 1 storageDriverName: ontap-san managementLIF: 192.168.1.66 username: vsadmin password: password
基于证书的身份验证示例
在此基本配置示例中 clientCertificate
, clientPrivateKey
、和 trustedCACertificate
(如果使用受信任CA,则为可选)分别填充 `backend.json`并采用base64编码的客户端证书值、专用密钥值和受信任CA证书值。
--- 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>
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
使用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}}_{{.volume.RequestName}}" }, "labels": {"cluster": "ClusterA", "PVC": "{{.volume.Namespace}}_{{.volume.RequestName}}"}
虚拟池后端示例
在这些示例后端定义文件中、会为所有存储池设置特定默认值、例如 spaceReserve
、在none、 `spaceAllocation`在false和 `encryption`在false。虚拟池在存储部分中进行定义。
A作用 是在"Comments"字段中设置配置标签。注释在FlexVol 上设置。在配置时、Astra Trident会将虚拟池上的所有标签复制到存储卷。为了方便起见、存储管理员可以按标签为每个虚拟池和组卷定义标签。
在这些示例中、某些存储池会设置自己的、 `spaceAllocation`和 `encryption`值、而某些存储 `spaceReserve`池会覆盖默认值。
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
。只有这些池提供的保护级别不是gold。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`驱动程序 `sanType: nvme`中的虚拟池 `ontap-san
。这是唯一的池选项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"
Astra Trident将决定选择哪个虚拟池、并确保满足存储要求。