ceph新手,最近遇到的一个问题,已解决,请参考,文中有错误的话欢迎指正
故障描述
openstack环境中若干台虚拟机无法正常操作,尝试从horizon中重启虚拟机,重启过程中虚拟机状态一直停留在”powering on”的状态,无法进入系统
查看openstack环境,发现后端ceph的状态异常,一个OSD full,一个near full。(clock是这个集群已知问题,这里不做介绍)
(ceph-mon)[root@Node-160 /]# ceph -s
cluster 8a946765-1bb5-40bc-a0bc-4cd830aee2a4
health HEALTH_ERR
clock skew detected on mon.192.168.1.159, mon.192.168.1.160
1 full osd(s)
1 near full osd(s)
full flag(s) set
Monitor clock skew detected
monmap e1: 3 mons at {
192.168.1.158=192.168.1.158:6789/0,192.168.1.159=192.168.1.159:6789/0,192.168.1.160=192.168.1.160:6789/0}
election epoch 16, quorum 0,1,2 192.168.1.158,192.168.1.159,192.168.1.160
osdmap e321: 13 osds: 13 up, 13 in
flags nearfull,full,sortbitwise,require_jewel_osds
pgmap v2886234: 624 pgs, 11 pools, 1706 GB data, 383 kobjects
5121 GB used, 2061 GB / 7183 GB avail
624 active+clean
client io 365 kB/s rd, 436 op/s rd, 0 op/s wr
其中一个osd的使用率显示是full的状态。 根据Ceph官方文档中的描述,当一个OSD full比例达到95%时,集群将不接受任何Ceph Client端的读写数据的请求。所以导致虚拟机在重启时,无法启动的情况。
查看ceph集群中各osd的使用率
发现osd的使用不均衡,最高的已超过95%,最低的才40%多点,缺省的均衡方式是按照PGS数量来做均衡,osd之间相差不大,但是真实占用的空间差别