Unrecoverable error: corrupted cluster config file.

缘起

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

不看不知道,一看吓一跳,尼玛,是著名的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状态。赶紧检查。

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

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

  

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

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

反思

  cluster的配置文件出现不完整信息原因是因为服务器硬重启导致,而服务器重启是人为的误操作导致,最根本的还是在人。慢一点可以,但是千万不要搞错啊。。。。

时间: 2024-10-07 23:43:13

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

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 value 首先检查一下各个参数是否配置正确 第二步查看文件路径中是否正确,路径中用双引号包围时("D:\MongoDB\data"),应该将路径中的"\"换成"/"("D:/MongoDB/data") 第三步查看配置文件中是否以Ta

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

reference: https://forums.gentoo.org/viewtopic-t-1079210-start-0.html resolved with following method: unlink /etc/fonts/infinality/conf.d ln -s /etc/fonts/infinality/styles.conf.avail/infinality /etc/fonts/infinality/conf.d 原文地址:https://www.cnblogs.c

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

记录一次RabbitMQ配置文件配置错误 error信息: [email protected]:/usr/share/doc/rabbitmq-server$ sudo /usr/lib/rabbitmq/bin/rabbitmq-server {"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\"

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

1,下载最新的yum-3.2.28.tar.gz并解压 #wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz#tar xvf yum-3.2.28.tar.gz 2,进入目录,运行安装 #cd yum-3.2.28#./yummain.py install yum如果提示错误: CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/ 是

DVWA System error - config file not found.

访问DVWA时,出现错误提示,如下所示: 访问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系统错误--找不到配置文件.请复制config目录下的config.inc.php.dist文件到 config

AndroidStudio编译error:app:validateReleaseSigning'Keystore file not found for signing config 'release

使用AndroidStudio编译时提示error: Error:Execution failed for task ':app:validateReleaseSigning'. > Keystore file not found for signing config 'release'. 从字面意思可以看出是要打发布包缺少keystore签名文件,只需要把build.gradle里的一段代码注释掉即可,当然别忘了打发布包时取消注释. signingConfigs { release { sto

yum损坏报错: Error accessing file for config file:///h

yum损坏报错: CRITICAL:yum.cli:Config Error: Error accessing file for config file:///home/linux/+ wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz 下载完成之后解压 tar -zxvf yum-3.2.28.tar.gz -C ./ 进入到 yum目录 cd yum-3.2.28 创建配置文件 touch /etc/yum.conf 安装yu

DM8168 unrecoverable error: OMX_ErrorBadParameter (0x80001005) [resolved]

DM8168 custom board 成功启动系统之后想先测一下8168编解码功能,把开发包里的examples跑一遍.启动完成后,连上HDMI显示,在starting Matrix GUI application后HDMI已经有输出了,这时候优先选择了decode_display功能来测试. [email protected]:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i ../data/videos/dm816x_1

WebLogic ERROR: unable to get file lock, will retry …

由于非正常结束Weblogic 进程才导致启动终端输出这样的错误信息     解决办法一.删掉Domain下的*.lok文件1. 删除edit.lok     cd <DOMAIN_HOME> 删除edit.lok文件     rm edit.lok2.删除 config.lok     <DOMAIN_HOME/config 删除config.lok文件     rm config.lok3.删除AdminServer.lok     cd <DOMAIN_HOME>/se