ETCD高可用特性学习

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

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

 

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

 

 
节点迁移和替换

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

 

迁移一个节点须要进行四步操做:api

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

 

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

 

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

 

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

 

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