ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

缓存分层(Ceph Mimic版本)

2022-05-26 10:01:22  阅读:163  来源: 互联网

标签:ceph 缓存 storage Ceph Mimic set osd pool


1. 注意事项

缓存分层会降低大多数工作负载的性能。用户使用此功能之前要格外小心。 

1.1 已知良好的工作负载

RGW time-skewed :如果 RGW 工作负载几乎所有读取操作针对最近写入的对象,一个简单的缓存分层配置,将最近写入的对象从在可配置的时间段后缓存到基础层可以工作良好。

2. 创建缓存层

注:在后续示例中,将缓存池称为 hot-storage ,后备池称为 cold-storage。

ceph osd tier add cold-storage hot-storage  # 设置缓存层
ceph osd tier cache-mode hot-storage writeback  # 设置缓存模式
ceph osd tier set-overlay cold-storage hot-storage  # 将客户端流量直接引导到缓存池

3. 配置缓存层

ceph osd pool set {cachepool} {key} {value}

3.1 目标大小和类型

ceph osd pool set {cachepool} hit_set_type bloom  # 生产缓存层使用 Bloom Filter 的 hit_set_type
ceph osd pool set {cachepool} hit_set_count 12  # 注意,一个更大的 hit_set_count导致更多的 RAM 被 ceph-osd 进程消耗
ceph osd pool set {cachepool} hit_set_period 14400
ceph osd pool set {cachepool} target_max_bytes 1000000000000

ceph osd pool set {cachepool} min_read_recency_for_promote 2
ceph osd pool set {cachepool} min_write_recency_for_promote 2

3.2 缓存大小

3.2.1 绝对大小

ceph osd pool set {cachepool} target_max_bytes {#bytes}
例如:达到 1 TB 开始刷新或驱逐。
ceph osd pool set hot-storage target_max_bytes 1099511627776

ceph osd pool set {cachepool} target_max_objects {#objects}
例如:达到 1M 个对象开始刷新或驱逐。
ceph osd pool set hot-storage target_max_objects 1000000

注:Ceph 无法自动确定缓存池的大小,因此这里需要配置绝对大小,否则刷新/驱逐将不起作用。如果同时指定这两个限制,当任一阈值被触发时,缓存分层代理将开始刷新或驱逐。 

3.2.2 相对大小

ceph osd pool set {cachepool} cache_target_dirty_ratio {0.0..1.0}
例如:达到缓存池容量的 40% 时开始刷新修改 (脏)对象。
ceph osd pool set hot-storage cache_target_dirty_ratio 0.4

ceph osd pool set {cachepool} cache_target_dirty_high_ratio {0.0..1.0}
例如:达到缓存池容量的 60% 时开始积极刷新脏对象。
ceph osd pool set hot-storage cache_target_dirty_high_ratio 0.6

ceph osd pool set {cachepool} cache_target_full_ratio {0.0..1.0}
例如:达到缓存池容量的 80% 时开始冲洗未修改 (清理)对象。
ceph osd pool set hot-storage cache_target_full_ratio 0.8

3.3 缓存年龄

ceph osd pool set {cachepool} cache_min_flush_age {#seconds}
例如:在 10 分钟后刷新已修改(或脏)的对象。
ceph osd pool set hot-storage cache_min_flush_age 600

ceph osd pool {cache-tier} cache_min_evict_age {#seconds}
例如:在 30 分钟后驱逐对象。
ceph osd pool set hot-storage cache_min_evict_age 1800

4. 删除缓存层

4.1 删除只读缓存

ceph osd tier cache-mode hot-storage none  # 将缓存模式更改为 none 禁用缓存
ceph osd tier remove cold-storage hot-storage  # 从后备池中删除缓存池

4.2 删除回写缓存

注:由于回写缓存可能已修改数据,因此您必须采取措施确保在您禁用并删除它之前不会丢失对缓存中对象的任何最新更改。

ceph osd tier cache-mode hot-storage forward  # 将缓存模式更改为 forward,这样新的和修改过的对象就会刷新到后备存储池
rados -p {cachepool} ls  # 确保缓存池已刷新
rados -p {cachepool} cache-flush-evict-all  # 如果缓存池仍有对象,您可以手动刷新它们
ceph osd tier remove-overlay cold-storage  # 删除覆盖,以便客户端不会将流量定向到缓存
ceph osd tier remove cold-storage hot-storage  # 从后备存储池中删除缓存层池

 

标签:ceph,缓存,storage,Ceph,Mimic,set,osd,pool
来源: https://www.cnblogs.com/varden/p/16312126.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有