Ceph集群在使用过程中,若磁盘的使用率达到95%(默认值,mon_osd_full_ratio=0.95)时,集群会处于full状态,根据官网描述:
“When a Ceph Storage Cluster gets close to its maximum capacity (i.e.,
mon osd full ratio), Ceph prevents you from writing to or reading from Ceph OSD
Daemons as a safety measure to prevent data loss.”
此时,集群对外读写均会受到影响,甚至不可用。 应急恢复读写,特别是要恢复读的方法有如下几种:
1) 取巧
# ceph osd unset full
此方法只能短暂恢复I/O,几乎在秒级内即可重新恢复为full状态,可以写个脚本循环执行,
,或在命令行中执行:
# while true; do ceph osd unset full && sleep 1; done
2)断臂求生:适用于只有1个OSD使用率达到阈值的情况,且系统支持1个OSD离线。
# ceph osd set norecover
# ceph health detail // 找到full的OSD
# ceph osd find id // 找到osd对应的host,然后kill掉对应的ceph-osd进程
此方法将full的osd踢掉,系统虽进入degrade状态,由于系统容错机制的保障,系统仍旧能够进行正常的读写。
以上应急恢复I/O方案,也仅仅用于应急,尤其是在这种情况下,想读取数据。
它不能直接将系统恢复成正常状态,甚至会使系统进入“危险”境地;因此并不能作为恢复系统的手段,但可以作为辅助手段一用。
祝大家玩得开心!
阅读(2609) | 评论(0) | 转发(0) |