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

配置存储后端

贡献者 netapp-aruldeepa

ONTAP SAN 和 NAS 驱动程序集成

要创建存储后端,您需要创建 JSON 或 YAML 格式的配置文件。该文件需要指定您想要的存储类型(NAS 或 SAN)、文件系统、要从中获取存储的 SVM 以及如何对其进行身份验证。以下示例展示了如何定义基于 NAS 的存储,以及如何使用 AWS Secret 来存储要使用的 SVM 的凭证:

YAML
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: ontap-nas
  backendName: tbc-ontap-nas
  svm: svm-name
  aws:
    fsxFilesystemID: fs-xxxxxxxxxx
  credentials:
    name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
    type: awsarn
JSON
{
  "apiVersion": "trident.netapp.io/v1",
  "kind": "TridentBackendConfig",
  "metadata": {
    "name": "backend-tbc-ontap-nas"
    "namespace": "trident"
  },
  "spec": {
    "version": 1,
    "storageDriverName": "ontap-nas",
    "backendName": "tbc-ontap-nas",
    "svm": "svm-name",
    "aws": {
      "fsxFilesystemID": "fs-xxxxxxxxxx"
    },
    "managementLIF": null,
    "credentials": {
      "name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
      "type": "awsarn"
    }
  }
}

运行以下命令以创建和验证Trident后端配置 (TBC):

  • 从 yaml 文件创建 Trident 后端配置 (TBC),并运行以下命令:

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • 验证 Trident 后端配置 (TBC) 是否已成功创建:

    Kubectl get tbc -n trident
    NAME                         BACKEND NAME         BACKEND UUID                           PHASE   STATUS
    
    backend-tbc-ontap-nas        tbc-ontap-nas        933e0071-66ce-4324-b9ff-f96d916ac5e9   Bound   Success

FSx 适用于ONTAP驱动程序的详细信息

您可以使用以下驱动程序将Trident与Amazon FSx for NetApp ONTAP集成:

  • `ontap-san`每个已配置的 PV 都是其自身Amazon FSx for NetApp ONTAP卷中的一个 LUN。推荐用于块存储。

  • `ontap-nas`每个已配置的 PV 都是一个完整的Amazon FSx for NetApp ONTAP卷。推荐用于NFS和SMB。

  • `ontap-san-economy`每个已配置的 PV 都是一个 LUN,每个Amazon FSx for NetApp ONTAP卷可配置 LUN 的数量。

  • `ontap-nas-economy`每个已配置的 PV 都是一个 qtree,每个Amazon FSx for NetApp ONTAP卷可以配置 qtree 的数量。

  • `ontap-nas-flexgroup`每个已配置的 PV 都是一个完整的Amazon FSx for NetApp ONTAP FlexGroup卷。

有关司机详情,请参阅"NAS驱动程序""SAN驱动程序"

配置文件创建完成后,运行以下命令将其创建在 EKS 中:

kubectl create -f configuration_file

要验证状态,请运行以下命令:

kubectl get tbc -n trident
NAME                    BACKEND NAME            BACKEND UUID                           PHASE   STATUS
backend-fsx-ontap-nas   backend-fsx-ontap-nas   7a551921-997c-4c37-a1d1-f2f4c87fa629   Bound   Success

后端高级配置和示例

请参阅下表了解后端配置选项:

参数 描述 示例

version

始终为 1

storageDriverName

存储驱动程序的名称

ontap-nasontap-nas-economyontap-nas-flexgroupontap-sanontap-san-economy

backendName

自定义名称或存储后端

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

managementLIF

集群或 SVM 管理 LIF 的 IP 地址可以指定完全限定域名 (FQDN)。如果Trident安装时使用了 IPv6 标志,则可以设置为使用 IPv6 地址。 IPv6 地址必须用方括号定义,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。如果您提供 `fsxFilesystemID`在 `aws`字段中,您无需提供 `managementLIF`因为Trident可以检索 SVM `managementLIF`来自 AWS 的信息。因此,您必须提供 SVM 下用户的凭据(例如:vsadmin),并且该用户必须拥有以下权限: `vsadmin`角色。

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

dataLIF

LIF协议的IP地址。 * ONTAP NAS 驱动程序*: NetApp建议指定 dataLIF。如果未提供, Trident将从 SVM 获取 dataLIF。您可以指定一个完全限定域名 (FQDN) 用于 NFS 挂载操作,从而创建轮询 DNS 以在多个 dataLIF 之间进行负载均衡。初始设置后可以更改。参考。 * ONTAP SAN 驱动程序*:不要为 iSCSI 指定。 Trident使用ONTAP选择性 LUN 映射来发现建立多路径会话所需的 iSCI LIF。如果显式定义了 dataLIF,则会生成警告。如果Trident安装时使用了 IPv6 标志,则可以设置为使用 IPv6 地址。 IPv6 地址必须用方括号定义,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。

autoExportPolicy

启用自动导出策略创建和更新 [布尔值]。使用 `autoExportPolicy`和 `autoExportCIDRs`可选功能包括: Trident可以自动管理出口策略。

false

autoExportCIDRs

用于过滤 Kubernetes 节点 IP 的 CIDR 列表 `autoExportPolicy`已启用。使用 `autoExportPolicy`和 `autoExportCIDRs`可选功能包括: Trident可以自动管理出口策略。

"["0.0.0.0/0", "::/0"]"

labels

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

""

clientCertificate

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

""

clientPrivateKey

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

""

trustedCACertificate

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

""

username

连接到集群或 SVM 的用户名。用于基于凭证的身份验证。例如,vsadmin。

password

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

svm

使用的存储虚拟机

如果指定了 SVM 管理 LIF,则派生出该 LIF。

storagePrefix

在 SVM 中配置新卷时使用的前缀。创建后无法修改。要更新此参数,您需要创建一个新的后端。

trident

limitAggregateUsage

*请勿指定用于Amazon FSx for NetApp ONTAP。*提供的 `fsxadmin`和 `vsadmin`不包含检索汇总使用情况和使用Trident限制它所需的权限。

请勿使用。

limitVolumeSize

如果请求的卷大小大于此值,则配置失败。此外,它还限制了其管理的 qtree 和 LUN 卷的最大大小,以及 `qtreesPerFlexvol`此选项允许自定义每个FlexVol volume的最大 qtree 数量。

(默认情况下不强制执行)

lunsPerFlexvol

每个 Flexvol 卷的最大 LUN 数必须在 [50, 200] 范围内。仅限SAN。

100

debugTraceFlags

故障排除时要使用的调试标志。例如,{"api":false, "method":true} 请勿使用 `debugTraceFlags`除非您正在进行故障排除并且需要详细的日志转储。

无效的

nfsMountOptions

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

""

nasType

配置 NFS 或 SMB 卷的创建。选项有 nfs, `smb`或空值。 *必须设置为 `smb`适用于 SMB 卷。*设置为 null 则默认使用 NFS 卷。

nfs

qtreesPerFlexvol

每个FlexVol volume的最大 Qtree 数量必须在 [50, 300] 范围内

"200"

smbShare

您可以指定以下名称之一:使用 Microsoft 管理控制台或ONTAP CLI 创建的 SMB 共享的名称,或者允许Trident创建 SMB 共享的名称。此参数是Amazon FSx for ONTAP后端所必需的。

smb-share

useREST

使用ONTAP REST API 的布尔参数。设置为 `true`Trident将使用ONTAP REST API 与后端进行通信。此功能需要ONTAP 9.11.1 及更高版本。此外,所使用的ONTAP登录角色必须具有访问权限。 `ontap`应用。预定义项满足了这一点。 `vsadmin`和 `cluster-admin`角色。

false

aws

您可以在 AWS FSx for ONTAP的配置文件中指定以下内容: - fsxFilesystemID :指定 AWS FSx 文件系统的 ID。 - apiRegion AWS API 区域名称。 - apikey AWS API 密钥。 - secretKey AWS 密钥。



""
""
""

credentials

指定要存储在 AWS Secrets Manager 中的 FSx SVM 凭证。 - name :包含 SVM 凭证的密钥的 Amazon 资源名称 (ARN)。 - type`设置为 `awsarn。请参阅"创建 AWS Secrets Manager 密钥"了解更多信息。

卷配置的后端配置选项

您可以使用以下选项控制默认配置。 `defaults`配置部分。例如,请参见下面的配置示例。

参数 描述 默认

spaceAllocation

LUN 的空间分配

true

spaceReserve

空间预留模式;“无”(细)或“大量”(粗)

none

snapshotPolicy

要使用的快照策略

none

qosPolicy

要为创建的卷分配的 QoS 策略组。每个存储池或后端选择 qosPolicy 或 adaptiveQosPolicy 之一。将 QoS 策略组与Trident结合使用需要ONTAP 9.8 或更高版本。您应该使用非共享的 QoS 策略组,并确保该策略组单独应用于每个成员。共享的 QoS 策略组强制规定所有工作负载的总吞吐量上限。

""

adaptiveQosPolicy

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

""

snapshotReserve

为快照“0”预留的卷百分比

如果 snapshotPolicy`是 `noneelse “”

splitOnClone

创建时将克隆体从其母体中分离出来

false

encryption

在新卷上启用NetApp卷加密 (NVE);默认设置为 false。要使用此选项,必须在集群上获得 NVE 许可并启用 NVE。如果后端启用了 NAE,则在Trident中配置的任何卷都将启用 NAE。更多信息,请参阅:"Trident如何与 NVE 和 NAE 协同工作"

false

luksEncryption

启用LUKS加密。参考"使用 Linux 统一密钥设置 (LUKS)"。仅限SAN。

""

tieringPolicy

分层策略的使用 none

unixPermissions

新卷模式。 SMB卷请留空。

""

securityStyle

新卷的安全样式。 NFS 支持 `mixed`和 `unix`安全措施。中小企业支持 `mixed`和 `ntfs`安全措施。

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

准备配置SMB卷

您可以使用以下方式配置 SMB 卷: `ontap-nas`司机。在你完成之前ONTAP SAN 和 NAS 驱动程序集成请完成以下步骤。

开始之前

在使用以下方式配置 SMB 卷之前: `ontap-nas`驾驶员,您必须具备以下条件。

  • 一个 Kubernetes 集群,包含一个 Linux 控制器节点和至少一个运行 Windows Server 2019 的 Windows 工作节点。 Trident仅支持挂载到运行在 Windows 节点上的 pod 的 SMB 卷。

  • 至少有一个包含您的 Active Directory 凭据的Trident密钥。生成秘密 smbcreds

    kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
  • 配置为 Windows 服务的 CSI 代理。要配置 csi-proxy,请参阅"GitHub:CSI代理"或者"GitHub:适用于 Windows 的 CSI 代理"适用于在 Windows 上运行的 Kubernetes 节点。

步骤
  1. 创建SMB共享。您可以通过以下两种方式之一创建 SMB 管理共享:"Microsoft 管理控制台"共享文件夹管理单元或使用ONTAP CLI。使用ONTAP CLI 创建 SMB 共享:

    1. 如有必要,请创建共享的目录路径结构。

      这 `vserver cifs share create`该命令检查在创建共享时 -path 选项中指定的路径。如果指定的路径不存在,则命令执行失败。

    2. 创建与指定 SVM 关联的 SMB 共享:

      vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
    3. 确认共享已创建:

      vserver cifs share show -share-name share_name
      备注 请参阅"创建 SMB 共享"了解详细信息。
  2. 创建后端时,必须配置以下内容以指定 SMB 卷。有关所有 FSx for ONTAP后端配置选项,请参阅"FSx for ONTAP配置选项和示例"

    参数 描述 示例

    smbShare

    您可以指定以下名称之一:使用 Microsoft 管理控制台或ONTAP CLI 创建的 SMB 共享的名称,或者允许Trident创建 SMB 共享的名称。此参数是Amazon FSx for ONTAP后端所必需的。

    smb-share

    nasType

    *必须设置为 smb.*如果为空,则默认为空。 nfs

    smb

    securityStyle

    新卷的安全样式。 必须设置为 `ntfs`或者 `mixed`适用于 SMB 卷。

    `ntfs`或者 `mixed`适用于 SMB 卷

    unixPermissions

    新卷模式。 对于 SMB 卷,此项必须留空。

    ""