Unrecoverable error: corrupted cluster config file.

from: https://www.cnblogs.com/topicjie/p/7603227.htmlhtml

缘起

  正在欢乐的逗着孩子玩耍,忽然间来了一通电话,值班人员告诉我误重启了一台服务器,是我负责的服务,感受都要吓飞了,赶忙打开电脑查看次服务器上跑的是什么业务,node

不看不知道,一看吓一跳,尼玛,是著名的redis cluster集群中的一台服务器,此时此刻心中一万个草泥马奔腾而过。。。。python

 

剖析

  此集群是26台512G内存搭建的redis cluster,数据量已经达到了4T,每一个服务器上篇对应24个实例,每一个实例的内存配置为20G。redis

首先我登陆了一台集群中的另一台服务器B,经过B链接上redis 集群,使用cluster info 命令查看发现集群状态是ok的,显然已经自动failover。不幸中的大幸,辛亏是这个集群,服务器

此集群是有副本的,解决了单点故障问题,如果其它两个集群中的主机后果不敢想象。此时此刻就展现出HA的重要性了,Down掉一台服务器,集群总体不受影响,另外服务请求post

可能会出现少许的错误,由于有可能槽位再切换中。url

恢复

  我登陆刚刚重启的这个服务器以后,使用脚本启动全部的实例,大约过了30分钟,22个实例启动完毕,数据彻底加载到内存,而且实例再集群中的状态已经恢复,此过程是自动的,redis cluster 仍是很给力从这方面来说。当我使用 redis-cli -p 6381 cluster nodes|grep fail 的时候发现还有两个实例是fail状态。赶忙检查。spa

1
2
53faad9cd4257f33eaaa92f40f7439bf2f30db21  10.34 . 2.15 : 6396  slave,fail  8269ee58f563a5961755ee7f782794c7f79f8077  1506431668362  1506431655787  908  disconnected
2cc8f7f49bb7f28dc383b6113080bae4f3b2e375  10.34 . 2.15 : 6388  slave,fail ceb54aabf39b0c8c88a205294724be76295c4ab9  1506431660074  1506431647510  1272  disconnected

故障主机 10.34.2.15 的 6396redis日志中发现了以下的报错:.net

1
5927 :M  26  Sep  21 : 39 : 37.527  # Unrecoverable error: corrupted cluster config file.

  

检查cluster生成的node文件,发现文件中缺失信息,最后一行出现了半行不完整的数据记录。个人处理方法是将全部的都清理掉,只保留myself那行。日志

而后再次启动redis实例,则加载成功。

 

反思

  cluster的配置文件出现不完整信息缘由是由于服务器硬重启致使,而服务器重启是人为的误操做致使,最根本的仍是在人。慢一点能够,可是千万不要搞错啊。。。。

 

原创做品,容许转载,转载时请务必以超连接形式标明文章 原始出处 、做者信息和本声明。不然将追究法律责任。 http://www.cnblogs.com/topicjie/
相关文章
相关标签/搜索