介紹
D3N全稱是Datacenter-Data-Delivery Network (D3N) 妇汗,簡單理解是在rgw網(wǎng)關(guān)節(jié)點上把存儲在rados集群的數(shù)據(jù)緩存起來,這種對于rgw網(wǎng)關(guān)和rados集群分離部署的場景效果非常好说莫,少了rgw網(wǎng)關(guān)到rados集群的網(wǎng)絡(luò)開銷和rados集群讀取數(shù)據(jù)的開銷杨箭。
P版已經(jīng)release到16.2.5,但是這個功能沒有跟著release储狭,還在開發(fā)中互婿。
配置
配置起來還是很簡單的,在rgw網(wǎng)關(guān)節(jié)點操作辽狈,假設(shè)/dev/sdd1是nvme ssd分區(qū)
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實例緩存數(shù)據(jù)的目錄 rgw_d3n_l1_datacache_size = 10737418240 # 緩存大小是10G尊勿,單位bytes
rgw_d3n_l1_eviction_policy = lru # 緩存淘汰策略僧凤,有兩種:random和lru,默認(rèn)是lru
如果網(wǎng)關(guān)節(jié)點上有多個rgw實例元扔,那么將可以把每個rgw實例的緩存目錄分開,例如在[client.rgw.8001]的rgw_d3n_l1_datacache_ persistent_ path =”/mnt/nvme0/rgw_datacache/client.rgw.8001/”旋膳。
日志
日志也會打在在radosgw.xx.log中澎语,D3N相關(guān)的日志行包含了D3N關(guān)鍵字⊙榘茫可以通過debug_rgw_datacache調(diào)整日志界別擅羞,最高30。
幾個注意點
1义图、每次重啟rgw網(wǎng)關(guān)實例時减俏,都會清除其對應(yīng)的緩存目錄的數(shù)據(jù)。
2碱工、不會緩存被rgw網(wǎng)關(guān)壓縮的對象娃承。
3奏夫、不會緩存由rgw網(wǎng)關(guān)加密的對象。
4历筝、如果rgw_max_chunk_size配置與rgw_obj_stripe_size配置不同酗昼,D3N將會失效。
這里還沒有本地實測梳猪,后面搞下麻削,參考:https://docs.ceph.com/en/latest/radosgw/d3n_datacache/