GlusterFS 原生驱动

GlusterFS 原生驱动使用 GlusterFS,一个开源分布式文件系统,作为存储后端,为共享文件系统服务客户端提供文件共享。

共享文件系统服务的共享是一个 GlusterFS 卷。此驱动程序使用扁平网络(无共享服务器)模型。实例直接与 GlusterFS 后端存储池通信。实例使用 glusterfs 协议挂载 GlusterFS 共享。通过 TLS 证书允许访问每个共享。只有与 GlusterFS 后端建立 TLS 信任关系的实例才能挂载并使用该共享。目前仅支持 读写 (rw) 访问。

注意

此驱动程序已在 18.0.0 版本中弃用。

网络方法

存储后端与运行共享文件系统服务共享的主机之间应存在 L3 可达性。

多租户模型

该驱动程序不支持网络分段的多租户模型。相反,多租户使用租户特定的 TLS 证书支持。

支持的共享文件系统和操作

该驱动程序支持 GlusterFS 共享。

支持以下操作

  • 创建共享。

  • 删除共享。

  • 允许共享访问。

    请注意以下限制

    • 仅支持通过 TLS 证书 (cert 访问类型) 进行访问。

    • 仅支持读写访问。

  • 拒绝共享访问。

  • 创建快照。

  • 删除快照。

需求

  • 在存储后端上安装 glusterfs-server 包,版本 >= 3.6.x。

  • 在共享文件系统服务主机上安装 glusterfs 和 glusterfs-fuse 包,版本 >= 3.6.x。

  • 建立共享文件系统服务主机与存储后端之间的网络连接。

共享文件系统服务驱动程序配置设置

共享文件系统服务的配置文件中需要设置以下参数

share_driver = manila.share.drivers.glusterfs_native.GlusterfsNativeShareDriver
glusterfs_servers = glustervolserver
glusterfs_volume_pattern = manila-share-volume-\d+$

这些参数是

glusterfs_servers

提供可用于创建共享的卷的 GlusterFS 服务器列表。预计这些服务器属于不同的 Gluster 集群,因此它们不应该是 Gluster 对等体。每个服务器应采用以下形式 [<remoteuser>@]<glustervolserver>

服务器 URI 的可选 <remoteuser>@ 部分指示用于集群管理的 SSH 访问权限(请参阅下面的相关可选参数)。如果未提供,则执行直接命令行管理(假定共享文件系统服务主机是服务器所属的 GlusterFS 集群的一部分)。

glusterfs_volume_pattern

用于过滤 GlusterFS 卷以进行共享创建的正则表达式模板。正则表达式模板可以包含 #{size} 参数,该参数匹配一个数字,并且该值将被解释为卷的大小(以 GB 为单位)。示例:manila-share-volume-\d+$, manila-share-volume-#{size}G-\d+$;相应的匹配卷名称为:manila-share-volume-12, manila-share-volume-3G-13。在后一个示例中,匹配 #{size} 的数字 3 表示卷的大小为 3 GB。在创建共享时,共享文件系统服务会选择至少与请求卷一样大的卷。

设置 GlusterFS 共享时,请注意以下事项

  • GlusterFS 卷不是按需创建的。GlusterFS 集群应提供预先存在的 GlusterFS 卷集,符合由 glusterfs_volume_pattern 编码的命名约定。但是,允许 GlusterFS 端点随时扩展此集合,因此预计共享文件系统服务和 GlusterFS 端点将通过非带内方式通信卷的供应和需求。

  • 实例与存储后端之间的证书设置,也称为信任设置,不在共享文件系统服务的范围内。

  • 为了使共享文件系统服务使用 GlusterFS 卷,GlusterFS 卷中垃圾箱目录的名称不得从默认值更改。