5.3. 配置 NFS 后端


当您在镜像服务(glance)上挂载 NFS 共享时,镜像服务不管理该操作。镜像服务将数据写入文件系统,但不知道后端是一个 NFS 共享。

如果您使用 NFS 作为镜像服务后端,红帽建议以下最佳实践来降低风险:

  • 使用可靠的生产级 NFS 后端。
  • 确保网络传播到 OpenShift control plane,部署镜像服务,并且镜像服务具有指向网络的 NetworkAttachmentDefinition (NAD)。此配置可确保镜像服务 pod 可以访问 NFS 服务器。
  • 设置底层文件系统权限。写入权限必须存在于用作存储的共享文件系统中。
  • 确保运行 glance-api 进程的用户和组在本地文件系统上没有挂载点的写入权限。这意味着进程可以检测到可能的挂载失败,并在写尝试过程中将存储置于只读模式。

限制:

  • 在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)中,您无法在 pod 规格中设置客户端 NFS 挂载选项。您可以使用以下方法之一设置 NFS 挂载选项:

    • 设置服务器端挂载选项。
    • 使用 /etc/nfsmount.conf
    • 使用带有挂载选项的 PersistentVolume 挂载 NFS 卷。

流程

  1. 打开 OpenStackControlPlane CR 文件 openstack_control_plane.yaml,并在 spec 部分添加 extraMounts 参数,以添加 NFS 共享的导出路径和 IP 地址。该路径映射到 /var/lib/glance/images,其中镜像服务 API 存储并检索镜像:

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackControlPlane
    metadata:
      name: openstack
    ...
    spec:
      extraMounts:
      - extraVol:
        - extraVolType: Nfs
          mounts:
          - mountPath: /var/lib/glance/images
            name: nfs
          propagation:
          - Glance
          volumes:
          - name: nfs
            nfs:
              path: <nfs_export_path>
              server: <nfs_ip_address>
        name: r1
        region: r1
    ...
    • <nfs_export_path > 替换为 NFS 共享的导出路径。
    • <nfs_ip_address > 替换为 NFS 共享的 IP 地址。此 IP 地址必须是覆盖网络的一部分,该网络可由镜像服务访问。
  2. glance 模板中添加以下参数,将 NFS 配置为后端:

    ...
    spec:
      extraMounts:
        ...
        glance:
        template:
          glanceAPIs:
            default:
              type: single
              replicas: 3 # recommendation is 3 when deploying the service
          ...
          customServiceConfig: |
            [DEFAULT]
            enabled_backends = default_backend:file
            [glance_store]
            default_backend = default_backend
            [default_backend]
            filesystem_store_datadir = /var/lib/glance/images
          databaseInstance: openstack
    ...
    注意

    配置 NFS 后端时,您必须将 类型设置为 单个。默认情况下,镜像服务具有外部 API 服务的 分割 部署类型,该服务可通过 Identity 服务(keystone)的公共和管理员端点访问,该服务可以通过 Identity 服务的内部端点访问。对于 文件 后端,分割 部署类型无效,因为不同的 pod 访问同一文件共享。

  3. 更新 control plane:

    $ oc apply -f openstack_control_plane.yaml -n openstack
  4. 等待 RHOCP 创建与 OpenStackControlPlane CR 相关的资源。运行以下命令来检查状态:

    $ oc get openstackcontrolplane -n openstack

    当状态为 "Setup complete" 时,会创建 OpenStackControlPlane 资源。

    提示

    -w 选项附加到 get 命令的末尾,以跟踪部署进度。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.