Greenplum高可用真的高嗎?


@

1. 問題描述

在項目中使用了Greenplum做分析型數據庫,Greenplum自身已經提供了高可用方案,Master節點提供Sdanby備用節點,Segment數據節點每個節點都有對應mirro節點。

但是Greenpplum提供的高可用方案,其實是存在缺陷的,就是master節點出現故障后,standby節點是不會自動啟動的,需要人工干預(segment數據節點會自動切換),這樣就會導致兩個問題:

(1)當Greenpplum的Master節點出現故障后,需要人工干預去激活並切換到Standby節點,一般公司是有運維團隊的,會通過進程監控並通知相關人員來處理,但是這個過程是需要一定時間的,假如用戶在使用,肯定會有所感知的,會影響實際業務。

(2) 最致命的是將主節點切換到Standby節點后,Greenpplum的訪問IP發生了變化,這時候連接Greenpplum的Web服務必須修改連接IP才能訪問,一般情況下是需要重啟應用服務器的,假如連接Greenpplum的是多個系統,並且是以集群的方式部署啟動的的,重啟的代價可能會很高。

2. 解決方案

2.1 Greenplum架構簡單介紹

2.1.1 Greenplum架構圖

​ 數據庫連接通過Master節點進行訪問,跟oracle、mysql、postgre等關系型數據庫連接方式一樣

2.1.2 Greenplum提供的高可用方案

主節點Master節點有standby備用節點,數據節點segement存在mirrio(一般存儲在臨近服務器上)。

2.2 使用keepalived+greenplum實現真正的高可用

2.2.1 keepalived+greenplum架構圖

2.2.2 架構圖解析

(1) 在Greenplum的master節點和standby節點部署keepalive服務,使用keepalive監控greenplum的進程狀態和服務可用性;

(2) 采用keeplived的機制,在master和standby 上面生成一個虛擬IP,應用系統配置的連接地址為該虛擬IP地址,當master節點出現故障后,由Keepalived機制來保證切換到standby節點,需要特別注意的是切換到standby節點的時候,需要首先激活Standby節點,這樣就解決了greenplum主備節點的無縫切換

2.3 高可用方案存在的問題

該高可用方案是通過比較成熟的keepalived來保證主從節點的切換,彌補了Greenplum本身高可用架構的不足,基本能解決大部分問題,認為是可行的。

但是也存在不足之處,就是假如主節點上的keepalived出現了故障,但是Greenplum服務正常;這時候虛擬IP已經漂移到Standby對應IP節點,但是因為Greenplum的Master服務其實是正常,Standby服務會激活失敗,進而導致服務不可用,但是該情況幾率較小,后續可以考慮將keepalived進程增加到運維進程監控中。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM