如果你的 Ceph 存储集群在运行,而你想看一个在运行进程的配置,用下面的命令:
ceph daemon {daemon-type}.{id} config show | less
如果你现在位于 osd.0 所在的主机,命令将是:
ceph daemon osd.0 config show | less
Ceph 配置文件可用于配置存储集群内的所有守护进程、或者某一类型的所有守护进程。要配置一系列守护进程,这些配置必须位于能收到配置的段落之下,比如:
[global] 描述: [global] 下的配置影响 Ceph 集群里的所有守护进程。 实例: auth supported = cephx
[osd] 描述: [osd] 下的配置影响存储集群里的所有 ceph-osd 进程,并且会覆盖 [global] 下的同一选项。 实例: osd journal size = 1000
[mon] 描述: [mon] 下的配置影响集群里的所有 ceph-mon 进程,并且会覆盖 [global] 下的同一选项。 实例: mon addr = 10.0.0.101:6789
[mds] 描述: [mds] 下的配置影响集群里的所有 ceph-mds 进程,并且会覆盖 [global] 下的同一选项。 实例: host = myserver01
[client] 描述: [client] 下的配置影响所有客户端(如挂载的 Ceph 文件系统、挂载的块设备等等)。 实例: log file = /var/log/ceph/radosgw.log
全局设置影响集群内所有守护进程的例程,所以 [global] 可用于设置适用所有守护进程的选项。但可以用这些覆盖 [global] 设置:
在 [osd] 、 [mon] 、 [mds] 下更改某一类进程的配置。 更改特定进程的设置,如 [osd.1] 。 覆盖全局设置会影响所有子进程,明确剔除的例外。
#ceph tell mon.* injectargs '--{tunable value_to_be_set}'
$ ceph daemon mon.ceph-rbdbench-osd01 config get mon_osd_report_timeout
{
"mon_osd_report_timeout": "900"
}
ceph tell mon.* injectargs '--mon_osd_report_timeout 800'
$ ceph daemon mon.ceph-rbdbench-osd01 config get mon_osd_report_timeout
{
"mon_osd_report_timeout": "800"
}
#ceph tell osd.* injectargs '--{tunable value_to_be_set}'
#ceph tell mds.* injectargs '--{tunable value_to_be_set}'
# ceph daemon osd.1 config get mon_osd_full_ratio
{
"mon_osd_full_ratio": "0.98"
}
# ceph daemon osd.1 config set mon_osd_full_ratio 0.97
{
"success": "mon_osd_full_ratio = '0.97' "
}
# ceph daemon osd.1 config get mon_osd_full_ratio
{
"mon_osd_full_ratio": "0.97"
}
Ceph 可以在运行时更改 ceph-osd 、 ceph-mon 、 ceph-mds 守护进程的配置,此功能在增加/降低日志输出、启用/禁用调试设置、甚至是运行时优化的时候非常有用。Ceph 集群提供两种方式的调整,使用 tell 的方式和 daemon 设置的方式。
适合对整个集群进行设置,使用*号进行匹配,就可以对整个集群的角色进行设置,而出现节点异常无法设置时候,只会在命令行当中进行报错,不太便于查找
使用daemon进行设置的方式就是一个个的去设置,这样可以比较好的反馈,这个设置是需要在设置的角色所在的主机上进行设置,daemon的方式还提供通过asok去获取到进行的其他的信息,可以使用 ceph daemon osd.1 help去查询相关的可以使用的命令