为 Ceph RGW 启用 D3N 缓存
D3N(Data Delivery Network)缓存通过将 RGW 节点上的本地 NVMe/SSD 磁盘用作缓存层,加速对热点对象的访问。 它可减少对后端 OSD 的频繁读取操作,并显著提升热点数据的读取性能。
背景
D3N 的核心理念简单而有效: RGW 不再反复从 Ceph 后端存储获取对象数据,而是直接从位于快速磁盘(NVMe/SSD)上、连接到 RGW 节点的 本地持久化缓存 中提供热点数据。
这种设计尤其适用于:
- 大型对象下载
- 对热点对象的重复读取
- 对带宽敏感的工作负载
前提条件
- 已安装 Ceph 集群
- 已部署 Alauda Storage
- 已创建对象存储(RGW / CephObjectStore)
- RGW 节点上有可用的高性能本地磁盘(NVMe / SSD)
操作概述
- 部署 Ceph 并创建对象存储
- 在 RGW 节点上准备高速本地磁盘,并将其挂载到某个目录
- 配置
CephObjectStore以:- 通过
hostPath挂载目录 - 启用与 D3N 相关的 RGW 参数
- 通过
为缓存准备本地文件系统
在每个运行 RGW 服务的节点上挂载一个目录。建议使用高性能专用磁盘(而非分区),并将其格式化为 XFS 文件系统,同时配置 /etc/fstab,以确保重启后仍会保留挂载。请在后续文档中将 </path/to/cache/dir> 替换为你配置的实际目录路径。
在 CephObjectStore 中启用 D3N 缓存
编辑 CephObjectStore 资源:
在 gateway 下添加以下配置:
参数
验证 D3N 配置
通过 Ceph 工具检查 RGW 配置
在 rook-ceph-tools pod 中运行:
示例输出:
验证 RGW 日志
RGW pod 重启后,应会出现 D3N 初始化日志:
示例输出:
验证缓存行为
通过 RGW 下载对象时,缓存文件会出现在主机缓存目录中:
示例输出:
这些文件的存在表明 RGW 正在从本地 D3N 缓存提供数据。
Ceph 是 Red Hat, Inc. 或其子公司在美国和其他国家/地区的商标或注册商标。 Rook® 是 Linux Foundation 的注册商标。 Alauda 是一家独立供应商。本产品与 LF Projects, LLC 或 Linux Foundation 无关,亦未获得其认可或赞助。所有商标均为其各自所有者的财产,此处仅用于标识目的。