概述
本文主要整理总结遇到过的osd创建失败的场景
ceph.keyring问题
无论是低版本ceph-disk,ceph-volume还是高版本的cephadm(底层依旧是docker内调用ceph-volume),创建osd时,都需要/var/lib/ceph/bootstrap-osd/ceph.keyring进行认证。当create osd时,如果创建失败,需要检查该keyring是否存在,以及和集群auth是否一致
文件位置
一般位于/var/lib/ceph/bootstrap-osd/下
ll /var/lib/ceph/bootstrap-osd/
生成keyring
如果没有/var/lib/ceph/bootstrap-osd/ceph.keyring该文件,需要手动创建。
可以通过
ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
或者通过检查集群的auth key
$ ceph auth list
client.bootstrap-osd
key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
caps: [mon] allow profile bootstrap-osd
手动编辑需要改成如下格式
$ cat /var/lib/ceph/bootstrap-osd/ceph.keyring
[client.bootstrap-osd]
key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
caps mon = "allow profile bootstrap-osd"
确认keyring存在后,继续创建即可。
heartbeat问题
问题定位
由于cluster net网络问题导致osd无法创建,或创建后无法正常up、in。
根据日志和网络测试定位
系统AIO参数问题
如果系统内核参数设置过小,也会导致osd创建失败
cat /proc/sys/fs/aio-nr #实时值
cat /proc/sys/fs/aio-max-nr #最大值 #若过小则需要调整
echo 1048576> /proc/sys/fs/aio-max-nr
$ echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf #持久化
目录权限问题
排查/var/lib/ceph相关文件夹权限和用户组问题。