第 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 容器镜像。
流程
创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:
$ vi /home/stack/templates/<multiple_backends>.yaml-
将
<multiple_backends> 替换为您的文件的名称。
-
将
配置存储自定义 YAML 文件,使其包含任何覆盖并启用多个后端:
parameter_defaults: ManilaEnabledShareProtocols: - NFS ManilaNetappLogin: '<login_name>' ManilaNetappPassword: '<password>' ManilaNetappServerHostname: '<netapp-hostname>' ManilaNetappVserver: ‘<netapp-vserver>’ ManilaNetappDriverHandlesShareServers: 'false'-
将尖括号 <
;> 中的值替换为 YAML 文件的正确值。
-
将尖括号 <
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc使用其他环境文件,将存储自定义 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 \ ...
其他资源
-
有关
ManilaEnabledShareProtocols参数的详情,请参考 第 6.1.7 节 “更改允许的 NAS 协议”。
6.1.3. 确认部署多个后端 复制链接链接已复制到粘贴板!
使用 manila service-list 命令来验证您的共享文件系统服务(manila)后端是否已成功部署。如果您在多个后端中使用健康检查,则 ping 测试也会返回一个响应,即使其中一个后端没有响应,因此这不是验证部署的一种可靠方法。
流程
提供 overcloud 凭证文件:
$ source ~/<credentials_file>-
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
确认共享文件系统服务后端列表:
$ 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 |每个成功部署的后端的状态都显示
enabled,状态会显示up。
6.1.4. 配置自定义后端 复制链接链接已复制到粘贴板!
您可以部署在 Red Hat OpenStack Platform (RHOSP) director 安装程序中没有对应的实现的自定义存储后端。
当您将来自同一供应商的多个存储后端添加到部署中时,请使用部署 多个后端 中的步骤配置一个后端。将其他后端配置为自定义后端。
当您部署自定义后端时,请检查存储后端供应商是否需要自定义容器镜像,而不是共享文件系统服务(manila)的标准容器镜像。您可以在 红帽生态系统目录 中找到自定义容器镜像。
流程
创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:
$ vi /home/stack/templates/<custom_backend_data>.yaml-
将
<custom_backend_data> 替换为您的文件的名称。
-
将
使用共享文件系统服务所需的容器镜像配置存储自定义 YAML 文件:
parameter_defaults: ContainerManilaShareImage: <custom_container_image_url>-
将
<custom_container_image_url> 替换为自定义容器镜像的 URL。
-
将
使用
ControllerExtraConfig参数配置共享文件系统服务所需的后端。此参数确保配置应用到所有 Controller 节点:parameter_defaults: ... ControllerExtraConfig: manila::config::manila_config: <backend_name>/<parameter>: value: '<parameter_value>'-
将
<backend_name> 替换为自定义后端的名称。 -
将
<parameter> 替换为您要为此后端配置的参数的名称,如netapp_server_hostname或netapp_password。 将
<parameter_value> 替换为您要为参数设置的值,如203.0.113.20或admin_password。注意如果使用自定义角色,请使用
[role_name]ExtraConfig而不是ControllerExtraConfig参数。将[role_name]替换为自定义角色的名称。
-
将
6.1.5. 部署自定义后端 复制链接链接已复制到粘贴板!
当您为 Red Hat OpenStack Platform (RHOSP)部署配置了 自定义存储后端时,如 配置自定义后端 中所述,您可以将其添加到部署中。
流程
创建存储自定义 YAML 文件,以提供适合您的环境的任何值或覆盖:
$ vi /home/stack/templates/<manila_enabled_share_backends>.yaml-
将
<manila_enabled_share_backends> 替换为您的文件的名称。
-
将
配置存储自定义 YAML 文件,将自定义后端添加到启用共享后端列表中:
parameter_defaults: ControllerExtraConfig: manila_user_enabled_backends: - '<backend_name>'-
将
<backend_name> 替换为自定义后端的名称。
-
将
使用其他环境文件将存储自定义 YAML 文件添加到堆栈中,并部署 overcloud:
$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/<manila_enabled_share_backends>.yaml
6.1.6. 为后端部署可用区 复制链接链接已复制到粘贴板!
您可以创建可用区(AZ)来对云用户进行逻辑分组云基础架构和服务。您可以将 AZ 映射到故障域和计算资源,以实现高可用性、容错和资源调度。例如,您可以创建一个具有特定硬件的 Compute 节点的 AZ,使云用户可在创建需要该硬件的实例时指定它们。
共享始终与 AZ 关联。如果您在创建共享时没有设置 AZ 参数,则共享文件系统服务(manila)将共享与名为 nova 的默认 AZ 关联。您可以使用 ManilaXXXAvailabilityZone 参数(其中 XXX 与特定后端相关联)为共享文件系统服务后端配置不同的 AZ。有关 AZ 的更多信息,请参阅配置计算服务以进行实例创建中的创建和管理主机聚合。
- 重要
- 如果您更改了现有共享的 AZ 参数,则这些共享将继续与原始 AZ 关联,同时其后端映射到新的 AZ。目前,在更改现有共享的 AZ 参数时,目前无法协调原始 AZ 和新映射的 AZ 参数之间的冲突。
流程
将以下参数添加到共享文件系统服务环境文件中,以创建两个 AZ:
parameter_defaults: ManilaXXXAvailabilityZone: zone1 ManilaYYYAvailabilityZone: zone2使用支持的后端值替换
XXX和YYY,例如:ManilaCephFSAvailabilityZone ManilaNetAppAvailabilityZone以下示例部署两个后端,其中
CephFS是 zone 1,NetApp是区域 2:parameter_defaults: ManilaCephFSAvailabilityZone: zone1 ManilaNetAppAvailabilityZone: zone2- 注意
-
在
/usr/share/openstack-tripleo-heat-templates/deployment/manila/目录中搜索与您的后端关联的 heat 模板,以获取正确的后端值。
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc使用其他环境文件将更新的共享文件系统服务环境文件添加到堆栈中,并部署 overcloud:
$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/<updated_environment_file>.yaml-
部署后,使用
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 配置服务的详情,请参考厂商存储文档。
流程
提供 overcloud 凭证文件:
$ source ~/<credentials_file>-
将
<credentials_file> 替换为您的凭据文件的名称,如overcloudrc。
-
将
创建存储自定义 YAML 文件以提供适合您环境的任何值或覆盖:
$ vi /home/stack/templates/<share_protocols>.yaml-
将
<share_protocols> 替换为您的文件的名称。
-
将
使用您要启用的 NAS 协议配置
ManilaEnabledShareProtocols参数:parameter_defaults: ManilaEnabledShareProtocols: - NFS - CEPHFS使用其他环境文件将存储自定义 YAML 文件添加到堆栈中,并部署 overcloud:
$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/<share_protocols>.yaml注意部署不会验证设置。您分配的 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 | +------------------------------------+-----------------------------------+
相关信息
要影响放置决策,作为管理员,您可以使用共享类型和额外规格。有关共享类型的更多信息,请参阅创建共享类型。