admin管理员组文章数量:1666604
1. 前言
本文介绍如何部署ceph分层存储功能,并使用ceph分层存储功能。系统环境如下:
Ceph版本:14.2.22
操作系统:ubuntu 18.04
本文默认已经提前部署ceph集群,如果没有部署,请参考Ceph集群部署1。
2. 分层存储部署
2.1. 创建分层结构
将数据存储池和缓存池建立分层结构
ceph osd tier add fs_data cache_pool
设置分层存储模式
ceph osd tier cache-mode cache_pool writeback
将客户端请求重定向到缓存池
ceph osd tier set-overlay fs_data cache_pool
fs_data
和 cache_pool
是两个副本池,副本数默认,PG数量都是为1。
2.2. 缓存池参数配置
配置缓存池使用的目标查找算法
ceph osd pool set cache_pool hit_set_type bloom
配置缓存池使用的数据命中集合个数
ceph osd pool set cache_pool hit_set_count 1
配置缓存池使用的数据命中集合存在时间
ceph osd pool set cache_pool hit_set_period 3600
配置数据promote到缓存池时需要遍历数据命中集合个数
ceph osd pool set cache_pool min_read_recency_for_promote 1
ceph osd pool set cache_pool min_write_recency_for_promote 1
如果设置为0,表示始终都做promote。如果设置为1,表示遍历当前hit set。设置的个数要介于0到hitset总个数之间。
配置缓存池中能够存储object的最大数量
ceph osd pool set cache_pool target_max_objects 1000
配置存储池低速flush数据到数据存储池时被修改的数据容量占比
ceph osd pool set cache_pool cache_target_dirty_ratio 0.4
配置存储池高速flush数据到数据存储池时被修改的数据容量占比
ceph osd pool set cache_pool cache_target_dirty_high_ratio 0.6
配置存储池高速evict数据时被已经使用的数据容量占比
ceph osd pool set cache_pool cache_target_full_ratio 0.8
配置缓存池flush数据到数据存储池之前object在缓存池中存在的时间
ceph osd pool set cache_pool cache_min_flush_age 10
配置缓存池evict数据之前object在缓存池中存在的时间
ceph osd pool set cache_pool cache_min_evict_age 15
2.3. 注意事项
以上所有参数都要配置,尤其是hit set
的配置。hit set在计算flush/evict比例、object promote流程中扮演者很重要角色。
上述设置缓存池总容量时,既可以通过target_max_objects
设置,也可以通过target_max_bytes
设置;可以同时设置这两个参数,可以以只设置其中一个。如果设置target_max_objects,将根据object数量去计算占比。如果设置target_max_bytes,将根据数据使用字节数计算占比。如果同时设置,将分别计算占比,然后对比选择出最大占比。
默认情况下,单次处理单个PG中的object数量为10;生产环境发现这种情况下,flush和evict的速度会比较慢,导致缓存池会一直处于full状态,进而导致很多OSD只读不能写,出现slowops;可以根据实际操作调整缓存池OSD的参数:osd_pool_default_cache _max_evict_check_size
;比如:ceph tell osd.* injectargs --osd_pool_default_cache_max_evict_check_size 100
。
版权声明:本文标题:ceph分层存储系统部署 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1730075467a1221719.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论