滕家雨 馬俊磊
摘要:隨著云計算技術在各個領域的不斷深化運用,在其PaaS層中各應用的高可用性也成為整個生產環節的重要一環。本文簡要論述了當前云計算的主流服務模式,并且以基于Grid Infrastructure為基礎設施的云計算平臺為例,提出了一種新型的POSTGRESQL數據庫的高可用架構。
關鍵詞:云計算;數據庫;高可用;PaaS
中圖分類號:TP302 文獻標識碼:A 文章編號:1007-9416(2018)07-0074-01
云計算技術的出現極大的解放了原有IT部門的生產力和生產成本,使得服務器、數據庫、應用等的部署和管理都集中在云端環境進行,云端環境以服務的方式對外提供從硬件設施到應用等方方面面的設施。但同時隨著各租戶和實際云生產環境的脫離,使得各租戶不可避免的對其被托管服務的高可用性提出了極大的要求。
作為一款優秀的開源數據庫,POSTGRESQL不僅被眾多IT部門采用,也衍生出了如 EnterpriseDB、Greenplum等數據庫產品[1]。本文以oracle公司Grid Infrastructure(以下簡稱GI)為云計算平臺基礎設施,以開源POSTGRESQL數據庫為云服務,提出了一種新型的POSTGRESQL數據庫高可用方案。
1 云計算服務模式的金字塔模型
云計算服務模式為典型金字塔模型,其中各層含義如下:
IaaS層:基礎設施即服務層,構成了金字塔的最底層,提供服務器,存儲設備、網絡設備等硬件設備服務。
PaaS層:平臺即服務層,構成金字塔的中間層,將實際開發環境中需要的各種組件集中到平臺中,包括數據庫、操作系統、虛擬主機等。以平臺服務的方式對外租用,用戶的所有開發工作都可以在這一層完成。
SaaS層:軟件即服務層,為金字塔的最頂層,以網頁的形式對外提供軟件應用的訪問,用戶只需登錄固定的網址便可使用軟件服務,而無需部署和維護軟件。
2 PaaS層中POSTGRESQL數據庫的高可用方案
2.1 PaaS層POSTGRESQL數據庫的高可用架構(圖1)
硬件及操作系統層:由硬件和操作系統構成了該架構的硬件基礎,其中各服務器存儲必須是共享的,目的是為了實現數據庫高可用方案時能夠得到共享的數據目錄,而無需再從原宕機節點上復制。
Grid Infrastructure層:由GI軟件構成,該層為云平臺的管理后端,相當于在硬件和云平臺直接的一個中間件,云平臺作為前端對外提供服務。
PaaS層:作為對外提供的門戶頁面,可以提供各式各樣的生產環境,包括數據庫、操作系統等。
NODE1、NODE2及NODE3為PaaS層所承載的服務器,在其之上部署有POSTGRESQL主、從數據庫。M_VIP和S_VIP分別為POSTGRESQL主、從數據庫的虛擬IP。
2.2 原理分析
主從數據庫之間和主從VIP之間有啟動和停止的強依賴關系。用戶通過連接VIP地址訪問數據庫,從而保證了在服務器或數據庫宕機的情況下,用戶不用修改任何配置,也可以繼續連接數據庫。
當POSTGRESQL主服務器宕機或者數據庫發生故障時,根據依賴關系,當GI檢測到主數據庫進程消失時,會自動將M_VIP停止,然后觸發PaaS云平臺執行主從切換腳本,將POSTGRESQL從數據庫SLAVE變為主服務器MASTER對外提供服務,同時M_VIP漂移到該從服務器上,實現了POSTGRESQL數據庫的第一層高可用。
如果從服務器或從數據庫再次發生故障,GI會再次將M_VIP停止,同時檢索該租戶環境中剩余存活的服務器,然后將M_VIP轉移到新節點,在轉移過程的同時,通過事先配置好的GI配置文件,可以在新節點上將MASTER數據庫,同時啟動。如果從數據庫在新節點再次發生故障,GI會再次將數據庫轉移到新節點,依次類推,只要該租戶資源池中有存活的節點,就可以保障數據庫不間斷對外服務,實現了數據庫的多層高可用。
同時該架構也實現了POSTGRESQL數據庫的讀寫分離,主數據庫負責寫入數據庫,從數據庫只有讀的權限,極大的緩解了云平臺以及數據庫的負載壓力。
3 結語
云計算平臺中基于GI的POSTGRESQL高可用方案,實現了POSTGRESQL數據庫的主從庫讀寫分離,以及多層高可用,在不需要用戶修改任何配置的前提下,強力的保障了數據庫的可靠性。
參考文獻
[1]宋曉眉,葉曉俊,曾小青,謝東.PostgreSQL查詢優化中的等價類研究與改進[J].計算機工程與應用,2014(14):31-38.