五、配置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/crmd5、配置资源
一般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高可用集群已经配置成功。