第 1 章 通过 NFS 使用 CephFS 的共享文件系统服务


通过 NFS 使用共享文件系统服务(manila)和 Ceph 文件系统(CephFS),您可以使用同一个 Ceph 集群用于块存储和对象存储,以通过 NFS 协议提供文件共享。有关更多信息,请参阅存储指南中的共享文件系统服务

注意

有关 Red Hat OpenStack Platform 文档的完整套件,请参阅 Red Hat OpenStack Platform 文档

重要

对于 RHOSP 16.0 和更高版本,带有 CephFS through NFS 的 Red Hat OpenStack Platform(RHOSP)共享文件系统服务支持与 Red Hat Ceph Storage 版本 4.1 或更高版本搭配使用。有关如何确定系统上安装的 Ceph Storage 版本的更多信息,请参阅 Red Hat Ceph Storage 发行版本以及对应的 Ceph 软件包版本

CephFS 是 Ceph 的高可扩展、开源分布式文件系统组件,它是一个统一的分布式存储平台。Ceph 使用可靠的自主分布式对象存储(RADOS)实施对象、块和文件存储。CephFS 是兼容 POSIX 的,提供对 Ceph 存储集群的文件访问。

您可以使用共享文件系统服务在 CephFS 中创建共享,并通过 NFS-Ganesha 的 NFS 4.1 访问它们。NFS-Ganesha 控制对共享的访问,并通过 NFS 4.1 协议将它们导出到客户端。共享文件系统服务管理 Red Hat OpenStack Platform (RHOSP) 中这些共享的生命周期。当云管理员将服务配置为通过 NFS 来使用 CephFS 时,这些文件共享会来自 CephFS 集群,但会使用您所熟悉的 NFS 共享方式创建和访问。

有关更多信息,请参阅存储指南中的共享文件系统服务

1.1. Ceph 文件系统架构

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

1.1.1. 原生CephFS 带有原生驱动程序

CephFS 原生驱动程序将 OpenStack 共享文件系统服务(manila)和 Red Hat Ceph Storage 结合。使用 Red Hat OpenStack(RHOSP)director 时,Controller 节点托管 Ceph 守护进程,如管理器、元数据服务器(MDS),以及监控(MON)和共享文件系统服务。

Compute 节点可以托管一个或多个项目。项目(以前称为租户)在以下图形中由白色框表示,包含用户管理的虚拟机,由灰色框表示,并带有两个 NIC。若要访问 ceph 和 manila 守护进程项目,可通过公共 Ceph 存储网络连接到守护进程。在这个网络上,您可以访问 Ceph Object Storage Daemon(OSD)提供的存储节点上的数据。在项目引导时托管的实例 (VM) 带有两个 NIC:一个用于存储提供商网络,第二个则专用于外部提供商网络。

存储提供商网络将项目上运行的虚拟机连接到公共 Ceph 存储网络。Ceph 公共网络提供 Ceph 对象存储节点、元数据服务器(MDS)和控制器节点的后端访问。

通过利用原生驱动程序,CephFS 依赖于与客户端和服务器协作来强制实施配额,保证项目隔离和安全性。具有原生驱动程序的 CephFS 可在具有信任最终用户的环境中正常工作。此配置要求在用户控制下运行软件,才能正常工作。

CephFS nfs 拓扑原生驱动程序

1.1.2. CephFS through NFS

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

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

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

CephFS nfs topology nfs 驱动程序

ce-client-access-CephFS-architect']

1.1.2.1. Ceph 服务和客户端访问

除了 monitor、OSD、RGW 和 manager 服务在使用 Ceph 提供对象和块存储时,需要 Ceph 元数据服务(MDS)和 NFS-Ganesha 服务作为使用 NFS 协议的原生 CephFS 的网关时。对于面向用户的对象存储,也会部署 RGW 服务。网关运行 CephFS 客户端来访问 Ceph 公共网络,并由管理员而不是最终用户进行控制。

NFS-Ganesha 在自己的容器中运行,它们同时连接到 Ceph 公共网络和新的隔离网络 StorageNFS。Red Hat OpenStack Platform(RHOSP)director 的可组合网络功能会部署这个网络,并将其连接到 Controller 节点。作为云管理员,您可以将网络配置为 Networking(neutron)提供商网络。

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

要访问 NFS 共享,请置备用户 VM、Compute(nova)实例,以及一个连接到存储 NFS 网络的额外 NIC。CephFS 共享的导出位置显示为标准 NFS IP:<path> 元组,它们使用 StorageNFS 网络上的 NFS-Ganesha 服务器 VIP。网络使用用户虚拟机的 IP 地址对 NFS 共享执行访问控制。

网络(neutron)安全组阻止属于项目 1 的用户虚拟机访问通过 StorageNFS 属于项目 2 的用户虚拟机。项目共享相同的 CephFS 文件系统,但实施项目数据路径分离,因为用户虚拟机只能访问导出树下的文件:/path/to/share1/…., /path/to/share2/….

1.1.2.2. 通过 NFS 容错使用 CephFS 的共享文件系统服务

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

为避免通过 NFS 共享进行 CephFS 数据路径中的单点故障,NFS-Ganesha 在由 Pacemaker-Corosync 集群管理的主动被动配置中运行在 RHOSP Controller 节点上运行。NFS-Ganesha 使用虚拟服务 IP 地址来跨 Controller 节点充当虚拟服务。

如果一个 Controller 节点失败或者特定 Controller 节点上的服务失败,且无法在那个节点上恢复,Pacemaker-Corosync 会使用同一虚拟 IP 地址在不同的 Controller 节点上启动新的 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, Inc.