基于Patroni的Citus高可用方案_第1頁
基于Patroni的Citus高可用方案_第2頁
基于Patroni的Citus高可用方案_第3頁
基于Patroni的Citus高可用方案_第4頁
基于Patroni的Citus高可用方案_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、目錄/Contents01020304Patroni簡單回顧Citus高可用需求分析高可用功能設計其他注意點01Patroni簡單回顧基于Python的開源軟件(MIT協(xié)議)使用Dcs管理支持虛擬化技術集中式文件配置支持復制槽、pg_rewind可自定義外部callback腳本/zalando/ patroni可使用Etcd、Zookeeper或 consul作為Dcs支持k8s、docker等容器化搭建 及管理單節(jié)點部署只需配置一個ymal文件,無需另外配置數(shù)據(jù)庫文件可按照實際情況配置配置是否 使用pg _rewind快速恢復可配置on_role_change、on_start、on_sto

2、p、on_restart及on_reload等情況的callback scriptpatroni一般由2n+1個節(jié)點組成,正常節(jié)點 數(shù)不少于n+1可提供服務Zk1Zk2Zk3node Anode BDcs node CDcs :etcdConsulZookeeperpat ro ni模式 初始化栠群pat ron i模式lea de r正常pat ro ni模式: le ad e 南皂競選f - ,_ )L,,pat ro ni模式:完成選主 并繼續(xù)新的瑩制關系- - 一- w的 心 a 蜊02Citus高可用 需求分析非 MX 節(jié)點類型數(shù)據(jù)庫動作元數(shù)據(jù)更新cn(主)(備)work(主)(備)

3、元數(shù)據(jù)cn(主)MX節(jié)點類型數(shù)據(jù)庫動作元數(shù)據(jù)更新cn(主)(備)work(主)(備)元數(shù)據(jù)所有MXwork(主)CN(主)節(jié)點故障,無需元數(shù)據(jù)更新,Patroni可達要求。2.work節(jié)點故障,Patroni只能切換數(shù)據(jù)庫實際角色,無法更新元數(shù)據(jù)。1.主cn節(jié)點的元數(shù)據(jù)更新a.可考慮利用Patroni的callback功能。 b.編寫其他進程。2.MX架構中的所有MX work節(jié)點元數(shù)據(jù)更新。a.可使用Citus9.0版本(master_node_update加入了異步更新元數(shù)據(jù)功能)。 b.修改源碼(如我司加入了fdd_failover函數(shù))。Patroni原生功能,可在on_role_ch

4、ange、on_start、on_stop、on_restart及on_reload等情況下執(zhí)行指定腳本。優(yōu)點:Patroni原生功能觸發(fā),開發(fā)成本較低。缺點:所有節(jié)點都需要部署callback腳本,不易管理。patroniZookeeperpromotescriptcallbackwork1 備主cn元數(shù)據(jù)可在Patroni的上層編寫一個程序,用于實時檢查元數(shù)據(jù)信息和集群內(nèi)部主從真實 角色是否對應,從而觸發(fā)子進程處理。優(yōu)點:部署和配置方式靈活可調。缺點:1.相對開發(fā)成本較高。2.需要保證該程序的可靠性。patroni主cnZookeeperfddsw元數(shù)據(jù)獲取集群狀態(tài)1.當work節(jié)點主備變

5、化后,及時更新主cn節(jié)點上元數(shù)據(jù)信息。2.監(jiān)控并跟進故障節(jié)點,發(fā)出告警。3.記錄failover及switchover時更新節(jié)點的步驟,可重入執(zhí)行。4.需考慮進程本身高可用問題。03高可用功能設計1.只在主cn節(jié)點上運行。2.復用Patroni的yml文件。3.靈活擴展,增加可靠性。1.MX與非MX架構在更新元數(shù)據(jù)時步驟一致。2.整理switchover與failover流程邏輯,封裝函數(shù)。1.通過Citus中的元數(shù)據(jù)表與Dcs中的真實角色做比對。(不可?。?.Zookeeper中watch每個scope中的leader鍵。(有缺陷)3.采用新舊leader比對的方式。1. 為 什 么 要 做

6、 區(qū) 分 ? switchover是計劃內(nèi)的,failover突發(fā)的。switchover需要一些前置步驟來保障數(shù)據(jù)不丟失,降低切換風險。2. 怎么區(qū)分?可在switchover時對Dcs中某個特定的鍵設置標志值區(qū)分。1.某個步驟偶然性執(zhí)行失敗,告警 且再次執(zhí)行。2.fddsw執(zhí)行中崩潰,新激活的 fddsw可從中斷處繼續(xù)執(zhí)行。12234崩潰激活等待激活1.節(jié)點故障、恢復的決策依據(jù)。2.判斷節(jié)點類型依據(jù)。cn_nodes: cn_scope:- node_192_168_120_130- node_192_168_120_131 wk_nodes:wk_scope:- node_192_168

7、_120_133- node_192_168_120_134 wk2_scope:- node_192_168_120_135- node_192_168_120_1361.具有原生patronictl功能。2.區(qū)分cn與work,只在為work節(jié)點時執(zhí)行前置步驟。 3.進度及結果回饋。1.保留patronictl管理工具。2.以patronictl為藍本,在post請求前后加入邏輯。3.設置告警及超時時間。WK2masterpatroniWK1CN1fddswreplicapatroniWK2secondaryWK2replicapatroniWK1CN1fddswmasterpatroni

8、WK1unavailablesecondaryZookeeperleader = old_leaderZookeeperleader != old_leader執(zhí)行元 數(shù)據(jù)修 改流程WK2secondary primaryWK2replicapatroniWK1CN1fddswmasterpatroniWK1secondaryZookeeperWK2primary更改old_leaderWK2replicapatroniWK1CN1fddswmasterpatroniWK1secondaryZookeeperWK2primary執(zhí)行switchover1fddswctl1設置切換標志執(zhí)行前置步驟WK1primary unavailabledemotepromotefddswctl清除切換標志leader = old_leaderleader = ol

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論