交换机死机,导致ceph ( requests are blocked ) 异常解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换机死机,导致ceph ( requests are blocked ) 异常解决方法相关的知识,希望对你有一定的参考价值。

问题描述:

万兆交换机死机后,导致在交换机上的ceph 的cluster网络会中断,用户正在对数据块的访问没有完成导致请求被blocked,同时部分pg会处于不同步状态,因此交换机重启后,通过ceph health会发现ceph集群不在OK 状态


health HEALTH_ERR 1 pgs inconsistent; 1 pgs repair; 2 requests are blocked > 32 sec; 1 scrub errors
pg 6.89 is active+clean+inconsistent, acting [12,1,10]
1 ops are blocked > 33554.4 sec
1 ops are blocked > 33554.4 sec on osd.16
1 osds have slow requests

通过以上命令可以发现这里有部分osd(osd.16)出现请求被blocked,重启这些osd,让ceph自己进行恢复:
/etc/init.d/ceph stop osd.16

/etc/init.d/ceph start osd.16

系统会对该 osd 执行 recovery 操作, recovery 过程中, 会断开 block request, 那么这个 request 将会重新请求 mon 节点, 并重新获得新的 pg map, 得到最新的数据访问位置, 从而解决上述问题

一段时间后,可以通过ceph -s 查看ceph的状态为ok 

ceph恢复正常后,需要重启虚拟机,有些系统版本的虚拟机可以不用重启,例如ubuntu14.04.

可以通过进入虚拟机来查看是否正常来判断是否需要重启

本文出自 “月童” 博客,请务必保留此出处http://littlefive.blog.51cto.com/6440205/1894194

以上是关于交换机死机,导致ceph ( requests are blocked ) 异常解决方法的主要内容,如果未能解决你的问题,请参考以下文章

CEPH经常出现slow request的排查解决

ceph写入时延高导致虚拟机hang死的故障处理

二层交换机 STP

NSFetchedResultsController 导致 iPhone 3G 死机

Ceph源码解析:PG peering

电脑死机导致无法读取数据表怎么办?