Corosync 实现 MariaDB 数据库服务的高可用(4)

五、配置HA高可用集群的资源:

1、分析提供高可用数据库服务需要哪些资源?

   (1)、IP 地址    (2)、启动数据库服务的进程 mysqld    (3)、挂载NFS共享的文件系统         因为,使用NFS共享的文件系统存放数据库的数据目录的

2、由上述的3个资源一起才能够提供数据库服务,所以在HA高可用集群服务中,要对资源做一些约束。

(1)、保证无论何时,这三个资源都始终运行在同一个HA节点

解决方案:

        A、设置一个资源组,这三个资源都属于该组 B、排列约束colocation:定义资源彼此间是否在一起的倾向性。

(2)、提供数据库服务必须的3资源,要有启动的先后顺序。

原因1、由于使用NFS共享文件系统做为数据库的数据目录,挂载nfs共享文件系统成功之后才可以启用数据库服务进程。

原因2、即使数据库服务启动成功,没有IP地址。启动成功数据库服务也没有用。

所以,在配置资源时,要对资源的启动顺序做一些限制。方案:

使用资源约束中的顺序约束:order 

(3)、考滤HA节点的硬件资源能力和备用节点运行资源时是否压力过大

可以使用位置约束location: 资源对某节点运行的倾向性(负无穷--正无穷)

注意:资源的流转必然会导致服务暂时的中断。

3、使用pacemaker 提供的资源代理来管理提供数据库服务的三个资源的:启动、关闭、监控,从而实现数据库服务的高可用。

说明:

这里使用crm 文本接口配置HA高可用的集群

4、查看启动的HA集群的各项信息

(1)、查看集群状态

[root@node1 ~]# crm status Last updated: Sat Sep 13 17:49:38 2014 Last change: Sat Sep 13 17:04:29 2014 via crmd on node1.9527du.com  Stack: classic openais (with plugin)  Current DC: node1.9527du.com - partition with quorum   ------> DC 所在的节点和该集群是否拥有法定票数 Version: 1.1.10-14.el6-368c726 2 Nodes configured, 2 expected votes   -----> 集群的票数 0 Resources configured   ----> 该集群的资源 Online: [ node1.9527du.com node2.9527du.com ]  ----> 两个节点都在线

(2)、查看,pacemaker提供资源管理层(Cluster Resources Manager)的各个组件:

[root@node1 ~]# ps auxf | grep -e "corosync" -e "pacemaker" root      2468  0.4  0.9 545128  4608 ?        Ssl  17:02   0:13 corosync 189       2473  0.0  1.9  94024  9768 ?        S    17:02   0:02  \_ /usr/libexec/pacemaker/cib  ----> 集群信息库。HA高可用集群的资源配置都存放在这里。                                                                                                 ------> 在一个节点通过CRM命令行接口连接到资源管理层,就可以配置集群了。配置好资源后,借助message layer层,自动把配置好的数据同步到各个节点。 root      2474  0.0  0.7  94372  3520 ?        S    17:02   0:01  \_ /usr/libexec/pacemaker/stonithd  ----> 管理stonithd 的 root      2475  0.0  0.5  76088  2664 ?        S    17:02   0:00  \_ /usr/libexec/pacemaker/lrmd 189       2476  0.0  0.5  89628  2952 ?        S    17:02   0:01  \_ /usr/libexec/pacemaker/attrd 189       2477  0.0  3.7 117264 18416 ?        S    17:02   0:00  \_ /usr/libexec/pacemaker/pengine ----> 策略引擎,根据HA集群的资源运行情况,制定策略的。 189       2478  0.0  0.8 147784  4012 ?        S    17:02   0:00  \_ /usr/libexec/pacemaker/crmd

5、配置资源

一般HA高可用集群的节点不止两个。当某个节点故障了,该节点的资源就需要在运行正常的节点启动,是在每个正常的节点都启动呢,还是在其中的某个节点启动呢?

这是通过资源的类型来定义的。所以在配置HA高可用集群资源时,要指定资源的类型的。那么HA高可用集群的资源类型有那些?

 (A)、primitive,native 主资源,其仅能运行某一节点  (B)、clone  克隆资源,一个资源可以运行于多个节点;           应该指定:最大克隆的份数,每个节点最多可以运行的克隆。  (C)、master/slave  主从资源,特殊的克隆资源。

(1)、由于提供的两个节点的HA高可用集群,只要有一个节点故障集群都不能满足法定票数,该HA集群就不能工作了。所以,要设置当法定票数不满足时,集群还可以正常工作。如果不提供stonith,是不允许启动corosync 的。所以,还需要关闭stonith

(A)、设置HA高可用集群不满足法定票数时的策略

crm(live)configure# no-quorum-policy=ignore

(B)、关闭stonith

crm(live)configure# property stonith-enabled= false

(2)、添加资源

(A)、配置流动IP资源

crm(live)configure# primitive myIP ocf:heartbeat:IPaddr params ip=192.168.60.56 op monitor timeout=20 interval=10s op start timeout=20s op stop timeout=20s op status timeout=20s interval=10s

说明:

primitive 指定该资源为主资源

使用的资源代理(Resource Agent)为:IPaddr

(B)、配置挂载nfs共享文件系统的资源

crm(live)configure# primitive nfsshare ocf:heartbeat:Filesystem params device=192.168.60.40:/mydata directory=/mysqldata  fstype=nfs op monitor timeout=40s interval=20s op start timeout=60s op stop timeout=60s op notify timeout=60s

(C)、配置启动数据库服务的进程资源

crm(live)configure# primitive mysqlserver lsb:mysqld op monitor timeout=15s interval=15s op start timeout=15s op stop timeout=15s op status timeout=15s op restart timeout=15s

(3)、设置资源的约束

(A)、使用排列约束(colocation),限定提供数据库服务的三个资源一定必须运行在同一个节点

crm(live)configure# colocation mysqlserver_with_nfsshare_with_myIP inf: mysqlserver nfsshare myIP

(B)、使用顺序约束(order),指定提供数据库服务的三个资源的先后启动顺序(关闭资源的顺序是一个相反的过程,所以不会造成卸载NFS文件系统再关闭数据库服务的情况)

crm(live)configure# order myIP_before_nfsshare_before_mysqlserver inf: myIP nfsshare mysqlserver

(C)、使用位置约束(location),限定资源倾向于运行在那个节点。

crm(live)configure# location myIP_on_node1 myIP  inf: node1.9527du.com

(4)、配置好后的处理

(A)、检验配置是否有错误

crm(live)configure# verify

(B)、没有错误就提交

crm(live)configure# commit crm(live)configure# cd ../

(C)、查看提供数据库高可用集群的运行状态

crm(live)# status Last updated: Mon Sep 15 20:05:50 2014 Last change: Mon Sep 15 20:04:58 2014 via cibadmin on node1.9527du.com Stack: classic openais (with plugin) Current DC: node1.9527du.com - partition with quorum Version: 1.1.10-14.el6-368c726 2 Nodes configured, 2 expected votes  -----> 该集群有2个节点,当前票数为2 3 Resources configured    ------> 该集群有3个资源 Online: [ node1.9527du.com node2.9527du.com ]  -----> HA高可用集群的节点运行状态 ----------下面就是该HA高可用集群的资源的运行状态----------------------------------  myIP   (ocf::heartbeat:IPaddr):        Started node1.9527du.com  nfsshare       (ocf::heartbeat:Filesystem):    Started node1.9527du.com  mysqlserver    (lsb:mysqld):   Started node1.9527du.com crm(live)#

说明:

从上述信息得出结论,提供数据库服务的HA高可用集群已经配置成功。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6d815a62c126d9f20333850bf9dee8c9.html