高可用共享文件系统 API

在主动/被动模式下使共享文件系统 (manila) API 服务具有高可用性涉及

配置共享文件系统 API 服务

编辑 /etc/manila/manila.conf 文件

1# We have to use MySQL connection to store data:
2sql_connection = mysql+pymysql://manila:password@10.0.0.11/manila?charset=utf8
3
4# We bind Shared File Systems API to the VIP:
5osapi_volume_listen = 10.0.0.11
6
7# We send notifications to High Available RabbitMQ:
8notifier_strategy = rabbit
9rabbit_host = 10.0.0.11

配置 OpenStack 服务以使用共享文件系统 API

您的 OpenStack 服务现在必须将其共享文件系统 API 配置指向高可用的虚拟集群 IP 地址,而不是像非 HA 环境那样指向共享文件系统 API 服务器的物理 IP 地址。

您必须使用此 IP 创建共享文件系统 API 端点。

如果您同时使用私有和公共 IP 地址,您应该创建两个虚拟 IP 并像这样定义您的端点

$ openstack endpoint create --region RegionOne \
  sharev2 public 'http://PUBLIC_VIP:8786/v2/%(tenant_id)s'

$ openstack endpoint create --region RegionOne \
  sharev2 internal 'http://10.0.0.11:8786/v2/%(tenant_id)s'

$ openstack endpoint create --region RegionOne \
  sharev2 admin 'http://10.0.0.11:8786/v2/%(tenant_id)s'

将共享文件系统 API 资源添加到 Pacemaker

  1. 将资源代理下载到您的系统

    # cd /usr/lib/ocf/resource.d/openstack
    # wget https://opendev.org/x/openstack-resource-agents/raw/branch/2025.2/ocf/manila-api
    # chmod a+rx *
    
  2. 添加共享文件系统 API 资源的 Pacemaker 配置。使用以下命令连接到 Pacemaker 集群

    # crm configure
    

    注意

    crm configure 支持批量输入。将下一步中的行复制并粘贴到您的实时 Pacemaker 配置中,然后根据需要进行更改。

    例如,您可以从 crm configure 菜单中输入 edit p_ip_manila-api 并编辑资源以匹配您首选的虚拟 IP 地址。

  3. 添加以下集群资源

    primitive p_manila-api ocf:openstack:manila-api \
      params config="/etc/manila/manila.conf" \
      os_password="secretsecret" \
      os_username="admin" \
      os_tenant_name="admin" \
      keystone_get_token_url="http://10.0.0.11:5000/v2.0/tokens" \
      op monitor interval="30s" timeout="30s"
    

    此配置创建了 p_manila-api,一个用于管理共享文件系统 API 服务的资源。

  4. 通过从 crm configure 菜单中输入以下命令来提交您的配置更改

    # commit
    

Pacemaker 现在将在您的节点之一上启动共享文件系统 API 服务及其依赖资源。