CephFS NFS 与 Manila¶
应使用 CephFS 通过 Manila 为 OpenStack 服务器提供共享存储。
问题描述¶
现有的 CephFS charm 没有可用的 Manila 集成。
提议的变更¶
为了添加对 CephFS 作为已部署 OpenStack 的 OpenStack Charm 的共享文件系统的支持,需要做一些事情。主要的是,需要一个新的 charm 来桥接 NFS 到 CephFS 协议。对于此应用程序的最佳选择是 Ganesha。除了对 Ganesha 进行 charm 处理外,还需要对现有的 CephFS charm 进行额外的改进,以提高其可测试性和可支持性。
为了允许新的 Ganesha charm 与 Manila 集成,将向现有的 Manila charm 添加一个新的 remote-manila-plugin 接口,该接口将与现有的 manila-plugin 接口完全相同,但不会限定在容器范围内。这个 remote-manila-plugin 接口将用于禁用 Manila charm 上的 manila-share 服务。新的 manila-ganesha charm 将配置 manila-share 服务,以及 Ganesha。
访问 Ganesha 网络将包括安全组,限制提供商网络上的租户无法访问该网络上的任何内容,除非是他们自己的 NFS 共享,并且将使用 IP 限制来限制租户无法访问彼此的共享。该提供商网络将被记录为需要由 OpenStack 管理员创建。需要创建该网络以匹配 Ganesha charm 提供其 NFS 服务所占用的空间。
备选方案¶
作为将 Ganesha 安装为 NFS 网关的替代方案,可以通过 CephFS 和 Manila 直接实现共享文件系统。由于需要将 ceph-fs 客户端添加到所有希望访问共享文件系统的租户,因此不推荐使用这种方法。此外,让客户端直接连接到 Ceph 需要直接将 Ceph 集群(mons 和 OSDs)暴露给租户工作负载,从而大大增加共享存储的安全性暴露。
实现¶
使用 Ganesha 将 Ceph 后端存储添加到 Manila 的 bundle overlay 如下所示
applications:
manila-ganesha:
charm: manila-ganesha
num_units: 2
relations:
- - ceph-mon
- ganesha
- - manila-ganesha:remote-manila-plugin
- manila:remote-manila-plugin
一个更完整的 bundle 可能如下所示
applications:
ceph-mon:
charm: cs:~openstack-charmers-next/ceph-mon
num_units: 3
ceph-osd:
charm: cs:~openstack-charmers-next/ceph-osd
num_units: 3
storage:
osd-devices: '10g'
ceph-mds:
charm: cs:~openstack-charmers-next/ceph-mds
num_units: 2
manila-ganesha:
charm: manila-ganesha
num_units: 2
manila:
charm: cs:~openstack-charmers-next/manila
num_units: 1
relations:
- - ceph-mon
- manila-ganesha
- - ceph-mon
- ceph-osd
- - manila-ganesha:remote-manila-plugin
- manila:remote-manila-plugin
负责人¶
- 主要负责人
Chris.MacNaughton
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit 主题“charm-cephfs-manila”。
git-review -t charm-cephfs-manila
工作项¶
新的 Manila-Ganesha charm
对 Manila charm 的更新
对 CephFS charm 的改进
仓库¶
需要几个新的仓库
charm-manila-ganesha
此外,charm-manila 和 charm-ceph-fs charm 将被更新。
文档¶
此更改需要对 charm-guide 进行新的文档记录,以及在新 charm 中进行新的文档记录。此外,charm-ceph-fs 需要更新文档以说明新的功能。
安全性¶
此更改需要对 Manila 提供的 ceph 存储的权限模型和限制进行一些验证,以确保访问共享不会破坏租户限制。
测试¶
将向每个 charm 添加单元测试,以涵盖任何新功能。
将向每个新 charm 和现有 charm 添加新的功能测试,以验证功能,包括对整个解决方案的端到端测试。
依赖项¶
此工作所需的软件包已包含在 Ubuntu 宇宙(Universe)档案中。宇宙(Universe)中所需的软件包(ganesha-nfs)将作为此工作的一部分被提议包含到主(Main)中。没有其他新的外部依赖项。支持 Manila 与 CephFS 和 Ganesha 的第一个版本是 Bionic Rocky。