本篇主要是分析ceph的版本之间参数的变化,参数变化意味着功能的变化,通过参数来分析增加,删除,修改了哪些功能,以及版本之间的变化,本篇主要通过导出参数,然后通过脚本去比对不同的版本的参数变化
14版本之前安装一个ceph-common,然后touch一个空配置文件就可以通过ceph --show-config拿到版本的配置文件
14版本之后需要安装好mon,并且这个命令取消了,通过下面的命令获取
ceph config show-with-defaults mon.lab204|awk '{print $1,"=",$2}'
选取了6个版本的配置文件做分析
[root@lab204 cephconf]# ll
total 304
-rw-r--r-- 1 root root 35475 Sep 14 15:30 ceph.conf.10.2.11
-rw-r--r-- 1 root root 47857 Sep 14 15:32 ceph.conf.12.2.13
-rw-r--r-- 1 root root 51393 Sep 14 17:28 ceph.conf.14.1.0
-rw-r--r-- 1 root root 51535 Sep 14 16:12 ceph.conf.14.2.0
-rw-r--r-- 1 root root 53575 Sep 14 17:42 ceph.conf.14.2.11
-rw-r--r-- 1 root root 55400 Sep 14 16:25 ceph.conf.15.2.4
-rwxrwxrwx 1 root root 986 Sep 14 17:40 compare-conf.sh
通过执行脚本输出比对结果
sh ./compare-conf.sh ceph.conf.10.2.11 ceph.conf.12.2.13 > /tmp/compare.log
原始版本
比对版本
删除配置
改动配置
增加配置
ceph.conf.10.2.11
ceph.conf.12.2.13
78
182
394
ceph.conf.12.2.13
ceph.conf.14.1.0
75
143
170
ceph.conf.14.1.0
ceph.conf.14.2.0
5
7
8
ceph.conf.14.2.0
ceph.conf.14.2.11
5
24
61
ceph.conf.14.2.11
ceph.conf.15.2.4
55
14
105
得到版本的参数变化值以后,再挑选出来进行具体的分析即可,通过上面的版本可以看到从10的最后一个版本到现在差不多增加了600多个参数,也删除了200个参数左右,从整体上来说我们需要重点关注下新增的参数和变动的参数
上面的是主要的一些变化,bluestore的一些参数就不记录了,因为jewel里面的bluestore基本是实验版本的
增加了394个参数,大部分是bluestore的,也有其它的参数的,增加的参数后面再分析
bluefs_buffered_io 从关闭得到开启,但是这个开启后会在后期引起swap的调用,引起整体性能降低(Redhat4967421),红帽自己是准备把这个参数关闭(GitHub pr 34297)后面版本应该也关闭了
fuse_big_writes 从true改成了false,false的时候是4K的写入,true的时候是128K的写入,对性能影响特别大(提出下降的问题),这个参数L版本还是true,这个版本改成了false,16562 pr这个pr可以看到,是因为libfuse去掉了这个参数了, 还要看下这个参数-o max_write ,用了fuse需要关注下版本,CentOS软件包libfuse2.9.2。因此,使用ceph-fuse在CentOS上升级到Mimi 导致fuse中的4k写 性能非常差的层
[root@lab204 cephconf]# rpm -qa|grep fuse
fuse-libs-2.9.2-11.el7.x86_64
fuse-2.9.2-11.el7.x86_64
也就是如果fuse是这个版本,就手动开启,如果把fuse升级了,那么性能就不用这个参数控制了
log_max_recent log最近的事件从500调整为10000
mon_client_hunt_parallel 客户端寻找mon的时候可以控制寻找mon的数量,从2改成了3了
mon config key max entry size 配置的key的大小从4096调整为65536(单位bytes)
mon_mgr_mkfs_grace 从60调整为120 如果120s没有活跃的mgr就用warn警告调整为error警告
osd_deep_scrub_large_omap_object_key_threshold判断omap超大的标准,从20万调整为200万,这个参数存在争议,后面看下最终是多少issue 40583
osd_max_pg_log_entries 从10000调整为3000 (这个参数是控制recover和backfill的,调整到足够小,就是强制做backfill了(红帽文档)) To force backfill rather than recovery, set osd_min_pg_log_entries to 1, and set osd_max_pg_log_entries to 2
osd_min_pg_log_entries 从1500调整为3000 (也有相关的问题内存占用)
rgw_reshard_bucket_lock_duration reshard的时候,锁定对象的时间从120秒调整为360秒
rbd_skip_partial_discard 从false改成了true,跟discard 有关的,If true, the block device will skip zeroing a range when trying to discard a range inside an object.
rgw_frontends 默认从civetweb变成了beast
bluefs_allocator 从bitmap调整为hybrid,V14.2.11 新加入的功能(相关pr)
bluefs_buffered_io这个版本调整为false了
bluestore_block_size 从10G调整为100G了
bluestore_fsck_on_mount_deep 从true调整为false了
bluestore_fsck_on_umount_deep 从true调整为false了
bluestore_log_omap_iterator_age 从1调整为5
bluestore_min_alloc_size_ssd从16384调整为4096这个跟性能有关的,The default value of bluestore_min_alloc_size_ssd has been changed to 4K to improve performance across all workloads.
fuse_big_writes又从false调整为true了
mon_pg_warn_min_per_osd从30调整为0了
osd_client_message_cap从100调整为0
osd_deep_scrub_large_omap_object_key_threshold 这个又从2000000调整为200000了
rocksdb_pin_l0_filter_and_index_blocks_in_cache从true调整为false了
mds_cache_memory_limit mds的缓存从1073741824调整为4294967296
osd_client_message_cap 从0 调整为100了
osd_max_omap_entries_per_request从131072调整为1024了
osd_max_pg_log_entries 从3000调整为10000 这个上个版本调整过,又动了
osd_min_pg_log_entries 从3000调整为250了 这个上个版本调整过,又动了
osd_op_queue_cut_off 从low调整为high
osd_pool_default_pg_autoscale_mode 从warn调整为了on了
rgw_bucket_index_max_aio从9调整为128
rgw_lc_lock_max_time 从60调整为90
本篇是提供了一个查找功能变化点的思路,当然也可以通过github的pr来分析,配置文件过多的时候,我们就分析重点的地方即可
Why
Who
When
创建
武汉-运维-磨渣
2020-09-15
手机扫一扫
移动阅读更方便
你可能感兴趣的文章