zoukankan      html  css  js  c++  java
  • 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将其他节点加入
     为了最大化集群的安全性,一旦有任何数据损坏或丢失的可能性,你就应该把这个节点从集群中移除,然后加入一个不带数据目录的新节点。
     
     
  • 相关阅读:
    xcode常用的快捷键
    属性字符串(NSAttributedString)的简单应用
    ARC下OC对象和CF对象之间的桥接(bridge)
    oracle字符集相关问题
    oracle 利用flashback将备库激活为read wirte(10g 及上)
    dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复
    DATAGUARD 在线重建备库
    DATAGUARD 添加修改REDOLOG大小
    ORACLE 10G 闪回建议
    10G R2 参数文件相关
  • 原文地址:https://www.cnblogs.com/opama/p/4768274.html
Copyright © 2011-2022 走看看