ONTAP NAS配置选项和示例
了解如何创建ONTAP NAS驱动程序并将其用于Astra三端安装。本节提供了将后端映射到StorageClasses的后端配置示例和详细信息。
后端配置选项
有关后端配置选项,请参见下表:
参数 | 说明 | 默认 |
---|---|---|
|
始终为 1 |
|
|
存储驱动程序的名称 |
"ONTAP NAS "、"ONTAP NAS经济"、"ONTAP NAS灵活组"、"ONTAP SAN "、"ONTAP SAN经济" |
|
自定义名称或存储后端 |
驱动程序名称+"_"+ dataLIF |
|
集群或SVM管理LIF的IP地址可以指定完全限定域名(FQDN)。如果使用IPv6标志安装了Asta三元组、则可以设置为使用IPv6地址。IPv6地址必须用方括号定义,例如 |
"10.0.0.1 " , "2001 : 1234 : abcd ::: fefe] " |
|
协议 LIF 的 IP 地址。建议指定 |
指定的地址或派生自SVM (如果未指定)(不建议) |
|
要使用的Storage Virtual Machine *省略for MetroCluster。*请参见MetroCluster示例。 |
如果指定了SVM、则派生此参数 |
|
启用自动创建和更新导出策略[布尔值]。使用 `autoExportPolicy`和 `autoExportCIDRs`选项、Astra Trident可以自动管理导出策略。 |
false |
|
用于筛选KubeNet节点IP的CIDR列表(启用时)。 `autoExportPolicy`使用 `autoExportPolicy`和 `autoExportCIDRs`选项、Astra Trident可以自动管理导出策略。 |
["0.0.0.0/0、":::/0"]` |
|
要应用于卷的一组任意 JSON 格式的标签 |
"" |
|
客户端证书的 Base64 编码值。用于基于证书的身份验证 |
"" |
|
客户端专用密钥的 Base64 编码值。用于基于证书的身份验证 |
"" |
|
受信任 CA 证书的 Base64 编码值。可选。用于基于证书的身份验证 |
"" |
|
用于连接到集群 /SVM 的用户名。用于基于凭据的身份验证 |
|
|
连接到集群 /SVM 的密码。用于基于凭据的身份验证 |
|
|
在 SVM 中配置新卷时使用的前缀。设置后无法更新 |
"三级联" |
|
如果使用量超过此百分比,则配置失败。* 不适用于适用于 ONTAP 的 Amazon FSx * |
"" (默认情况下不强制实施) |
|
如果请求的卷大小超过此值、则配置失败。此外、还会限制它为qtrees和FlexVol管理的卷的大小上限、并且此选项允许自定义每个LUN `qtreesPerFlexvol`的qtrees的最大数量。 |
"" (默认情况下不强制实施) |
|
每个 FlexVol 的最大 LUN 数,必须在 50 , 200 范围内 |
"100" |
|
故障排除时要使用的调试标志。例如、除非您正在进行故障排除并需要详细的日志转储、否则不会使用{"api":false、"METHO":true} |
空 |
|
配置NFS或SMB卷创建。选项为 |
|
|
NFS挂载选项的逗号分隔列表。Kubernetes持久卷的挂载选项通常在存储类中指定、但如果在存储类中未指定挂载选项、则Astra Trident将回退到使用存储后端配置文件中指定的挂载选项。如果在存储类或配置文件中未指定挂载选项、则Astra Trident不会在关联的永久性卷上设置任何挂载选项。 |
"" |
|
每个 FlexVol 的最大 qtree 数,必须在 50 , 300 范围内 |
"200" |
|
您可以指定以下选项之一:使用Microsoft管理控制台或ONTAP命令行界面创建的SMB共享的名称;允许Asta三端到功能创建SMB共享的名称;或者、您可以将参数留空以防止对卷进行通用共享访问。对于内部ONTAP、此参数是可选的。此参数对于Amazon FSx for ONTAP后端为必填项、不能为空。 |
|
|
用于使用 ONTAP REST API 的布尔参数。 |
|
|
在qtree-NAS ONTAP经济型后端使用qtrees时可请求的最大FlexVol大小。 |
"" (默认情况下不强制实施) |
用于配置卷的后端配置选项
您可以在配置部分使用这些选项控制默认配置 defaults
。有关示例,请参见以下配置示例。
参数 | 说明 | 默认 |
---|---|---|
|
LUN 的空间分配 |
"正确" |
|
空间预留模式;"无"(精简)或"卷"(厚) |
"无" |
|
要使用的 Snapshot 策略 |
"无" |
|
要为创建的卷分配的 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一 |
"" |
|
要为创建的卷分配的自适应 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一。不受 ontap-nas-economy. |
"" |
|
为快照预留的卷百分比 |
如果为"none"、则为"0" |
|
创建克隆时,从其父级拆分该克隆 |
"错误" |
|
在新卷上启用NetApp卷加密(NVE);默认为 |
"错误" |
|
使用"无"的层策略 |
对于ONTAP 9.5 SVM-DR之前的配置、为"仅快照" |
|
新卷的模式 |
"777"表示NFS卷;空(不适用)表示SMB卷 |
|
控制对目录的访问 |
"错误" |
|
要使用的导出策略 |
default |
|
新卷的安全模式。NFS支持 `mixed`和 `unix`安全模式。SMB支持 `mixed`和 `ntfs`安全模式。 |
NFS默认值为 |
|
用于创建自定义卷名称的模板。 |
"" |
在 Astra Trident 中使用 QoS 策略组需要 ONTAP 9.8 或更高版本。建议使用非共享 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
,Asta Trident现在使用新的计算方法来确保使用snapshotReserve百分比和PVC正确调整FlexVol的大小。当用户请求 PVC 时, Astra Trident 会使用新计算创建具有更多空间的原始 FlexVol 。此计算可确保用户在 PVC 中收到所请求的可写空间,而不是小于所请求的空间。在 v21.07 之前,如果用户请求 PVC (例如, 5GiB ),并且 snapshotReserve 为 50% ,则只会获得 2.5 GiB 的可写空间。这是因为用户请求的是整个卷、并且 snapshotReserve`是其中的一个百分比。在Trident 21.07中、用户请求的是可写空间、Astra Trident将该数字定义 `snapshotReserve`为整个卷的百分比。这不适用于 `ontap-nas-economy
。请参见以下示例以了解其工作原理:
计算方法如下:
Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)
对于 snapshotReserve = 50% , PVC 请求 = 5GiB ,卷总大小为 2/.5 = 10GiB ,可用大小为 5GiB ,这是用户在 PVC 请求中请求的大小。此 `volume show`命令应显示类似于以下示例的结果:
在升级 Astra Trident 时,先前安装的现有后端将按照上述说明配置卷。对于在升级之前创建的卷,您应调整其卷的大小,以便观察到所做的更改。例如、使用较早版本的2GiB PVC `snapshotReserve=50`会导致卷提供1GiB的可写空间。例如,将卷大小调整为 3GiB 可为应用程序在一个 6 GiB 卷上提供 3GiB 的可写空间。
最低配置示例
以下示例显示了将大多数参数保留为默认值的基本配置。这是定义后端的最简单方法。
如果在采用 Trident 的 NetApp ONTAP 上使用 Amazon FSx ,建议为 LIF 指定 DNS 名称,而不是 IP 地址。 |
ONTAP NAS经济性示例
--- version: 1 storageDriverName: ontap-nas-economy managementLIF: 10.0.0.1 dataLIF: 10.0.0.2 svm: svm_nfs username: vsadmin password: password
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: password
MetroCluster示例
您可以配置后端,以避免在期间切换和切回后手动更新后端定义"SVM复制和恢复"。
要进行无缝切换和切回、请使用指定SVM managementLIF
、并省略 `dataLIF`和 `svm`参数。例如:
--- version: 1 storageDriverName: ontap-nas managementLIF: 192.168.1.66 username: vsadmin password: password
SMB卷示例
--- version: 1 backendName: ExampleBackend storageDriverName: ontap-nas managementLIF: 10.0.0.1 nasType: smb securityStyle: ntfs unixPermissions: "" dataLIF: 10.0.0.2 svm: svm_nfs username: vsadmin password: password
基于证书的身份验证示例
这是一个最小的后端配置示例。 clientCertificate
clientPrivateKey`和 `trustedCACertificate
(如果使用受信任CA,则为可选)将分别填充 `backend.json`并采用base64编码的客户端证书值、私钥值和受信任CA证书值。
--- 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_
自动导出策略示例
此示例显示了如何指示 Astra Trident 使用动态导出策略自动创建和管理导出策略。这对于和 ontap-nas-flexgroup`驱动程序是相同的 `ontap-nas-economy
。
--- 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: password nfsMountOptions: nfsvers=4
IPv6地址示例
此示例显示了 `managementLIF`如何使用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: password
Amazon FSx for ONTAP使用SMB卷示例
`smbShare`对于使用SMB卷的FSx for ONTAP、参数是必需的。
--- version: 1 backendName: SMBBackend storageDriverName: ontap-nas managementLIF: example.mgmt.fqdn.aws.com nasType: smb dataLIF: 10.0.0.15 svm: nfs_svm smbShare: smb-share clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2 clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz storagePrefix: myPrefix_
使用nameTemplate的后端配置示例
--- version: 1 storageDriverName: ontap-nas backendName: ontap-nas-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 for或FlexGroup ontap-nas-flexgroup
for上设置 ontap-nas
。在配置时、Astra Trident会将虚拟池上的所有标签复制到存储卷。为了方便起见、存储管理员可以按标签为每个虚拟池和组卷定义标签。
在这些示例中、某些存储池会设置自己的、 `spaceAllocation`和 `encryption`值、而某些存储 `spaceReserve`池会覆盖默认值。
ONTAP NAS示例
--- version: 1 storageDriverName: ontap-nas managementLIF: 10.0.0.1 svm: svm_nfs username: admin password: <password> 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: department: legal creditpoints: '5000' 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 svm: svm_nfs username: vsadmin password: <password> 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经济性示例
--- version: 1 storageDriverName: ontap-nas-economy managementLIF: 10.0.0.1 svm: svm_nfs username: vsadmin password: <password> 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: protection: bronze 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'
将后端映射到 StorageClasses
以下StorageClass定义请参见虚拟池后端示例。通过 `parameters.selector`字段、每个StorageClass都会调用可用于托管卷的虚拟池。卷将在选定虚拟池中定义各个方面。
-
protection-gold`StorageClass将映射到后端的第一个和第二个虚拟池 `ontap-nas-flexgroup
。这些池是唯一提供金牌保护的池。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-nas-flexgroup
。这些池是唯一提供黄金级以外保护级别的池。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-nas
。这是为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-nas-flexgroup
。这是唯一提供银牌保护和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-nas`和后端的第二个虚拟池 `ontap-nas-economy
。这是唯一一款信用点数为5000的池产品。apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4"
Astra Trident将决定选择哪个虚拟池、并确保满足存储要求。
在初始配置后更新 dataLIF
您可以在初始配置后更改数据LIF、方法是运行以下命令、为新的后端JSON文件提供更新的数据LIF。
tridentctl update backend <backend-name> -f <path-to-backend-json-file-with-updated-dataLIF>
如果PVC连接到一个或多个Pod、则必须关闭所有对应Pod、然后将其恢复到、新数据LIF才能生效。 |