注意

本文档适用于 Ceph 开发版本。

D3N RGW 数据缓存

数据中心数据交付网络(D3N)使用高速存储,如 NVMe 闪存或 DRAM,在访问端缓存数据集。

许多数据中心包括低成本、集中式存储库,称为数据湖,用于存储和共享太字节和 Pebibyte 级别的数据集。

D3N 通过加速从数据湖的重复读取,提高了分析集群中运行的大数据作业的性能。
RADOS 网关充当后端对象存储(OSDs)的缓存服务器,将数据本地存储以供重用。

架构

D3N 通过加速从数据湖重复访问的数据集读取,提高了大数据作业的性能。*其中靠近客户端的缓存具有最低的访问延迟和开销,而层次结构中更高层的缓存较慢(需要多个跳来访问)。

*目前仅上游了第一层缓存。

请参阅MOC D3N(数据中心级数据交付网络)Red Hat Research D3N 缓存用于数据中心.

实现

  • D3N 缓存支持S3Swift对象存储接口。

  • D3N 目前仅缓存尾部对象,因为它们是不可变的(默认情况下是大于 4MB 的对象的一部分)。RGW 数据缓存和 CDN支持缓存所有大小的对象)

要求

  • 一个 SSD (1610d3: )或类似的块存储设备,格式化/dev/nvme, /dev/pmem, /dev/shm) or similar block storage device, formatted (filesystems other than XFS were not tested) and mounted. It will be used as the cache backing store. (depending on device performance, multiple RGWs may share a single device but each requires a discrete directory on the device filesystem)

限制

  • D3N 不会缓存 Rados 网关压缩的对象(OSD 级压缩受支持)。

  • D3N 不会缓存 Rados 网关加密的对象.

  • 如果配置变量的值与配置变量的值不同,D3N 将被禁用。rgw_max_chunk_size config variable value differs from the rgw_obj_stripe_size config variable value.

D3N 环境设置

运行

要在现有的 RGW 上启用 D3N,需要在监控器配置数据库中添加以下配置条目,例如对于client.rgw.8000:

ceph config set client.rgw.8000 rgw_d3n_l1_local_datacache_enabled true
ceph config set client.rgw.8000 rgw_d3n_l1_datacache_persistent_path /mnt/nvme0/rgw_datacache/client.rgw.8000/
ceph config set client.rgw.8000 rgw_d3n_l1_datacache_size 10737418240

上述示例假设缓存后端存储的固态设备挂载在/mnt/nvme0,并且有 10 GB 的可用空间用于缓存。

目录必须在启动 RGW 守护进程之前存在并且可写:

mkdir -p /mnt/nvme0/rgw_datacache/client.rgw.8000/

在容器化部署中,缓存目录应作为卷挂载:

extra_container_args:
  - "-v"
  - "/mnt/nvme0/rgw_datacache/client.rgw.8000/:/mnt/nvme0/rgw_datacache/client.rgw.8000/"

(参考:服务管理 - 使用额外容器参数挂载文件)

如果在同一主机上共置了另一个 RADOS 网关,请将其持久路径配置为不同的目录,例如在client.rgw.8001:

ceph config set client.rgw.8001 rgw_d3n_l1_datacache_persistent_path /mnt/nvme0/rgw_datacache/client.rgw.8001/

在多个共置 RADOS 网关配置中,考虑将不同工作负载的客户机分配给没有平衡器的每个 RADOS 网关,以避免缓存数据重复。

Note

每次RGW守护进程重新启动时,缓存目录的内容都会被清除。

日志

  • D3N 相关的日志行在radosgw.*.log中包含字符串d3n(不区分大小写)。

  • 可以通过debug_rgw_datacache子系统启用低级 D3N 日志(最高debug_rgw_datacache=30).

配置参考

以下 D3N 相关设置可以添加到 Ceph 配置文件ceph.conf)下的[client.rgw.{instance-name}]部分。

rgw_d3n_l1_local_datacache_enabled

启用数据中心级数据集交付本地缓存

type:

bool

default:

false

rgw_d3n_l1_datacache_persistent_path

用于存储本地缓存对象数据的目录的路径

type:

str

default:

/tmp/rgw_datacache/

rgw_d3n_l1_datacache_size

磁盘上数据缓存的最大大小(以字节为单位)

type:

size

default:

1Gi

rgw_d3n_l1_eviction_policy

选择 D3N 缓存淘汰策略)

type:

str

default:

lru

valid choices:
  • lru

  • random

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.