1.3. Ceph 文件系统架构


Ceph 文件系统(CephFS)是一种分布式文件系统,可通过 NFS v4 协议(支持)或 CephFS 原生驱动程序(技术预览)与 NFS-Ganesha 一起使用。

1.3.1. 带有原生驱动程序的 CephFS

CephFS 原生驱动程序组合了 OpenStack 共享文件系统服务(manila)和 Red Hat Ceph Storage。通过 director 部署时,控制器节点托管 Ceph 守护进程,如管理器、元数据服务器(MDS)和监控(MON)以及共享文件系统服务。

Compute 节点可以托管一个或多个租户。租户由白色框表示,其中包含由两个 NIC 的用户管理的虚拟机(使用两个 NIC )访问 cephmanila 守护进程,方法是通过公共 Ceph 存储网络连接来访问 ceph 和 manila 守护进程。此网络还允许访问 Ceph Object Storage Daemon (OSD)提供的存储节点上的数据。托管在租户引导上的实例(VM)有两个 NIC:一个用于存储提供商网络,第二个专用于外部提供商网络的租户拥有路由器。

存储提供商网络将租户上运行的虚拟机连接到公共 Ceph 存储网络。Ceph 公共网络提供 Ceph 对象存储节点、元数据服务器(MDS)和控制器节点的后端访问。使用原生驱动程序时,CephFS 依赖于与客户端和服务器协作来强制执行配额,保证租户隔离并提高安全性。在私有云上具有可信最终用户的环境中,具有原生驱动程序的 CephFS 效果良好。此配置要求在用户控制下运行的软件,才能使操作正常工作。

1.3.2. CephFS via NFS

OpenStack 共享文件系统服务(manila)中的 NFS 后端包含 Ceph 元数据服务器(MDS)、NFS 网关(NFS-Ganesha)和 Ceph 集群服务组件的 CephFS。共享文件系统服务的 CephFS NFS 驱动程序使用 NFS-Ganesha 网关来提供 CephFS 共享的 NFSv4 协议访问。Ceph MDS 服务将文件系统的目录和文件名称映射到 RADOS 集群中存储的对象。NFS 网关可以使用不同的存储后端(如 Ceph)提供 NFS 文件共享。NFS-Ganesha 服务与 Ceph 服务一起在控制器节点上运行。

实例至少使用两个 NIC 引导:一个用于连接到租户路由器,第二个 NIC 连接到 StorageNFS 网络,后者直接连接到 NFS-Ganesha 网关。使用 NFS 协议的实例挂载共享。Ceph OSD 节点上托管的 CephFS 共享通过 NFS 网关提供。

NFS-Ganesha 通过阻止用户实例直接访问 MDS 和其他 Ceph 服务来提高安全性。实例无法直接访问 Ceph 守护进程。

1.3.2.1. Ceph 服务和客户端访问

除了监控器外,OSD、RGW (RGW)和管理器服务在 Ceph 提供对象和/或块存储时部署,还需要 Ceph 元数据服务(MDS),并且使用 NFS 协议,一个 NFS-Ganesha 服务需要作为原生 CephFS 的网关。(面向用户的对象存储,还部署 RGW 服务)。网关运行 CephFS 客户端来访问 Ceph 公共网络,且受管理而非最终用户控制。

NFS-Ganesha 在其自身的 docker 容器中运行,它们与 Ceph 公共网络和新的隔离网络 StorageNFS 接口。OpenStack director 的可组合网络功能用于部署此网络并将其连接到控制器节点。然后,云管理员将网络配置为 neutron 提供商网络。

NFS-Ganesha 通过 Ceph 公共网络访问 CephFS,并使用 StorageNFS 网络上的地址绑定其 NFS 服务。

要访问 NFS 共享,用户 VM (nova 实例)会置备连接到存储 NFS 网络的额外 NIC。使用 NFS-Ganesha 服务器的 VIP,CephFS 共享导出位置显示为标准 NFS IP:<path > tuples。用户虚拟机的访问控制是使用该网络上的用户虚拟机的 IP 进行。

Neutron 安全组可防止属于租户 1 的用户虚拟机访问属于 StorageNFS 网络租户 2 的用户虚拟机。租户共享相同的 CephFS 文件系统,但强制实施租户数据路径,因为用户虚拟机只能访问导出树下的文件: /path/to/share1/…./path/to/share2/…。

当 OpenStack director 启动 Ceph 服务守护进程时,它们管理自己的高可用性(HA)状态,一般情况下,这些守护进程的多个实例正在运行。相反,在这个发行版本中,一次只有一个 NFS-Ganesha 实例才能为文件共享提供服务。

为通过 NFS 共享避免 CephFS 的数据路径中的单点故障,NFS-Ganesha 在由 Pacemaker-Corosync 集群管理的主动 - 被动配置中运行 OpenStack 控制器节点。NFS-Ganesha 在作为虚拟服务 IP 地址的虚拟服务间充当控制器节点。

如果控制器出现故障(或者特定控制器节点上的服务失败且无法在该节点上恢复),Pacemaker-Corosync 会在使用相同虚拟 IP 的不同控制器上启动一个新的 NFS-Ganesha 实例。现有客户端挂载会被保留,因为它们使用虚拟 IP 作为共享的导出位置。

失败后,使用默认 NFS mount-option 设置和 NFS 4.1 或更高版本,TCP 连接会被重置,客户端重新连接。I/O 操作在故障切换过程中临时停止响应,但它们不会失败。应用程序 I/O 也停止响应,但在故障转移完成后恢复。

新的连接、新的锁定状态等会被拒绝,直到宽限期达到 90 秒后,服务器会等待客户端回收其锁定。NFS-Ganesha 保留客户端列表,如果它发现所有客户端回收了锁定,则会退出宽限期。

注意

宽限期的默认值为 90 秒。这个值可通过 NFSv4 Grace_Period 配置选项可调项。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat