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

缘起

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

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

剖析

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

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

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

可能会出现少量的错误,因为有可能槽位再切换中。

恢复

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

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日志中发现了如下的报错:

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/

Unrecoverable error: corrupted cluster config file.的更多相关文章

  1. MongoDB_"Error parsing YAML config file: yaml-cpp: error at line 3, column 9: illegal map value"解决方法

    在启动配置文件的时候,系统报错:Error parsing YAML config file: yaml-cpp: error at line 3, column 9: illegal map val ...

  2. Fontconfig error: Cannot load config file "infinality/conf.d"

    reference: https://forums.gentoo.org/viewtopic-t-1079210-start-0.html resolved with following method ...

  3. error in config file "/etc/rabbitmq/rabbitmq.config"

    记录一次RabbitMQ配置文件配置错误 error信息: dill@ubuntu-vm:/usr/share/doc/rabbitmq-server$ sudo /usr/lib/rabbitmq/ ...

  4. ERROR: No pool defined. at least one pool section must be specified in config file

    root@ubuntu:/opt/php7# /opt/php7/sbin/php-fpm [22-Sep-2015 14:29:00] WARNING: Nothing matches the in ...

  5. CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum.conf

    先试试yum install gcc  , 1,下载最新的yum-3.2.28.tar.gz并解压 #wget http://yum.baseurl.org/download/3.2/yum-3.2. ...

  6. mysql 帮助手册 以及 warning: World-writable config file 以及 ERROR 1840 (HY000) at line 24:

    1. mysql --help 2.报错 报错Warning: World-writable config file http://www.jb51.net/article/99027.htm 最近在 ...

  7. DVWA----DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.

    DVWA简介:DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...

  8. o] TortoiseGit错误 - Could not get all refs. libgit2 returned: corrupted loose reference file

    因无法追溯的同步操作错误或工程文件错误,造成Git 同步时报错: Could not get all refs. libgit2 returned: corrupted loose reference ...

  9. gd-jpeg: JPEG library reports unrecoverable error 解决办法

    Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecov ...

随机推荐

  1. 拉取代码过程中遇到的:post install error,please remove node_modules before retry!

    这是在git → clone 之后,安装npm intall时出现的错误,完整错误提示如下: 解决: // 1.先删除node_modules这个文件 $ rm -rf node_modules/ / ...

  2. zoom:1;

    zoom:1;属性是IE浏览器的专有属性,可以设置或检索对象的缩放比例.触发ie的hasLayout属性.清除浮动.清除magin的重叠等. 注意:它未通过W3C验证.

  3. Mysql解压版配置环境等

    背景故事:安装版的mysql和我的本本有仇,最后一步老卡死 1.首先先把下载好的压缩包解压,如下图:

  4. 搞懂分布式技术11:分布式session解决方案与一致性hash

    搞懂分布式技术11:分布式session解决方案与一致性hash session一致性架构设计实践 原创: 58沈剑 架构师之路 2017-05-18 一.缘起 什么是session? 服务器为每个用 ...

  5. Hibernate中"二级缓存"配置

    实体类 : package cn.happy.entity; public class Emp { private Integer empNo; private String empName; pub ...

  6. HighCharts 特性;Highcharts 环境配置

    Highcharts Highcharts 是一个用纯JavaScript编写的一个图表库. Highcharts 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表 Highchart ...

  7. vue项目搭建 (一)

    vue项目搭建 (一) 由于一直想要有自己的框架,因而一直在尝试搭建各类结构,结合vue官网及git上大神bailicangdu的项目,再看看网上一些意见,及个人思考,总结的一些,不到之处希望大家可以 ...

  8. C++:哈希

    1.基本概念 哈希一般用来快速查找,通过hash函数将输入的键值(key)映射到某一个地址,然后就可以获得该地址的内容. 同样,如果要储存一对值(键值和数据),则也是通过hash函数获得地址来存入.见 ...

  9. centos 7安装jenkins

    1. 安装java yum install java 2. 安装jenkins wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci. ...

  10. 重温MVC基础入门

    重温MVC基础入门   简介 本文主要是作者回顾MVC基础的文章,整合个人认为基础且重点的信息,通过简单实践进行复习. 相关代码地址:https://github.com/OtherRuan/Revi ...