第 6 章 配置共享文件系统服务(manila)


使用共享文件系统服务(manila),您可以置备多个云用户实例、裸机节点或容器可以使用的共享文件系统。云管理员创建共享类型,以准备共享服务,并使最终用户能够创建和管理共享。您可以使用共享文件系统服务命令行客户端来管理共享文件系统。

先决条件

  • 最终用户至少需要一个共享类型才能使用共享文件系统服务。
  • 对于 driver_handles_share_servers=false 的后端,云管理员预先配置必要的网络,而不是在共享文件系统后端中动态配置。
  • 对于 CephFS-NFS 后端,云管理员使用隔离的网络和环境参数以及自定义 network_data 文件部署 Red Hat OpenStack Platform (RHOSP) director,以便为 NFS 导出创建隔离的 StorageNFS 网络。部署后,在使用 overcloud 之前,管理员会创建一个对应的网络服务(neutron) StorageNFS 共享提供商网络,它映射到数据中心的隔离 StorageNFS 网络。
  • 要使计算实例连接到此共享提供商网络,用户必须添加额外的 neutron 端口。

6.1. 配置共享文件系统服务后端

当云管理员使用 Red Hat OpenStack Platform (RHOSP) director 部署共享文件系统服务(manila)时,他们可以选择一个或多个受支持的后端,如原生 CephFS、CephFS-NFS、NetApp、Dell EMC Unity 等。

有关原生 CephFS 和 CephFS-NFS 的更多信息,请参阅 部署 Red Hat Ceph Storage 和 Red Hat OpenStack Platform 和 director

有关支持的后端设备和驱动程序的完整列表,请参阅 Red Hat OpenStack Platform 中红帽知识库文章、组件、插件和驱动程序支持的 Manila 部分。

6.1.1. 配置多个后端

后端是与共享文件系统服务(manila)驱动程序配对的存储系统或技术,以导出文件系统。共享文件系统服务至少需要一个后端才能运行。在很多情况下,一个后端就足够了。但是,您还可以在单个共享文件系统服务安装中使用多个后端。

重要

Red Hat OpenStack Platform (RHOSP)不支持将同一后端的多个实例到共享文件系统服务部署。例如,您无法在同一部署中添加两个 Red Hat Ceph Storage 集群作为后端。CephFS 原生和 CephFS-NFS 被视为具有不同协议的后端。

共享文件系统服务的调度程序决定共享创建请求的目标后端。共享文件系统服务中的单一后端可以公开多个存储池。

当您配置多个后端时,调度程序会选择一个存储池,从所有配置的后端公开的所有池中创建一个资源。这个过程是从最终用户中提取的。最终用户只看到云管理员公开的功能。

6.1.2. 部署多个后端

默认情况下,用于部署共享文件系统服务(manila)的环境文件只有一个后端。使用以下示例步骤部署两个后端,即 CephFS-NFS 后端和 NetApp 后端。

重要

当您将来自同一供应商的多个存储后端添加到部署中时,使用此流程配置一个后端。将其他后端配置为自定义后端。如需更多信息,请参阅配置自定义后端 和部署自定义后端

先决条件

  • 至少两个后端。
  • 当您从需要外部软件组件的存储厂商中使用后端驱动程序时,您必须在部署过程中覆盖共享文件系统服务的标准容器镜像。您可以在 红帽生态系统目录 中找到自定义容器镜像,例如 Dell EMC unity 存储系统的 Dell EMC unity 容器镜像。

流程

  1. 创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:

    $ vi /home/stack/templates/<multiple_backends>.yaml
    Copy to Clipboard Toggle word wrap
    • <multiple_backends > 替换为您的文件的名称。
  2. 配置存储自定义 YAML 文件,使其包含任何覆盖并启用多个后端:

    parameter_defaults:
      ManilaEnabledShareProtocols:
        - NFS
      ManilaNetappLogin: '<login_name>'
      ManilaNetappPassword: '<password>'
      ManilaNetappServerHostname: '<netapp-hostname>'
      ManilaNetappVserver: ‘<netapp-vserver>’
      ManilaNetappDriverHandlesShareServers: 'false'
    Copy to Clipboard Toggle word wrap
    • 将尖括号 &lt ;& gt; 中的值替换为 YAML 文件的正确值。
  3. stack 用户身份登录 undercloud 主机。
  4. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  5. 使用其他环境文件,将存储自定义 YAML 文件添加到堆栈中,并部署 overcloud。这个示例配置启用了带有 NetApp 后端和 CephFS-NFS 后端的共享文件系统服务。

    $ openstack overcloud deploy \
      --timeout 100 \
      --stack overcloud \
      --templates /usr/share/openstack-tripleo-heat-templates \
      -n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -r /home/stack/templates/roles/roles_data.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/manila-netapp-config.yaml \
      -e /home/stack/templates/storage_customizations.yaml \
      ...
    Copy to Clipboard Toggle word wrap

其他资源

6.1.3. 确认部署多个后端

使用 manila service-list 命令来验证您的共享文件系统服务(manila)后端是否已成功部署。如果您在多个后端中使用健康检查,则 ping 测试也会返回一个响应,即使其中一个后端没有响应,因此这不是验证部署的一种可靠方法。

流程

  1. 提供 overcloud 凭证文件:

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • <credentials_file > 替换为您的凭证文件的名称,如 overcloudrc
  2. 确认共享文件系统服务后端列表:

    $ manila service-list
    
    +----+--------+--------+------+---------+-------+----------------------------+
    | Id | Binary | Host | Zone | Status | State | Updated_at |
    +----+--------+--------+------+---------+-------+----------------------------+
    | 2 | manila-scheduler | hostgroup | nova | enabled | up | 2021-03-24T16:49:09.000000 |
    | 5 | manila-share | hostgroup@cephfs | nova | enabled | up | 2021-03-24T16:49:12.000000 |
    | 8 | manila-share | hostgroup@tripleo_netapp | nova | enabled | up | 2021-03-24T16:49:06.000000 |
    Copy to Clipboard Toggle word wrap

    每个成功部署的后端的状态都显示 enabled,状态会显示 up

6.1.4. 配置自定义后端

您可以部署在 Red Hat OpenStack Platform (RHOSP) director 安装程序中没有对应的实现的自定义存储后端。

当您将来自同一供应商的多个存储后端添加到部署中时,请使用部署 多个后端 中的步骤配置一个后端。将其他后端配置为自定义后端。

当您部署自定义后端时,请检查存储后端供应商是否需要自定义容器镜像,而不是共享文件系统服务(manila)的标准容器镜像。您可以在 红帽生态系统目录 中找到自定义容器镜像。

流程

  1. 创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:

    $ vi /home/stack/templates/<custom_backend_data>.yaml
    Copy to Clipboard Toggle word wrap
    • <custom_backend_data > 替换为您的文件的名称。
  2. 使用共享文件系统服务所需的容器镜像配置存储自定义 YAML 文件:

    parameter_defaults:
      ContainerManilaShareImage: <custom_container_image_url>
    Copy to Clipboard Toggle word wrap
    • <custom_container_image_url > 替换为自定义容器镜像的 URL。
  3. 使用 ControllerExtraConfig 参数配置共享文件系统服务所需的后端。此参数确保配置应用到所有 Controller 节点:

    parameter_defaults:
      ...
      ControllerExtraConfig:
        manila::config::manila_config:
          <backend_name>/<parameter>:
            value: '<parameter_value>'
    Copy to Clipboard Toggle word wrap
    • <backend_name > 替换为自定义后端的名称。
    • &lt;parameter> 替换为您要为此后端配置的参数的名称,如 netapp_server_hostnamenetapp_password
    • <parameter_value > 替换为您要为参数设置的值,如 203.0.113.20admin_password

      注意

      如果使用自定义角色,请使用 [role_name]ExtraConfig 而不是 ControllerExtraConfig 参数。将 [role_name] 替换为自定义角色的名称。

6.1.5. 部署自定义后端

当您为 Red Hat OpenStack Platform (RHOSP)部署配置了 自定义存储后端时,如 配置自定义后端 中所述,您可以将其添加到部署中。

流程

  1. 创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:

    $ vi /home/stack/templates/<manila_enabled_share_backends>.yaml
    Copy to Clipboard Toggle word wrap
    • <manila_enabled_share_backends > 替换为您的文件的名称。
  2. 配置存储自定义 YAML 文件,将自定义后端添加到启用共享后端列表中:

    parameter_defaults:
      ControllerExtraConfig:
        manila_user_enabled_backends:
          - '<backend_name>'
    Copy to Clipboard Toggle word wrap
    • <backend_name > 替换为自定义后端的名称。
  3. 使用其他环境文件将存储自定义 YAML 文件添加到堆栈中,并部署 overcloud:

    $ openstack overcloud deploy --templates \
    -e [your environment files] \
      -e /home/stack/templates/<manila_enabled_share_backends>.yaml
    Copy to Clipboard Toggle word wrap

6.1.6. 为后端部署可用区

您可以创建可用区(AZ)来对云用户进行逻辑分组云基础架构和服务。您可以将 AZ 映射到故障域和计算资源,以实现高可用性、容错和资源调度。例如,您可以创建一个具有特定硬件的 Compute 节点的 AZ,使云用户可在创建需要该硬件的实例时指定它们。

共享始终与 AZ 关联。如果您在创建共享时没有设置 AZ 参数,则共享文件系统服务(manila)将共享与名为 nova 的默认 AZ 关联。您可以使用 ManilaXXXAvailabilityZone 参数(其中 XXX 与特定后端相关联)为共享文件系统服务后端配置不同的 AZ。有关 AZ 的更多信息,请参阅配置计算服务以进行实例创建中的创建和管理主机聚合

重要
如果您更改了现有共享的 AZ 参数,则这些共享将继续与原始 AZ 关联,同时其后端映射到新的 AZ。目前,在更改现有共享的 AZ 参数时,目前无法协调原始 AZ 和新映射的 AZ 参数之间的冲突。

流程

  1. 将以下参数添加到共享文件系统服务环境文件中,以创建两个 AZ:

    parameter_defaults:
     ManilaXXXAvailabilityZone: zone1
     ManilaYYYAvailabilityZone: zone2
    Copy to Clipboard Toggle word wrap
    • 使用支持的后端值替换 XXXYYY,例如:

      ManilaCephFSAvailabilityZone
      ManilaNetAppAvailabilityZone
      Copy to Clipboard Toggle word wrap

      以下示例部署两个后端,其中 CephFS 是 zone 1,NetApp 是区域 2:

      parameter_defaults:
       ManilaCephFSAvailabilityZone: zone1
       ManilaNetAppAvailabilityZone: zone2
      Copy to Clipboard Toggle word wrap
      注意
      /usr/share/openstack-tripleo-heat-templates/deployment/manila/ 目录中搜索与您的后端关联的 heat 模板,以获取正确的后端值。
  2. stack 用户身份登录 undercloud 主机。
  3. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  4. 使用其他环境文件将更新的共享文件系统服务环境文件添加到堆栈中,并部署 overcloud:

    $ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/<updated_environment_file>.yaml
    Copy to Clipboard Toggle word wrap
  5. 部署后,使用 availability_zones 共享类型额外规格将共享类型限制为一个或多个 AZ。只要共享类型没有限制,云用户可以直接在 AZ 中创建共享。

其他资源

6.1.7. 更改允许的 NAS 协议

您可以使用共享文件系统服务(manila)在 NFS、CephFS 或 CIFS 网络附加存储(NAS)协议中导出共享。默认情况下,共享文件系统服务启用部署中后端支持的所有 NAS 协议。

作为 Red Hat OpenStack Platform (RHOSP)管理员,您可以更改 ManilaEnabledShareProtocols 参数,并只列出您要在云中允许的协议。例如,如果您的部署中的后端同时支持 NFS 和 CIFS,您可以更改默认值并启用一个协议。

并非所有存储后端驱动程序都支持 CIFS 协议。有关哪些认证存储系统支持 CIFS 的详情,请查看 红帽生态系统目录。有关通过 RHOSP director 配置服务的详情,请参考厂商存储文档。

流程

  1. 提供 overcloud 凭证文件:

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • <credentials_file > 替换为您的凭据文件的名称,如 overcloudrc
  2. 创建存储自定义 YAML 文件以提供适合您环境的任何值或覆盖:

    $ vi /home/stack/templates/<share_protocols>.yaml
    Copy to Clipboard Toggle word wrap
    • <share_protocols > 替换为您的文件的名称。
  3. 使用您要启用的 NAS 协议配置 ManilaEnabledShareProtocols 参数:

    parameter_defaults:
      ManilaEnabledShareProtocols:
        - NFS
        - CEPHFS
    Copy to Clipboard Toggle word wrap
  4. 使用其他环境文件将存储自定义 YAML 文件添加到堆栈中,并部署 overcloud:

    $ openstack overcloud deploy --templates \
    -e [your environment files] \
      -e /home/stack/templates/<share_protocols>.yaml
    Copy to Clipboard Toggle word wrap
    注意

    部署不会验证设置。您分配的 NAS 协议必须被共享文件系统服务部署中的后端支持。

6.1.8. 查看后端功能

共享文件系统服务(manila)的调度程序组件根据几个因素(如容量、配置配置、放置提示以及后端存储系统驱动程序检测到和公开的功能)做出智能放置决策。

流程

  • 运行以下命令来查看可用功能:

    $ manila pool-list --detail
    +------------------------------------+----------------------------+
    | Property                           | Value                      |
    +------------------------------------+----------------------------+
    | name                               | hostgroup@cephfs#cephfs    |
    | pool_name                          | cephfs                     |
    | total_capacity_gb                  | 1978                       |
    | free_capacity_gb                   | 1812                       |
    ...
    | driver_handles_share_servers       | False                      |
    | snapshot_support                   | True                       |
    | create_share_from_snapshot_support | False                      |
    | revert_to_snapshot_support         | False                      |
    | mount_snapshot_support             | False                      |
    ...
    +------------------------------------+----------------------------+
    +------------------------------------+-----------------------------------+
    | Property                           | Value                             |
    +------------------------------------+-----------------------------------+
    | name                               | hostgroup@tripleo_netapp#aggr1_n1 |
    | pool_name                          | aggr1_n1                          |
    | total_capacity_gb                  | 6342.1                            |
    | free_capacity_gb                   | 6161.99                           |
    ...
    | driver_handles_share_servers       | False                             |
    | mount_snapshot_support             | False                             |
    | replication_type                   | None                              |
    | replication_domain                 | None                              |
    | sg_consistent_snapshot_support     | host                              |
    | ipv4_support                       | True                              |
    | ipv6_support                       | False                             |
    +------------------------------------+-----------------------------------+
    +------------------------------------+-----------------------------------+
    | Property                           | Value                             |
    +------------------------------------+-----------------------------------+
    | name                               | hostgroup@tripleo_netapp#aggr1_n2 |
    | pool_name                          | aggr1_n2                          |
    | total_capacity_gb                  | 6342.1                            |
    | free_capacity_gb                   | 6209.26                           |
    ...
    | snapshot_support                   | True                              |
    | create_share_from_snapshot_support | True                              |
    | revert_to_snapshot_support         | True                              |
    | driver_handles_share_servers       | False                             |
    | mount_snapshot_support             | False                             |
    | replication_type                   | None                              |
    | replication_domain                 | None                              |
    | sg_consistent_snapshot_support     | host                              |
    | ipv4_support                       | True                              |
    | ipv6_support                       | False                             |
    +------------------------------------+-----------------------------------+
    Copy to Clipboard Toggle word wrap

相关信息

要影响放置决策,作为管理员,您可以使用共享类型和额外规格。有关共享类型的更多信息,请参阅创建共享类型

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat