ceph故障 osd slow ops, oldest one blocked for {num}
错误类似:26 slow ops, oldest one blocked for 48 sec, daemons [osd.15,osd.17,osd.18,osd.5,osd.6,osd.7] have slow ops.
如果只是集群中极少部分的OSD出现该问题,可以通过:
systemctl status ceph-osd@{num}
查看OSD日志找到问题并处理,常见的有磁盘故障等,根据错误网络搜索很多解决方案。
如果是集群中所有osd,或者过半数的osd出现这个问题呢?检查了磁盘、网络、mon都正常。其实还有一种可能,想一下是否近期升级过ceph,有升级不完整osd版本问题造成。
首先要处理该错误,可以关闭所有用ceph的vm或其他项目,然后停止所有client请求,逐个重启osd,等待osd恢复正常。
目前已知Rook、ceph-deploy升级到比较高版本时候有未完成步骤,而通过以下命令
ceph tell mon.* version
ceph tell osd.* version
检查mon、osd或clinet版本都是没有问题的指示版本正确,但实际升级还未完成。官方文档说明了这点:http://docs.ceph.com/docs/master/releases/nautilus/#upgrading-from-mimic-or-luminous
在升级的最后,当状态正常后,需要手动执行 ceph osd require-osd-release {版本号如nautilus}
版本的不一致会导致该问题,而且可能只看日志很难找到这个问题,因为它并不明显。