Postgresql
Postgresql 複製 - Pacemaker 與 DRBD
我需要設置一個高度可用的 Postgresql 集群。所以我發現帶有 pgpool 負載均衡器的 Pacemaker 和 DRBD 是最好的選擇。
所以架構看起來像這樣。
據我所知,DRBD 用於塊級複製(適用於儲存),Pacemaker 是服務集群(適用於服務級)。那麼哪個是最好的使用和最好的 HA 解決方案?
另一個問題是我使用 AWS EC2,那麼我該如何管理 VIP(我的意思是,如果主伺服器出現故障,PGpool 將如何將 VIP 切換到其和 AWS 中的備用伺服器)?
通常,您同時使用它們。DRBD 同步複製數據,Pacemaker 管理服務啟動的位置。Pacemaker 將控制 DRBD 的升級/降級,以及啟動您的數據庫和虛擬 IP 地址。
Pacemaker 用於
resource-agents
管理集群服務。其中之一是用於在 AWS 節點之間移動輔助 IP 的資源代理: https ://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/awsvip希望這會引導您走上正確的道路。
除非您完全信任您的圍欄,否則共享儲存對於 postgres 來說是一個非常糟糕的主意。
看起來 DRBD 是單主的,所以應該沒問題。
確保非主伺服器的 postgres 完全關閉是絕對重要的,並且兩個 postgres 實例可以共享同一個數據目錄的重疊為零。否則會發生大量數據損壞。PostgreSQL不是共享儲存數據庫。
讓您的 STONITH 和擊劍正確。
就個人而言,我建議使用 PostgreSQL 的複制,而不是塊設備複製,但我是一名 PostgreSQL 開發人員,所以這不足為奇。