corosync+pacemaker對mariadb實現高可用
利用nfs共享存儲,導出一個目錄作為mariadb的數據目錄,然后利用corosync+pacemaker對mariadb進行高可用
1、實驗環境
2、實驗前的分析
-
利用nfs導出目錄作為mariadb的共享目錄,要確保各個mariadb節點對該目錄具有寫權限,也就是要確保nfs服務器上有一個UID與各個節點上運行mariadb的用戶的UID一致的用戶,該用戶對nfs導出的目錄有寫權限;且nfs導出共享目錄時,權限為rw
-
要對mariadb服務高可用,構成mariadb服務的高可用的資源有:訪問mariadb服務的IP地址、mariadb服務自身、mariadb的數據目錄(也就是nfs導出的文件系統)
-
對應的構成mariadb服務的資源使用到的資源代理有:ocf資源代理類型下heartbeat提供者提供的IPaddr2資源代理,systemd資源代理類型的mariadb,ocf資源代理類型下heartbeat提供者提供的Filesystem資源代理
-
考慮三個資源之間的約束關系,三個資源必須要同時運行在某一節點上,且三個資源的啟動順序應該為IP地址先啟動,然后掛載nfs的文件系統,最后啟動mariadb服務,因此對應的資源約束為:位置約束(location)無需特別定義,也就是資源運行在那個節點上都可以;排列約束(colocation)需要定義將三個資源運行在一起的分數為inf,以保證三個資源同時運行在一起;順序約束(order)需要定義先啟動IP、再啟動nfs掛載、最后啟動mariadb服務
-
定義資源時,需要對資源進行監控,一般IP地址不易發生變化,因此主要對nfs掛載文件系統和mariadb服務進行監控
3、實驗的網絡環境配置
4、進行高可用實驗前的準備工作
-
node68上部署ansible管理端,實現對部分操作的批量管理
-
各個高可用集群節點之間時間同步
-
各個集群節點之間的名稱解析的主機名和實際主機名保持一致
-
各個集群節點之間可基于SSH秘鑰方式進行通信(對corosync+pacemaker高可用集群非必須)
-
各個節點之間確保iptables和selinux不會阻礙實驗正常進行
5、各個集群節點上部署mariadb服務
6、nfs服務器的配置
7、修改各個集群節點上的mariadb的配置文件,讓其數據目錄指向用于掛載nfs導出的文件系統的目錄
8、在沒有高可用的情況下,在某節點測試mariadb是否正常
9、在各個集群節點上部署corosync+pacemaker,并對corosync進行配置,啟動corosync和pacemaker
10、在集群某個節點上安裝crmsh程序,利用crm程序對pacemaker進行管理
對集群的操作只需要在某個集群節點上配置,因為集群的DC會將配置信息自動同步到其他各個節點上;因此只需要在一個集群節點上安裝crmsh即可
本實驗采用在各個集群節點上都安裝,以方便查看測試
11、定義IP地址資源
12、定義文件系統資源
13、定義mariadb服務資源
14、利用資源組實現各個資源之間運行在一起的配置示例
15、利用colocation排列約束定義各個資源運行在一起的配置示例
16、定義三個資源之間的order順序約束,對三個資源的啟動順序進行定義
17、測試高可用服務是否配置成功
原創文章,作者:M20-1倪文超,如若轉載,請注明出處:http://www.www58058.com/60636