ceph map相关
crush map 操作
ceph osd getcrushmap -o crushmap_compiled_file
crushtool -d crushmap_compiled_file -o crushmap_decompiled_file
cat crushmap_decompiled_file
* 看起来crush map 和osd map 不是完全一样
root@node1:~# ceph osd getcrushmap -o crushmap_compiled_file
got crush map from osdmap epoch 73
root@node1:~# ceph osd getmap -o osdmap
got osdmap epoch 73
mon map 操作
rbd相关
ceph 配置文件的调整
##这个关于mon的配置是 在6.0升级到6.1后需要修改的,否则可能造成 ceph -s 输出卡住。
mon pg warn max per osd = 10240
mon sync max payload size = 4096
mon pg warn max object skew = 0
ceph debug
debug 设置完 需要记得关闭,否则日志很大
- 打开osd debug,
run time debug 调整
配置文件 debug 设置,保障重启后仍然有效
配置文件调整中有个格式
debug mon = 0/10
debug paxos = 0/10
- 格式说明:内存日志级别/文件日志级别
osd启动前运行脚本
通过pre start command 参数指定 脚本
[osd.8]
host = 10.46.200.13
public addr = 10.46.200.13
cluster addr = 10.46.200.13
filestore max sync interval = 3
osd journal = /dev/disk/by-partlabel/85-osd-3-journal
osd uuid = 08119283-4b03-469d-a72f-5877303f6306
pre start command = /usr/local/bin/loop_osd_pre_start.sh 8 || true ##加上true 表示如果脚本执行失败,也会继续启动
ceph runtime参数调整
运行时参数调整 和 配置文件参数调整,参数的写法不太一样,运行时需要 下划线
runtime 写法如下
"osd_op_thread_timeout": "15",
"osd_recovery_thread_timeout": "30",
"osd_command_thread_timeout": "600",
"filestore_op_thread_timeout": "60",
"filestore_op_thread_suicide_timeout": "180",
ceph.conf写法如下
osd op thread_timeout = 150
osd recovery thread timeout = 300
osd command thread timeout = 6000
filestore op thread timeout = 600
filestore op thread suicide timeout = 1800
ceph osd set
ceph osd set noout
# 集群停止恢复,
503 ceph osd set norecover
504 ceph osd set nobackfill
ceph osd unset noout
ceph 参数记录
控制jounal写入底层data的interval
有时候,底层磁盘的性能不足。
root@Storage-03:/var/log/ceph# ceph daemon osd.8 config show |grep interval |grep sync
"filestore_max_sync_interval": "10",