6.11.2. 在 control plane 上部署共享文件系统服务


从 Red Hat OpenStack Platform (RHOSP) 17.1 部署中复制共享文件系统服务(manila)配置,然后在 control plane 上部署共享文件系统服务。

先决条件

  • 共享文件系统服务 systemd 服务(如 apicron调度程序 )会停止。如需更多信息,请参阅 停止 Red Hat OpenStack Platform 服务
  • 如果部署通过 NFS 将 CephFS 用作存储后端,则调整 Pacemaker 排序和并置限制。如需更多信息,请参阅 停止 Red Hat OpenStack Platform 服务
  • 共享文件系统服务 Pacemaker 服务 Pacemaker 服务(openstack-manila-share)已停止。如需更多信息,请参阅 停止 Red Hat OpenStack Platform 服务
  • 数据库迁移已完成。如需更多信息,请参阅将 数据库迁移到 MariaDB 实例
  • 部署 manila-share 服务的 Red Hat OpenShift Container Platform (RHOCP)节点可以访问存储系统所在的管理网络。
  • 如果部署使用 NFS 作为存储后端,则可通过 Ceph 编排器在 Red Hat Ceph Storage 集群上部署一个新的集群的 Ceph NFS 服务。有关更多信息,请参阅创建 Ceph NFS 集群
  • 在采用共享文件系统服务(keystone)和 memcached 等服务之前,可以使用 Identity 服务(keystone)和 memcached 等服务。
  • 如果您通过设置 driver_handles_share_servers=True 来启用租户驱动的网络,则会部署 Networking 服务(neutron)。
  • CONTROLLER1_SSH 环境变量已定义,并指向 RHOSP 控制器节点。将以下示例值替换为您的环境的正确值:

    $ CONTROLLER1_SSH="ssh -i <path to SSH key> root@<node IP>"

    流程

    1. 从 RHOSP 17.1 复制配置文件以供参考:

      $ CONTROLLER1_SSH cat /var/lib/config-data/puppet-generated/manila/etc/manila/manila.conf | awk '!/^ *#/ && NF' > ~/manila.conf
    2. 查看配置文件以获取从 RHOSP 17.1 开始进行的配置更改。有关在 OpenShift 上为 Red Hat OpenStack Services (RHOSO)准备此文件的更多信息 ,请参阅指南准备共享文件系统服务配置
    3. OpenStackControlPlane CR 创建补丁文件,以部署共享文件系统服务。以下 manila.patch 文件示例使用原生 CephFS:

      $ cat << __EOF__ > ~/manila.patch
      spec:
        manila:
          enabled: true
          apiOverride:
            route: {}
          template:
            databaseInstance: openstack
            databaseAccount: manila
            secret: osp-secret
            manilaAPI:
              replicas: 3
              customServiceConfig: |
                [DEFAULT]
                enabled_share_protocols = cephfs
              override:
                service:
                  internal:
                    metadata:
                      annotations:
                        metallb.universe.tf/address-pool: internalapi
                        metallb.universe.tf/allow-shared-ip: internalapi
                        metallb.universe.tf/loadBalancerIPs: 172.17.0.80 
      1
      
                    spec:
                      type: LoadBalancer
            manilaScheduler:
              replicas: 3
            manilaShares:
              cephfs:
                replicas: 1
                customServiceConfig: |
                  [DEFAULT]
                  enabled_share_backends = tripleo_ceph
                  host = hostgroup
                  [cephfs]
                  driver_handles_share_servers=False
                  share_backend_name=cephfs 
      2
      
                  share_driver=manila.share.drivers.cephfs.driver.CephFSDriver
                  cephfs_conf_path=/etc/ceph/ceph.conf
                  cephfs_auth_id=openstack
                  cephfs_cluster_name=ceph
                  cephfs_volume_mode=0755
                  cephfs_protocol_helper_type=CEPHFS
                networkAttachments: 
      3
      
                    - storage
            extraMounts: 
      4
      
            - name: v1
              region: r1
              extraVol:
                - propagation:
                  - ManilaShare
                extraVolType: Ceph
                volumes:
                - name: ceph
                  secret:
                    secretName: ceph-conf-files
                mounts:
                - name: ceph
                  mountPath: "/etc/ceph"
                  readOnly: true
      __EOF__
      1
      如果使用 IPv6,请将负载均衡器 IP 更改为环境中的负载均衡器 IP,如 metallb.universe.tf/loadBalancerIPs: fd00:bbbb::80
      2
      确保后端的名称(share_backend_name)与在 RHOSP 17.1 中相同。
      3
      确保在 networkAttachments 部分中指定适当的存储管理网络。例如,使用 CephFS 后端驱动程序的 manilaShares 实例连接到 存储网络
      4
      如果需要向任意服务添加额外的文件,您可以使用 extraMounts。例如,在使用 Red Hat Ceph Storage 时,您可以添加共享文件系统服务 Ceph 用户的 keyring 文件和 ceph.conf 配置文件。

      以下示例补丁文件通过 NFS 使用 CephFS:

      $ cat << __EOF__ > ~/manila.patch
      spec:
        manila:
          enabled: true
          apiOverride:
            route: {}
          template:
            databaseInstance: openstack
            secret: osp-secret
            manilaAPI:
              replicas: 3
              customServiceConfig: |
                [DEFAULT]
                enabled_share_protocols = cephfs
              override:
                service:
                  internal:
                    metadata:
                      annotations:
                        metallb.universe.tf/address-pool: internalapi
                        metallb.universe.tf/allow-shared-ip: internalapi
                        metallb.universe.tf/loadBalancerIPs: 172.17.0.80
                    spec:
                      type: LoadBalancer
            manilaScheduler:
              replicas: 3
            manilaShares:
              cephfs:
                replicas: 1
                customServiceConfig: |
                  [DEFAULT]
                  enabled_share_backends = cephfs
                  host = hostgroup
                  [cephfs]
                  driver_handles_share_servers=False
                  share_backend_name=tripleo_ceph
                  share_driver=manila.share.drivers.cephfs.driver.CephFSDriver
                  cephfs_conf_path=/etc/ceph/ceph.conf
                  cephfs_auth_id=openstack
                  cephfs_cluster_name=ceph
                  cephfs_protocol_helper_type=NFS
                  cephfs_nfs_cluster_id=cephfs
                  cephfs_ganesha_server_ip=172.17.5.47
                networkAttachments:
                    - storage
      __EOF__
  • 在通过 NFS 将 manilaShares 服务用于 CephFS 之前,请确保创建了集群的 Ceph NFS 服务。服务的名称必须是 cephfs_nfs_cluster_idcephfs_nfs_cluster_id 选项使用在 Red Hat Ceph Storage 上创建的 NFS 集群的名称进行设置。
  • cephfs_ganesha_server_ip 选项从 RHOSP 17.1 环境中的配置保留。

    1. OpenStackControlPlane CR 进行补丁:

      $ oc patch openstackcontrolplane openstack --type=merge --patch-file=~/<manila.patch>
  • <manila.patch > 替换为您的补丁文件的名称。

验证

  1. 检查生成的共享文件系统服务 pod:

    $ oc get pods -l service=manila
  2. 检查共享文件系统服务(keystone)中是否已注册了共享文件系统服务(keystone):

    $ openstack service list | grep manila
    $ openstack endpoint list | grep manila
    
    | 1164c70045d34b959e889846f9959c0e | regionOne | manila       | share        | True    | internal  | http://manila-internal.openstack.svc:8786/v1/%(project_id)s        |
    | 63e89296522d4b28a9af56586641590c | regionOne | manilav2     | sharev2      | True    | public    | https://manila-public-openstack.apps-crc.testing/v2                |
    | af36c57adcdf4d50b10f484b616764cc | regionOne | manila       | share        | True    | public    | https://manila-public-openstack.apps-crc.testing/v1/%(project_id)s |
    | d655b4390d7544a29ce4ea356cc2b547 | regionOne | manilav2     | sharev2      | True    | internal  | http://manila-internal.openstack.svc:8786/v2                       |
  3. 测试服务的健康状况:

    $ openstack share service list
    $ openstack share pool list --detail
  4. 检查现有工作负载:

    $ openstack share list
    $ openstack share snapshot list
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部