ETCD高可用特性学习


https://coreos.com/etcd/docs/latest/admin_guide.html 

只有当集群中多数节点正常的情况下,才可以进行运行时的配置管理。如果集群多数节点损坏,集群就失去了写入数据的能力。官方推荐3,5,7为etcd cluster数目,其中7可以满足大部分情况

 

通常情况下,如果是Follower节点宕机,如果剩余可用节点数量超过半数,集群可以几乎没有影响的正常工作。如果是Leader节点宕机,那么Follower就收不到心跳而超时,发起竞选获得投票,成为新一轮term的Leader,继续为集群提供服务。 
在最初启动etcd集群时,发现核心节点的数量已经满足要求时,多余的自动启用Proxy模式,若核心节点挂掉,proxy模式的节点并不会转化为普通节点,etcd目前没有任何机制会自动去变化整个集群总共的节点数量

 

 
节点迁移和替换

当你节点所在的机器出现硬件故障,或者节点出现如数据目录损坏等问题,导致节点永久性的不可恢复时,就需要对节点进行迁移或者替换。当一个节点失效以后,必须尽快修复,因为etcd集群正常运行的必要条件是集群中多数节点都正常工作。

 

迁移一个节点需要进行四步操作:

  • 暂停正在运行着的节点程序进程
  • 把数据目录从现有机器拷贝到新机器
  • 使用api更新etcd中对应节点指向机器的url记录更新为新机器的ip
  • 使用同样的配置项和数据目录,在新的机器上启动etcd

 

在最初启动etcd集群时,发现核心节点的数量已经满足要求时,多余的自动启用Proxy模式,若核心节点挂掉,proxy模式的节点并不会转化为普通节点

 

灾难恢复
当集群超过半数的节点都失效时,就需要通过手动的方式,ectd提供了一套备份数据并无损重建cluster 的方法 

 

  • 备份数据到新机器
  • 利用数据和 -force-new-cluster重新创建一个单node集群
  • 修改peer url将其他节点加入

 

  为了最大化集群的安全性,一旦有任何数据损坏或丢失的可能性,你就应该把这个节点从集群中移除,然后加入一个不带数据目录的新节点。

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM