付出,终有回报!
分类: 系统运维
2015-05-23 22:52:00
本篇文章是在实验环境下完成的,能够实现对服务的高可用要求,亲测可行。至于生产环境的各中压力测试没有进行更好的优化,希望大家能按自己的需求借鉴,并且提出意见。
在此实验中,heartbeat作为一个高可用软件,对特定的服务进行监控和故障转移。
一、准备工作
实验环境:RHEL6.5
关闭实验机的Selinux和防火墙
搭建节点的主机:
172.25.18.12 new.example.com
172.25.18.13 new1.example.com
virtual IP :172.25.18.200
软件包:
heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-devel-3.0.4-2.el6.x86_64.rpm
ldirectord-3.9.5-3.1.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm
软件的下载可以去官网,我在云盘也有分享
二、搭建平台
1、 在两个节点上同时执行以下操作
(1)安装软件包
[root@new ~]# yum localinstall *
使用 localinstall一次性解决依赖性问题
[root@new ~]# cd /etc/ha.d/
[root@new ha.d]# ls
harc rc.d README.config resource.d shellfuncs
[root@new ha.d]# less README.config
They are:
ha.cf Main configuration file
haresources Resource configuration file
authkeys Authentication information
在README文件中有提示,搭建heartbeat需要以上三个文件。并且给出了如何找到这三个配置模板的方法。
[root@new ha.d]# rpm -q heartbeat -d
根据提示,找到需要的三个配置文件,并将它们拷贝到/etc/ha.d下
[root@new ha.d]# cp /usr/share/doc/heartbeat-3.0.4/ha.cf /usr/share/doc/heartbeat-3.0.4/authkeys /usr/share/doc/heartbeat-3.0.4/haresources .
在authkeys文件中明确指出,此文件的权限必须为600
[root@new ha.d]# chmod 600 authkeys
(2)编辑配置文件
[root@new ha.d]# vim ha.cf 编辑主配置文件
[root@new ha.d]# grep -v ^# ha.cf 在文件中修改过的参数
-------------------------------------------------------
logfacility local0
keepalive 2 指定心跳间隔为2s
deadtime 30 备用节点在30s后自动接管资源
warntime 10 心跳延迟10s。10s内备用机不接受主节点心跳 ,就会发出警告
initdead 60 重启后恢复网络的时间(至少deadtime的2倍)
udpport 694 广播通信使用的端口
bcast eth0 # Linux 使用广播
auto_failback on 故障转换
node new.example.com node之后必须是各节点的主机名,放在第一个的即为主备
node new1.example.com
ping 172.25.18.1 此处写的IP地址应是网关
respawn hacluster /usr/lib64/heartbeat/ipfail 检测和处理网络故障。如果是64位操作系统,那么就必须使用lib64。respawn选项是可选的,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重启。默认使用ipfail。
apiauth ipfail gid=haclient uid=hacluster ipfail的运行用户和组
-------------------------------------------------------
[root@new ha.d]# vim authkeys
auth 1
1 crc
[root@new ha.d]# vim haresources
new.example.com IPaddr::172.25.18.200/24/eth0 mysqld 定义主节点,虚拟ip和监控的服务
在这个文件中写入执行脚本,IPaddr调用的是/etc/ha.d/resource.d下的相应脚本文件。为了执行mysql,这个配置文件会查看三个文件/etc/init.d/,/etc/ha.d/rc.d 和/etc/ha.d/resource.d
heartbeat默认可用监控以下目录的服务:/etc/init.d/,/etc/ha.d/rc.d 和/etc/ha.d/resource.d
[root@new ha.d]# rpm -qa mysql
mysql-5.1.71-1.el6.x86_64
要确保系统中已经安装了mysql,否则haresources中的脚本无法正确执行
(3)复制配置文件到另一个节点
[root@new ha.d]# scp authkeys ha.cf haresources 172.25.18.13:/etc/ha.d
因为两个节点的配置文件都一样,也可以只在一个节点上修改配置文件,然后再将其拷贝到其他节点上
2、开启服务进行测试
[root@new ha.d]# /etc/init.d/heartbeat start
两个节点的heartbeat服务都要打开
(1)一个节点上的测试
[root@new ha.d]# tail -f /var/log/messages
可以看到heartbeat已经启动,mysql也被启动了
[root@new ha.d]# ip addr show
172.25.18.200是这两个节点上的浮动IP,现在,172.25.18.12 new.example.com这台主机处于服务状态,所以会出现上图所示的那样。
[root@new ha.d]# mysql
mysql服务已经被打开了
(2)测试另一个节点
将172.25.18.12 new.example.com上的heartbeat服务关闭,那么,自动的,hearbeat将会在172.25.18.13 new1.example.com上运行
和前一个节点进行同样的测试:
至此,HA平台就已经搭建好了,但这只是简单的平台,具体的内容,待续。。。。。。