GlusterFS 原生驱动¶
GlusterFS 原生驱动使用 GlusterFS,一个开源分布式文件系统,作为存储后端,为 manila 客户端提供文件共享。
一个 manila 共享是一个 GlusterFS 卷。此驱动程序使用扁平网络(无共享服务器)模型。实例直接与 GlusterFS 后端存储池通信。实例使用 ‘glusterfs’ 协议挂载 GlusterFS 共享。通过 TLS 证书允许访问每个共享。只有与 GlusterFS 后端建立 TLS 信任关系的实例才能挂载并使用共享。目前仅支持 ‘rw’ 访问。
注意
此驱动程序已在 18.0.0 版本中弃用。
网络方案¶
存储后端与运行 manila 共享服务的宿主机之间应存在 L3 可达性。
多租户模型¶
该驱动程序不支持网络分段的多租户模型。相反,多租户使用租户特定的 TLS 证书支持。
支持的操作¶
创建 share
删除共享
允许共享访问 (rw)
拒绝共享访问
创建快照
删除快照
从快照创建共享
需求¶
在存储后端安装 glusterfs-server 包,版本 >= 3.6.x。
在 manila 宿主机上安装 glusterfs 和 glusterfs-fuse 包,版本 >=3.6.x。
建立 manila 宿主机与存储后端之间的网络连接。
Manila 驱动程序配置设置¶
需要在 manila 的配置文件中设置以下参数
- share_driver =
manila.share.drivers.glusterfs.glusterfs_native.GlusterfsNativeShareDriver
- glusterfs_servers = 提供卷的 GlusterFS 服务器列表
这些服务器预计属于不同的 Gluster 集群(即,不应是 gluster 对等体)。每个服务器应采用以下形式
[<remoteuser>@]<glustervolserver>。服务器 URI 的可选
<remoteuser>@部分指示用于集群管理的 SSH 访问权限(请参阅下面的相关可选参数)。如果未提供,则执行直接命令行管理(即,假定 manila 宿主机是服务器所属的 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,表示卷的大小为 3G。
以下配置参数是可选的
- glusterfs_mount_point_base = <GlusterFS 卷挂载在
manila 宿主机上的基本路径>
glusterfs_path_to_private_key = <manila 宿主机的私钥文件路径>
glusterfs_server_password = <远程 GlusterFS 服务器机器的密码>
宿主机和后端配置¶
应在 GlusterFS 服务器和涉及的卷的 I/O 路径上启用 SSL/TLS(即,在
glusterfs_servers中指定的卷),如 https://docs.gluster.org/en/2025.2/Administrator%20Guide/SSL/ 中所述。(为管理路径启用 SSL/TLS 也是可能的,但目前不建议这样做。)manila 宿主机也应配置为 GlusterFS SSL/TLS(即,/etc/ssl/glusterfs.{pem,key,ca} 文件必须如上述文档所述部署)。
对使用的 CA 有进一步的要求:涉及的 CA 集合应一致,即 /etc/ssl/glusterfs.ca 应在所有服务器和 manila 宿主机上相同。
对使用的证书的通用名称 (CN) 有进一步的要求:服务器的证书应具有以 glusterfs-server 开头的通用名称,并且宿主机的证书应具有以 manila-host 开头的通用名称。
要支持快照,由 bricks 组成的 GlusterFS 卷应为稀疏配置的 LVM 卷(参阅 https://gluster.readthedocs.org/en/2025.2/Administrator%20Guide/Managing%20Snapshots/)。
已知限制¶
GlusterFS 卷不是按需创建的。GlusterFS 集群应提供预先存在的 GlusterFS 卷集,符合由
glusterfs_volume_pattern编码的命名约定。但是,GlusterFS 端点允许随时扩展此集合(因此,manila 和 GlusterFS 端点预计会通过非带内方式通信卷供应/需求)。glusterfs_volume_pattern可以包含大小提示(使用#{size}语法),如果存在,则要求 GlusterFS 端在名称中指示共享的大小(以 GB 为单位)。(在共享创建时,manila 选择的卷至少与请求的卷一样大。)实例和存储后端之间的证书设置(也称为信任设置)不在 manila 范围内。
为了使 manila 使用 GlusterFS 卷,GlusterFS 卷中垃圾桶目录的名称不得从默认值更改。