ETCD节点故障恢复
我在微服务组里面主要负责配置中心的构建,我们的配置中心使用到了ETCD。在我们的内网环境中搭建了三个节点的ETCD,不过这三个节点的ETCD都搭建在同一台机器上。后来机器资源不够了系统直接kill了ETCD,导致内网的ETCD三个节点全部挂掉了。刚开始想逐个启动就完事了,但是按照之前的data-dir启动之后发现三个节点握手存在问题,原因是三个节点缓存数据的data目录里面都有节点以及数据信息,导致握手不成功。网上查了一些资料后发现这应该算是一次故障的恢复,解决方案是先以挂掉之前的一个节点为基础启动只有一个节点的集群,然后往这个集群中添加新节点等待数据同步。事实上,ETCD分开部署挂半数以下还是可以正常访问的,这次全挂了相当于从备份数据中恢复。
下面是执行恢复的具体命令:
etcd --data-dir=data.etcd2 --name machine-2 --initial-advertise-peer-urls http://127.0.0.1:12380 --listen-peer-urls http://127.0.0.1:12380 --advertise-client-urls http://10.1.45.52:12379 --listen-client-urls http://10.1.41.52:12379,http://127.0.0.1:2379 --initial-cluster machine-2=http://127.0.0.1:12380 --initial-cluster-token token-token --initial-cluster-state new --force-new-cluster >> /var/log/etcd/machine-2 2>&1 &
rm -rf data.etcd3
etcdctl member list
etcdctl member add machine-3 http://127.0.0.1:22380
etcd --data-dir=data.etcd3 --name machine-3 --initial-advertise-peer-urls http://127.0.0.1:22380 --listen-peer-urls http://127.0.0.1:22380 --advertise-client-urls http://10.1.41.52:22379 --listen-client-urls http://10.1.41.52:22379 --initial-cluster machine-2=http://127.0.0.1:12380,machine-3=http://127.0.0.1:22380 --initial-cluster-state existing --initial-cluster-token token-token >> /var/log/etcd/machine-3 2>&1 &
rm -rf data.etcd1
etcdctl member list
etcdctl member add machine-1 http://127.0.0.1:2380
etcd --data-dir=data.etcd1 --name machine-1 --initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls http://127.0.0.1:2380 --advertise-client-urls http://10.1.41.52:2379 --listen-client-urls http://10.1.41.52:2379 --initial-cluster machine-2=http://127.0.0.1:12380,machine-3=http://127.0.0.1:22380,machine-1=http://127.0.0.1:2380 --initial-cluster-state existing --initial-cluster-token token-token >> /var/log/etcd/machine-1 2>&1 &
总计部署了三个节点,节点缓存数据的目录分别是data.etcd1、data.etcd2、data.etcd3。我是删除 data.etcd1、data.etcd3目录保留data.etcd2目录,然后用data.etcd2为基础进行恢复的。
当时着急恢复就没有记录报错信息,先记录一下我恢复一下现场把详细的报错信息补充上
ETCD节点故障恢复的更多相关文章
- etcd节点扩容至两个节点
本篇已经安装了单个etcd,然后进行扩容etcd节点至2个,安装单节点请参照:https://www.cnblogs.com/effortsing/p/10295261.html 实验架构 test1 ...
- k8s二进制部署 - etcd节点安装
下载etcd [root@hdss7-12 ~]# useradd -s /sbin/nologin -M etcd [root@hdss7-12 ~]# cd /opt/src/ [root@hds ...
- Mongodb集群节点故障恢复场景分析
http://blog.csdn.net/zhangzhaokun/article/details/6299527 一个适当配置的Mongodb分片集群是没有单点故障. 本文描述了分片集群中存在的几种 ...
- Mongodb集群节点故障恢复场景分析(转)
一个适当配置的Mongodb分片集群是没有单点故障.本文描述了分片集群中存在的几种不同的潜在的节点故障场景,以及Mongodb对这些节点故障是怎么处理的.1.Mongos节点宕机一个Mongos进程应 ...
- vertica单节点故障恢复 Startup Failed, ASR Required
测试环境的vertica是单节点的,无法做到故障自动恢复,需要手工处理.案例如下: 发现5433端口连接不上,vertica挂了,手工运行admintools,重新启动vertica,仍然失败,提示: ...
- 使用Docker方式创建3节点的Etcd集群
一.简要说明 二.运行容器 三.验证集群 四.运行截图 五.参考链接 一.简要说明 参考etcd官网文档, 在node1.node2.node3三个节点上,分别运行etcd容器,创建etcd集 ...
- 001.etcd简介及单节点使用
一 etcd简介 1.1 概述 etcd 是 CoreOS 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key- ...
- ETCD 添加节点报错 tocommit(2314438) is out of range [lastIndex(0)]. Was the raft log corrupted, truncated, or lost?
生产环境中一台ETCD节点宕机之后,添加新的节点的时候出现以下错误, tocommit(2314438) is out of range [lastIndex(0)]. Was the raft lo ...
- 高可用etcd集群(三节点) + ssl双向认证
# etcd下载地址 https://github.com/etcd-io/etcd/tags wget https://github.com/etcd-io/etcd/releases/downlo ...
随机推荐
- nginx(tengine)访问日志分片
说明 nginx日志按天分片是运维的基本要求,不仅可以减小文件大小,方便检索关键数据,也可以定时删除过期的日志.可是nginx和tengine默认并不支持文件分片,因此需要额外处理. 另外,日志分片需 ...
- 你真的懂Spring Java Config 吗?Full @Configuration vs lite @Bean mode
Full @Configuration和lite @Bean mode 是 Spring Java Config 中两个非常有意思的概念. 先来看一下官方文档关于这两者的相关内容: The @Bean ...
- vue-hash-calendar,移动端日期时间选择插件
按照惯例,先上效果图 vue-hash-calendar 基于 vue 2.X 开发的日历组件 支持手势滑动操作·1 原生 js 开发,没引入第三方库 上下滑动 切换 周/月 模式 [周模式中] 左右 ...
- linux系统定时发送邮件
Linux Centos7系统下利用自带的mail发送邮件服务 简介 本章分为五部分. 第一部分是基于虚拟机下的CentOS 7环境定时发送邮件: 第二部分是基于在阿里云购买的CentOS 7服务器环 ...
- 配置Ant执行Jmeter脚本
1.将 jmeter下extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中,否则会报错ant-jmeter-1.1.1不存在 2.在jmeter根目录下创建 ...
- C 自删除技术---批处理方式
#include<stdio.h> #include<windows.h>#pragma comment(linker, "/subsystem:\"win ...
- 白话系列之实现自己简单的mvc式webapi框架
前言:此文为极简mvc式的api框架,只当做入门api的解析方式,并且这里也不算是mvc框架,因为没有view层,毕竟现在大部分都属于前后端分离,当然也可以提供view层,因为只是将view当做文本返 ...
- 爬虫2:html页面+beautifulsoap模块+post方式+demo
爬取html页面,有时需要设置参数post方式请求,生成json,保存文件中. 1)引入模块 import requests from bs4 import BeautifulSoup url_ = ...
- PHP array_search
1.函数的作用:在数组中查找元素 2.函数的参数: @params mixed $needle @params array $haystack @params bool $strict 3.例子: ...
- ASP.NET Core在 .NET Core 3.1 Preview 1中的更新
.NET Core 3.1 Preview 1现在可用.此版本主要侧重于错误修复,但同时也包含一些新功能. 这是此版本的ASP.NET Core的新增功能: 对Razor components的部分类 ...