在线调整ceph的参数

能够动态的进行系统参数的调整是一个很重要并且有用的属性
ceph的集群提供两种方式的调整,使用tell的方式和daemon设置的方式

一、tell方式设置

调整配置使用命令:

调整mon的参数

1
#ceph tell mon.* injectargs '--{tunable value_to_be_set}'

调整osd的参数

1
#ceph tell osd.* injectargs '--{tunable value_to_be_set}'

调整mds的参数

1
#ceph tell mds.* injectargs '--{tunable value_to_be_set}'

例子:

1
2
[root@lab5134 ~]# ceph tell mon.* injectargs '--mon_osd_report_timeout 400'
injectargs:mon_osd_report_timeout = '400'

除了上面的tell的方式调整,还可以使用daemon的方式进行设置

二、daemon方式设置

1、获取当前的参数

1
2
3
4
[root@lab5134 ~]# ceph daemon osd.1 config get mon_osd_full_ratio
{
"mon_osd_full_ratio": "0.98"
}

2、修改配置

1
2
3
4
[root@lab5134 ~]# ceph daemon osd.1 config set mon_osd_full_ratio 0.97
{
"success": "mon_osd_full_ratio = '0.97' "
}

3、检查配置

1
2
3
4
[root@lab5134 ~]# ceph daemon osd.1 config get mon_osd_full_ratio
{
"mon_osd_full_ratio": "0.97"
}

注意重启进程后配置会恢复到默认参数,在进行在线调整后,如果这个参数是后续是需要使用的,那么就需要将相关的参数写入到配置文件ceph.conf当中

两种设置的使用场景

使用tell的方式适合对整个集群进行设置,使用*号进行匹配,就可以对整个集群的角色进行设置,而出现节点异常无法设置时候,只会在命令行当中进行报错,不太便于查找

使用daemon进行设置的方式就是一个个的去设置,这样可以比较好的反馈,这个设置是需要在设置的角色所在的主机上进行设置,daemon的方式还提供通过asok去获取到进行的其他的信息,可以使用 ceph daemon osd.1 help去查询相关的可以使用的命令