集群:corosync+pacemaker实现MySQL服务高可用(3)

三,安装corosync+pacemakershix实现基于MySQL的高可用
1,在两个节点上执行操作,去掉mysql的挂载目录,我们要实现把nfs定义为资源,可以实现自动挂载:
# umount /mydata
 
2,安装corosync和pacemaker,首先下载所需要如下软件包至本地某专用目录(这里为/root/cluster):
cluster-glue
cluster-glue-libs
heartbeat
resource-agents
corosync
heartbeat-libs
pacemaker
corosynclib
libesmtp
pacemaker-libs
openais   (这个两个包做如下的实验没有用,可以不装)
openaislib
 
下载地址:。请根据硬件平台及操作系统类型选择对应的软件包;这里建议每个软件包都使用目前最新的版本。
 
3,使用如下命令安装:
# cd /root/cluster
# yum -y --nogpgcheck localinstall *.rpm  (配置好yum源为系统光盘,会对系统光盘中的软件包有依赖关系)
注意:两个节点都要进行软件包的安装
 
4、配置corosync:(以下命令在node1.magedu.com上执行)
 
# cd /etc/corosync
# cp corosync.conf.example corosync.conf
 
接着编辑corosync.conf,添加如下内容:
service {
ver:  0
name: pacemaker
use_mgmtd: yes
}
 
aisexec {
user: root
group:  root
}
 
开启安全验证功能,当有节点加入集群需要有验证密码串:
secauth: on
 
并设定此配置文件中 bindnetaddr后面的IP地址为你的网卡所在网络的网络地址,我们这里的两个节点在172.16.0.0网络,因此这里将其设定为172.16.0.0,如下(也可以是ip地址):
bindnetaddr: 172.16.0.0
 
设定多播地址,从224.0.0.0到239.255.255.255都可以设定:
mcastaddr: 229.94.1.1
 
生成节点间通信时用到的认证密钥文件:
# corosync-keygen
 
将corosync和authkey复制至node2:
# scp -p corosync.conf authkey  node2:/etc/corosync/
 
分别为两个节点创建corosync生成的日志所在的目录:
# mkdir /var/log/cluster
# ssh node2  'mkdir /var/log/cluster'
 
5、尝试启动,(以下命令在node1上执行):
 
# /etc/init.d/corosync start
 
查看corosync引擎是否正常启动:
# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages
Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.
Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1397.
Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.
Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
 
查看初始化成员节点通知是否正常发出:
# grep  TOTEM  /var/log/messages
Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transport (UDP/IP).
Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] The network interface [172.16.100.11] is now up.
Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.
 
检查启动过程中是否有错误产生:
# grep ERROR: /var/log/messages | grep -v unpack_resources
 
查看pacemaker是否正常启动:
# grep pcmk_startup /var/log/messages
Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: CRM: Initialized
Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] Logging: Initialized pcmk_startup
Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295
Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Service: 9
Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Local hostname: node1.magedu.com
 
如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync
# ssh node2 -- /etc/init.d/corosync start
注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;
 
使用如下命令查看集群节点的启动状态:
# crm status
============
Last updated: Tue Jun 14 19:07:06 2011
Stack: openais
Current DC: node1.magedu.com - partition with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
0 Resources configured.
============
 
Online: [ node1.magedu.com node2.magedu.com ]
 
从上面的信息可以看出两个节点都已经正常启动,并且集群已经处于正常工作状态。
 
6、配置集群的工作属性,禁用stonith
 
corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默认配置目前尚不可用,这可以通过如下命令验正:
 
# crm_verify -L
crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
crm_verify[5202]: 2011/06/14_19:10:38 ERROR: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
Errors found during check: config not valid
  -V may provide more details
 
我们里可以通过如下命令先禁用stonith:
# crm configure property stonith-enabled=false
 
使用如下命令查看当前的配置信息:
# crm configure show
node node1.magedu.com
node node2.magedu.com
property $id="cib-bootstrap-options" \
dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \
cluster-infrastructure="openais" \
expected-quorum-votes="2" \
stonith-enabled="false"
从中可以看出stonith已经被禁用。
 
上面的crm,crm_verify命令是1.0后的版本的pacemaker提供的基于命令行的集群管理工具;可以在集群中的任何一个节点上执行。
 
7、为集群添加集群资源
corosync支持heartbeat,LSB和ocf等类型的资源代理,目前较为常用的类型为LSB和OCF两类,stonith类专为配置stonith设备而用;
 
可以通过如下命令查看当前集群系统所支持的类型:
 
# crm ra classes
heartbeat
lsb
ocf / heartbeat pacemaker
stonith
 
如果想要查看某种类别下的所用资源代理的列表,可以使用类似如下命令实现:
# crm ra list lsb
# crm ra list ocf heartbeat
# crm ra list ocf pacemaker
# crm ra list stonith
 
# crm ra info [class:[provider:]]resource_agent
例如:
# crm ra info ocf:heartbeat:IPaddr

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

转载注明出处:http://www.heiqu.com/50f541c0c4da32ab8ad6609d3cfbadac.html