6.11.2. 在 control plane 上部署共享文件系统服务
从 Red Hat OpenStack Platform (RHOSP) 17.1 部署中复制共享文件系统服务(manila)配置,然后在 control plane 上部署共享文件系统服务。
先决条件
-
共享文件系统服务 systemd 服务(如
api、cron和调度程序)会停止。如需更多信息,请参阅 停止 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>"流程
从 RHOSP 17.1 复制配置文件以供参考:
$ CONTROLLER1_SSH cat /var/lib/config-data/puppet-generated/manila/etc/manila/manila.conf | awk '!/^ *#/ && NF' > ~/manila.conf- 查看配置文件以获取从 RHOSP 17.1 开始进行的配置更改。有关在 OpenShift 上为 Red Hat OpenStack Services (RHOSO)准备此文件的更多信息 ,请参阅指南准备共享文件系统服务配置。
为
OpenStackControlPlaneCR 创建补丁文件,以部署共享文件系统服务。以下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.801 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=cephfs2 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_id。cephfs_nfs_cluster_id选项使用在 Red Hat Ceph Storage 上创建的 NFS 集群的名称进行设置。 cephfs_ganesha_server_ip选项从 RHOSP 17.1 环境中的配置保留。对
OpenStackControlPlaneCR 进行补丁:$ oc patch openstackcontrolplane openstack --type=merge --patch-file=~/<manila.patch>
-
将
<manila.patch> 替换为您的补丁文件的名称。
验证
检查生成的共享文件系统服务 pod:
$ oc get pods -l service=manila检查共享文件系统服务(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 |测试服务的健康状况:
$ openstack share service list $ openstack share pool list --detail检查现有工作负载:
$ openstack share list $ openstack share snapshot list