我們很高興地宣布 pg_cirrus 1.0 正式上市。 此自動化工具簡化了 3 節點叢集的設定流程,讓使用者可以更輕鬆地在 PostgreSQL 中設定和管理高可用性。
我們了解配置 PostgreSQL 叢集可能是一項複雜且耗時的任務,因此我們設計了 pg_cirrus 來幫助加快和提高流程效率。
我們使用 Python 包裝函式腳本簡化了配置管理,該腳本執行主節點、備用節點和 pgpool 節點的 ansible playbook。 清單和變數檔案在執行時動態生成。 此外,pg_cirrus 可以在預設的 5432 以外的埠上設定 PostgreSQL 資料庫伺服器。
我們使用 pgpool 確保 PostgreSQL 叢集中適當的負載平衡,即 WRITE 請求轉到主 PostgreSQL 伺服器,而 READ 請求轉到備用 PostgreSQL 伺服器。
如果主節點發生故障,其中一個備用節點會自動升級為新的主節點。 如果新升級的主節點也發生故障,則第三個節點會升級以處理 READ 和 WRITE 請求。
為了獲得更好的使用者體驗,pg_cirrus 具有命令列介面,可在執行時從使用者處獲取配置詳細資訊。 我們還為使用者提供了 conf.yml.in、vault.yml.in 和 inventory.in 範本檔案。 使用者還可以查看保存在 /var/log/pgpool_logs 中的 pgpool 日誌。 為了避免無效的輸入,pg_cirrus 中使用了異常處理。 如果 pg_cirrus 在執行某個 playbook 時失敗,則不會執行剩餘的 playbook,並且 pg_cirrus 將正常退出。
在 pg_cirrus 中,使用 pg_basebackup 設定實體複製。 來自主節點的所有資料都會複製到備用節點。 設定主節點後,會在主節點中針對備用節點建立複製槽。 故障轉移後,當備用節點升級為新的主節點時,會在新升級的主節點中建立複製槽,剩餘的備用節點繼續從這個新的主節點進行複製。
為了使 pg_cirrus 安全,密碼使用 ansible vault 儲存。 叢集的所有節點都限制在同一個子網路,而只有 pgpool 節點可以使用密碼從子網路外部存取。 只能使用密碼從叢集內部存取主節點和備用節點。
為了幫助您開始使用 pg_cirrus,我們提供了以下資源
Stormatics 提供 PostgreSQL 專業服務。 我們的使命是幫助企業可靠地擴展 PostgreSQL,以滿足其關鍵資料需求。