注意
本文档适用于 Ceph 开发版本。
D3N RGW 数据缓存
数据中心数据交付网络(D3N)使用高速存储,如 NVMe 闪存或 DRAM,在访问端缓存数据集。
许多数据中心包括低成本、集中式存储库,称为数据湖,用于存储和共享太字节和 Pebibyte 级别的数据集。
架构
D3N 通过加速从数据湖重复访问的数据集读取,提高了大数据作业的性能。*其中靠近客户端的缓存具有最低的访问延迟和开销,而层次结构中更高层的缓存较慢(需要多个跳来访问)。
*目前仅上游了第一层缓存。
实现
D3N 缓存支持S3和Swift对象存储接口。
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 环境设置
运行
要在现有的 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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.