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將其餘節點加入
爲了最大化集羣的安全性,一旦有任何數據損壞或丟失的可能性,你就應該把這個節點從集羣中移除,而後加入一個不帶數據目錄的新節點。