处理stale的pg
前言
在某些场景下Ceph集群会出现stale的情况,也就是ceph集群PG的僵死状态,这个状态实际上是无法处理新的请求了,新的请求过来只会block,那么我们如何去恢复环境
实践过程
首先模拟stale环境,这个比较好模拟
设置副本2,然后同时关闭两个OSD(不同故障域上),然后删除这两个OSD
集群这个时候就会出现stale的情况了,因为两份数据都丢了,在一些环境下,数据本身就是临时的或者不是那么重要的,比如存储日志,这样的环境下,只需要快速的恢复环境即可,而不担心数据的丢失
处理过程
首先用ceph pg dump|grep stale 找出所有的stale的pg
然后用 ceph force_create_pg pg_id
如果做到这里,可以看到之前的stale的状态的PG,现在已经是creating状态的了,这个时候一个关键的步骤需要做下
就是重启整个集群的OSD,在重启完成了以后,集群的状态就会恢复正常了,也能够正常的写入新的数据了,对于老的数据,做下清理即可
变更记录
Why | Who | When |
---|---|---|
创建 | 武汉-运维-磨渣 | 2016-11-14 |