×

概述

OpenShift Container Platform 能够使用 OpenStack Manila 共享文件系统服务的容器存储接口 (CSI) 驱动程序来配置持久卷 (PV)。

在使用容器存储接口 (CSI) 操作符和驱动程序时,建议您熟悉 持久性存储配置 CSI 卷

为了创建挂载到 Manila 存储资源的 CSI 配置的 PV,OpenShift Container Platform 默认情况下会在任何启用了 Manila 服务的 OpenStack 集群上安装 Manila CSI 驱动程序操作符和 Manila CSI 驱动程序。

  • Manila CSI 驱动程序操作符创建创建所有可用 Manila 共享类型 的 PVC 所需的存储类。该操作符安装在 openshift-cluster-csi-drivers 命名空间中。

  • Manila CSI 驱动程序使您可以创建和挂载 Manila PV。该驱动程序安装在 openshift-manila-csi-driver 命名空间中。

关于 CSI

存储供应商传统上会将存储驱动程序作为 Kubernetes 的一部分提供。通过实现容器存储接口 (CSI),第三方提供商可以使用标准接口交付存储插件,而无需更改核心 Kubernetes 代码。

CSI 操作符为 OpenShift Container Platform 用户提供了使用树内卷插件无法实现的存储选项,例如卷快照。

Manila CSI 驱动程序操作符限制

以下限制适用于 Manila 容器存储接口 (CSI) 驱动程序操作符

仅支持 NFS

OpenStack Manila 支持许多网络附加存储协议,例如 NFS、CIFS 和 CEPHFS,这些协议可以在 OpenStack 云中选择性地启用。OpenShift Container Platform 中的 Manila CSI 驱动程序操作符仅支持使用 NFS 协议。如果底层 OpenStack 云中没有可用和启用的 NFS,则无法使用 Manila CSI 驱动程序操作符为 OpenShift Container Platform 配置存储。

如果后端是 CephFS-NFS,则不支持快照

要拍摄持久卷 (PV) 的快照并将卷还原到快照,必须确保您正在使用的 Manila 共享类型支持这些功能。Red Hat OpenStack 管理员必须在您打算使用的存储类关联的共享类型中启用对快照的支持(share type extra-spec snapshot_support)以及从快照创建共享的支持(share type extra-spec create_share_from_snapshot_support)。

不支持 FSGroups

由于 Manila CSI 提供共享文件系统供多个读取器和多个写入器访问,因此它不支持使用 FSGroups。即使对于使用 ReadWriteOnce 访问模式创建的持久卷,也是如此。因此,重要的是不要在您为与 Manila CSI 驱动程序一起使用而手动创建的任何存储类中指定 fsType 属性。

在 Red Hat OpenStack Platform 16.x 和 17.x 中,通过 NFS 使用 CephFS 的共享文件系统服务 (Manila) 完全支持通过 Manila CSI 为 OpenShift Container Platform 提供共享。但是,此解决方案并非旨在用于大规模环境。请务必查看 Red Hat OpenStack Platform 的 CephFS NFS Manila-CSI 工作负载建议 中的重要建议。

动态配置 Manila CSI 卷

OpenShift Container Platform 为每个可用的 Manila 共享类型安装一个存储类。

创建的 YAML 文件与 Manila 及其容器存储接口 (CSI) 插件完全解耦。作为应用程序开发人员,您可以动态配置 ReadWriteMany (RWX) 存储并使用 YAML 清单部署包含安全使用存储的应用程序的 Pod。

您可以使用与在 AWS、GCP、Azure 和其他平台上使用 OpenShift Container Platform 时相同的本地 Pod 和持久卷声明 (PVC) 定义,但 PVC 定义中的存储类引用除外。

Manila 服务是可选的。如果未在 Red Hat OpenStack Platform (RHOSP) 中启用该服务,则不会安装 Manila CSI 驱动程序,也不会创建 Manila 的存储类。

先决条件
  • RHOSP 部署了适当的 Manila 共享基础设施,以便可以将其用于在 OpenShift Container Platform 中动态配置和挂载卷。

步骤 (UI)

要使用 Web 控制台动态创建 Manila CSI 卷

  1. 在 OpenShift Container Platform 控制台中,单击存储持久卷声明

  2. 在持久卷声明概述中,单击创建持久卷声明

  3. 在结果页面上定义所需选项。

    1. 选择合适的存储类。

    2. 输入存储声明的唯一名称。

    3. 选择访问模式以指定您正在创建的 PVC 的读写访问权限。

      如果您希望满足此 PVC 的持久卷 (PV) 挂载到集群中多个节点上的多个 Pod,请使用 RWX。

  4. 定义存储声明的大小。

  5. 单击创建以创建持久卷声明并生成持久卷。

步骤 (CLI)

要使用命令行界面 (CLI) 动态创建 Manila CSI 卷

  1. 创建并保存一个包含以下 YAML 中描述的PersistentVolumeClaim 对象的文件

    pvc-manila.yaml
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-manila
    spec:
      accessModes: (1)
        - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-manila-gold (2)
    1 如果您希望满足此 PVC 的持久卷 (PV) 挂载到集群中多个节点上的多个 Pod,请使用 RWX。
    2 配置存储后端的存储类的名称。Manila 存储类由 Operator 配置,并具有csi-manila-前缀。
  2. 通过运行以下命令来创建您在上一步中保存的对象

    $ oc create -f pvc-manila.yaml

    将创建一个新的 PVC。

  3. 要验证卷是否已创建并已准备好,请运行以下命令

    $ oc get pvc pvc-manila

    pvc-manila 显示其状态为Bound

您现在可以使用新的 PVC 来配置 Pod。

其他资源