版权声明:原创文章,转载注明出处! https://blog.csdn.net/u010317005/article/details/81534976
环境
ceph版本:0.94.5
操作系统:Ubuntu 14.04
osd存放路径:/var/lib/ceph/osd/ceph-${i}/
背景
osd的journal大小由参数osd_journal_size控制,但是这个参数只能针对于新创建的OSD生效,对已经创建好的OSD的不生效,具体源码分析有空再补上。但是如果只想修改osd journal的大小,还得经过重做OSD就显得有点麻烦了。于是分析了创建OSD的过程,发现其中有调用ceph-osd这个命令,查看帮助,里面有个--mkjournal的参数,顺着这个,经过一番测试后,得出以下流程不用重做osd即可修改osd的journal大小
流程
取集群中id为25的osd做测试,原先的journal大小为2GB
防止直接修改造成的数据错乱,操作前先关闭osd
stop ceph-osd id=25
然后直接删除journal
接着将osd_journal_size修改成10240,用mkjournal参数重建journal
然后启动ceph-osd
start ceph-osd id=25
大功告成!我用的测试环境,线上环境要谨慎!
脚本
上述过程整理成一个脚本
#!/bin/bash
i=25
stop ceph-osd id=${i}
cd /var/lib/ceph/osd/ceph-${i}/
rm journal
ceph-osd -i ${i} --mkjournal
start ceph-osd id=${i}
ls -lh | grep journal
可以将上面的脚本参数化。需要注意的是,osd在哪个节点上,就需要在哪个节点上操作。