Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

ONTAP NAS配置选项和示例

贡献者

了解如何创建ONTAP NAS驱动程序并将其用于Astra三端安装。本节提供了将后端映射到StorageClasses的后端配置示例和详细信息。

后端配置选项

有关后端配置选项,请参见下表:

参数 Description Default

ve版本

始终为 1

storageDriverName

存储驱动程序的名称

"ONTAP NAS "、"ONTAP NAS经济"、"ONTAP NAS灵活组"、"ONTAP SAN "、"ONTAP SAN经济"

backendName

自定义名称或存储后端

驱动程序名称+"_"+ dataLIF

m年 月 日

集群或 SVM 管理 LIF 的 IP 地址

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

如果使用IPv6标志安装了Asta三元组、则可以设置为使用IPv6地址。IPv6地址必须使用方括号进行定义、例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]

有关无缝MetroCluster切换、请参见 MetroCluster示例

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

dataLIF

协议 LIF 的 IP 地址。

建议指定 dataLIF。如果未提供此参数、则Astra Trident会从SVM提取数据LIF。您可以指定用于NFS挂载操作的完全限定域名(FQDN)、从而可以创建循环DNS、以便在多个数据LIF之间实现负载平衡。

可以在初始设置后更改。请参见 。

如果使用IPv6标志安装了Asta三元组、则可以设置为使用IPv6地址。IPv6地址必须使用方括号进行定义、例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]

*对于MetroCluster省略。*请参见 MetroCluster示例

指定的地址或派生自SVM (如果未指定)(不建议)

sVM

要使用的 Storage Virtual Machine

*对于MetroCluster省略。*请参见 MetroCluster示例

如果指定了 SVM managementLIF ,则派生

autosExportPolicy

启用自动创建和更新导出策略[布尔值]。使用 autoExportPolicyautoExportCIDRs 选项、Astra Trident可以自动管理导出策略。

false

autosExportCIDR

用于筛选Kubbernetes节点IP的CIDR列表 autoExportPolicy 已启用。

使用 autoExportPolicyautoExportCIDRs 选项、Astra Trident可以自动管理导出策略。

["0.0.0.0/0、":::/0"]`

标签

要应用于卷的一组任意 JSON 格式的标签

""

客户端证书

客户端证书的 Base64 编码值。用于基于证书的身份验证

""

clientPrivateKey

客户端专用密钥的 Base64 编码值。用于基于证书的身份验证

""

trustedCACertifate

受信任 CA 证书的 Base64 编码值。可选。用于基于证书的身份验证

""

用户名

用于连接到集群 /SVM 的用户名。用于基于凭据的身份验证

密码

连接到集群 /SVM 的密码。用于基于凭据的身份验证

s存储前缀

在 SVM 中配置新卷时使用的前缀。设置后无法更新

"三级联"

limitAggregateUsage

如果使用量超过此百分比,则配置失败。* 不适用于适用于 ONTAP 的 Amazon FSx *

"" (默认情况下不强制实施)

limitVolumeSize

如果请求的卷大小超过此值、则配置失败。此外、还会限制它为qtree和LUN以及管理的卷的最大大小 qtreesPerFlexvol 选项用于自定义每个FlexVol 的最大qtree数。

""(默认情况下不强制实施)

lunsPerFlexvol

每个 FlexVol 的最大 LUN 数,必须在 50 , 200 范围内

"100"

debugTraceFlags

故障排除时要使用的调试标志。例如、{"api":false、"METHO":true}

请勿使用 debugTraceFlags 除非您正在进行故障排除并需要详细的日志转储。

nasType

配置NFS或SMB卷创建。选项包括 nfssmb 或为空。默认情况下、将设置为空会将NFS卷设置为空。

nfs

nfsMountOptions

NFS挂载选项的逗号分隔列表。Kubernetes持久卷的挂载选项通常在存储类中指定、但如果在存储类中未指定挂载选项、则Astra Trident将回退到使用存储后端配置文件中指定的挂载选项。如果在存储类或配置文件中未指定挂载选项、则Astra Trident不会在关联的永久性卷上设置任何挂载选项。

""

qtreesPerFlexvol

每个 FlexVol 的最大 qtree 数,必须在 50 , 300 范围内

"200"

smbShare

您可以指定以下选项之一:使用Microsoft管理控制台或ONTAP命令行界面创建的SMB共享的名称;允许Asta三端到功能创建SMB共享的名称;或者、您可以将参数留空以防止对卷进行通用共享访问。

对于内部ONTAP、此参数是可选的。

此参数对于Amazon FSx for ONTAP后端为必填项、不能为空。

smb-share

useREST

用于使用 ONTAP REST API 的布尔参数。* 技术预览 *
useREST 作为一个*技术预览版提供、建议用于测试环境、而不是生产工作负载。设置为时 true、Astra Trident将使用ONTAP REST API与后端进行通信。此功能需要使用ONTAP 9.11.1及更高版本。此外、使用的ONTAP 登录角色必须有权访问 ontap 应用程序。这一点可通过预定义来满足 vsadmincluster-admin 角色。
useREST MetroCluster 不支持。

false

用于配置卷的后端配置选项

您可以在中使用这些选项控制默认配置 defaults 配置部分。有关示例,请参见以下配置示例。

参数 Description Default

spaceAllocation

LUN 的空间分配

"正确"

s页面预留

空间预留模式;"无"(精简)或"卷"(厚)

"无"

sSnapshot 策略

要使用的 Snapshot 策略

"无"

qosPolicy

要为创建的卷分配的 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一

""

adaptiveQosPolicy

要为创建的卷分配的自适应 QoS 策略组。选择每个存储池 / 后端的 qosPolicy 或 adaptiveQosPolicy 之一。不受 ontap-nas-economy.

""

sSnapshot 预留

为快照预留的卷百分比

如果为"0"、则为"0" snapshotPolicy 为"none"、否则为""

splitOnClone

创建克隆时,从其父级拆分该克隆

false

加密

在新卷上启用NetApp卷加密(NVE);默认为`false`。要使用此选项,必须在集群上获得 NVE 的许可并启用 NVE 。如果在后端启用了NAE、则在Astra Trident中配置的任何卷都将启用NAE。有关详细信息、请参见: "Astra Trident如何与NVE和NAE配合使用"

false

分层策略

使用"无"的层策略

对于ONTAP 9.5 SVM-DR之前的配置、为"仅快照"

unixPermissions

新卷的模式

"777"表示NFS卷;空(不适用)表示SMB卷

snapshotDir

控制对的访问 .snapshot 目录

false

exportPolicy

要使用的导出策略

default

securityStyle

新卷的安全模式。NFS支持 mixedunix 安全模式。SMB支持 mixedntfs 安全模式。

NFS默认值为 unix。SMB默认值为 ntfs

备注 在 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-nasontap-nas-flexgroups , Astra Trident 现在使用新的计算方法来确保 FlexVol 的大小正确,并使用 snapshotReserve 百分比和 PVC 。当用户请求 PVC 时, Astra Trident 会使用新计算创建具有更多空间的原始 FlexVol 。此计算可确保用户在 PVC 中收到所请求的可写空间,而不是小于所请求的空间。在 v21.07 之前,如果用户请求 PVC (例如, 5GiB ),并且 snapshotReserve 为 50% ,则只会获得 2.5 GiB 的可写空间。这是因为用户请求的是整个卷,而 snapshotReserve 是其中的一个百分比。在 Trident 21.07 中,用户请求的是可写空间, Astra Trident 将 snapshotReserve number 定义为整个卷的百分比。这不适用于 ontap-nas-economy" 。请参见以下示例以了解其工作原理:

计算方法如下:

Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)

对于 snapshotReserve = 50% , PVC 请求 = 5GiB ,卷总大小为 2/.5 = 10GiB ,可用大小为 5GiB ,这是用户在 PVC 请求中请求的大小。volume show 命令应显示与以下示例类似的结果:

显示了 volume show 命令的输出。

在升级 Astra Trident 时,先前安装的现有后端将按照上述说明配置卷。对于在升级之前创建的卷,您应调整其卷的大小,以便观察到所做的更改。例如,一个 2 GiB PVC ,其 snapshotReserve=50 earlier 会导致一个卷提供 1 GiB 的可写空间。例如,将卷大小调整为 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 并省略 dataLIFsvm parameters例如:

---
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
基于证书的身份验证示例

这是一个最低后端配置示例。 clientCertificateclientPrivateKey,和 trustedCACertificate (如果使用可信CA、则可选)将填充 backend.json 和分别采用客户端证书、专用密钥和可信CA证书的base64编码值。

---
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-economyontap-nas-flexgroup 驱动程序。

---
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_

虚拟池后端示例

在下面显示的示例后端定义文件中、为所有存储池设置了特定默认值、例如 spaceReserve 无、 spaceAllocation 为false、和 encryption 为false。虚拟池在存储部分中进行定义。

A作用 是在"Comments"字段中设置配置标签。在FlexVol上为设置了注释 ontap-nas 或FlexGroup ontap-nas-flexgroup。在配置时、Astra Trident会将虚拟池上的所有标签复制到存储卷。为了方便起见、存储管理员可以按标签为每个虚拟池和组卷定义标签。

在这些示例中、某些存储池会自行设置 spaceReservespaceAllocation,和 encryption 值、而某些池会覆盖默认值。

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才能生效。