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.178linux.com/60636