rgw:数据访问加速(D3N)
介绍
D3N全称是Datacenter-Data-Delivery Network (D3N) ,简单理解是在rgw网关节点上把存储在rados集群的数据缓存起来,这种对于rgw网关和rados集群分离部署的场景效果非常好,少了rgw网关到rados集群的网络开销和rados集群读取数据的开销。
P版已经release到16.2.5,但是这个功能没有跟着release,还在开发中。
配置
配置起来还是很简单的,在rgw网关节点操作,假设/dev/sdd1是nvme ssd分区
1、mkdir -p /mnt/nvme0/
2、mount /dev/sdd1 /mnt/nvme0/
3、mkdir -p /mnt/nvme0/rgw_datacache/client.rgw.8000/
4、修改ceph.conf,在[client.rgw.8000]下增加如下配置 :
[client.rgw.8000]
rgw_d3n_l1_local_datacache_enabled = true # 表示开启D3N功能
rgw_d3n_l1_datacache_persistent_path = "/mnt/nvme0/rgw_datacache/client.rgw.8000/" # 该rgw实例缓存数据的目录 rgw_d3n_l1_datacache_size = 10737418240 # 缓存大小是10G,单位bytes
rgw_d3n_l1_eviction_policy = lru # 缓存淘汰策略,有两种:random和lru,默认是lru
如果网关节点上有多个rgw实例,那么将可以把每个rgw实例的缓存目录分开,例如在[client.rgw.8001]的rgw_d3n_l1_datacache_ persistent_ path =”/mnt/nvme0/rgw_datacache/client.rgw.8001/”。
日志
日志也会打在在radosgw.xx.log中,D3N相关的日志行包含了D3N关键字。可以通过debug_rgw_datacache调整日志界别,最高30。
几个注意点
1、每次重启rgw网关实例时,都会清除其对应的缓存目录的数据。
2、不会缓存被rgw网关压缩的对象。
3、不会缓存由rgw网关加密的对象。
4、如果rgw_max_chunk_size配置与rgw_obj_stripe_size配置不同,D3N将会失效。
这里还没有本地实测,后面搞下,参考:https://docs.ceph.com/en/latest/radosgw/d3n_datacache/