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

NetApp ONTAP NFS 配置

贡献者 kevin-hoke

要通过 NFS 实现Trident与NetApp ONTAP存储系统的集成,您必须创建一个能够与存储系统通信的后端。我们在此解决方案中配置了一个基本的后端,但如果您正在寻找更多自定义选项,请访问文档"此处"

在ONTAP中创建 SVM

  1. 登录ONTAP系统管理器,导航到“存储”>“存储虚拟机”,然后单击“添加”。

  2. 输入 SVM 的名称,启用 NFS 协议,选中允许 NFS 客户端访问复选框,并在导出策略规则中添加工作节点所在的子网,以允许将卷作为 PV 挂载到工作负载集群中。

    使用 NFS 创建 SVM

    备注 如果您使用 NSX-T 的 NAT 部署用户集群或工作负载集群,则需要将出口子网(对于 TKGS0 而言)或浮动 IP 子网(对于 TKGI 而言)添加到导出策略规则中。
  3. 提供数据 LIF 的详细信息和 SVM 管理帐户的详细信息,然后单击“保存”。

    SVM 数据 LIF 和 SVM 管理

  4. 将聚合分配给 SVM。导航到“存储”>“存储虚拟机”,单击新创建的 SVM 旁边的省略号,然后单击“编辑”。选中“限制卷创建到首选本地层”复选框并将所需的聚合附加到该复选框。

    SVM聚合分配

  5. 如果要安装Trident的用户或工作负载集群采用 NAT 部署,则由于 SNAT,存储挂载请求可能会从非标准端口到达。默认情况下, ONTAP仅允许来自根端口的卷挂载请求。因此,登录ONTAP CLI 并修改设置以允许来自非标准端口的挂载请求。

    ontap-01> vserver nfs modify -vserver tanzu_svm -mount-rootonly disabled

创建后端和存储类

  1. 对于提供 NFS 服务的NetApp ONTAP系统,请在跳转主机上创建后端配置文件,其中包含 backendName、managementLIF、dataLIF、svm、用户名、密码和其他详细信息。

    {
        "version": 1,
        "storageDriverName": "ontap-nas",
        "backendName": "ontap-nas+10.61.181.221",
        "managementLIF": "172.21.224.201",
        "dataLIF": "10.61.181.221",
        "svm": "trident_svm",
        "username": "admin",
        "password": "password"
    }
    备注 最佳做法是将自定义 backendName 值定义为 storageDriverName 和为 NFS 提供服务的 dataLIF 的组合,以便于识别。
  2. 通过运行以下命令创建Trident后端。

    [netapp-user@rhel7]$ ./tridentctl -n trident create backend -f backend-ontap-nas.json
    +-------------------------+----------------+--------------------------------------+--------+---------+
    |          NAME           | STORAGE DRIVER |                 UUID                 | STATE  | VOLUMES |
    +-------------------------+----------------+--------------------------------------+--------+---------+
    | ontap-nas+10.61.181.221 | ontap-nas      | be7a619d-c81d-445c-b80c-5c87a73c5b1e | online |       0 |
    +-------------------------+----------------+--------------------------------------+--------+---------+
  3. 创建后端后,接下来必须创建存储类。以下示例存储类定义突出显示了必需字段和基本字段。参数 `backendType`应该反映新创建的Trident后端的存储驱动程序。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-nfs
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "ontap-nas"
  4. 通过运行 kubectl 命令创建存储类。

    [netapp-user@rhel7 trident-installer]$ kubectl create -f storage-class-nfs.yaml
    storageclass.storage.k8s.io/ontap-nfs created
  5. 创建存储类后,您必须创建第一个持久卷声明 (PVC)。下面给出了一个 PVC 定义示例。确保 `storageClassName`字段与刚刚创建的存储类的名称匹配。 PVC 定义可以根据需要配置的工作负载进一步定制。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: basic
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: ontap-nfs
  6. 通过发出 kubectl 命令创建 PVC。创建可能需要一些时间,具体取决于所创建的备份卷的大小,因此您可以在创建完成时观察该过程。

    [netapp-user@rhel7 trident-installer]$ kubectl create -f pvc-basic.yaml
    persistentvolumeclaim/basic created
    
    [netapp-user@rhel7 trident-installer]$ kubectl get pvc
    NAME    STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    basic   Bound    pvc-b4370d37-0fa4-4c17-bd86-94f96c94b42d   1Gi        RWO            ontap-nfs      7s