ceph集群full,应急恢复数据读写方法

2670阅读 0评论2017-02-05 yifei_wang
分类:云计算

    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方案,也仅仅用于应急,尤其是在这种情况下,想读取数据。
    它不能直接将系统恢复成正常状态,甚至会使系统进入“危险”境地;因此并不能作为恢复系统的手段,但可以作为辅助手段一用。

    祝大家玩得开心!
上一篇:vsftpd 权限控制 cmds_allowed
下一篇:获取Ceph RGW对象存储中文件在底层OSD中的分布