Heartbeat+LVS构建高可用负载均衡集群
本篇文章是在实验环境下完成的,能够实现对服务的高可用和负载均衡要求,亲测可行。至于生产环境的各中压力测试没有进行更好的优化,希望大家能按自己的需求借鉴,并且提出意见。 在整个构架中,heartbeat作为一个高可用软件,对特定的服务进行监控和故障转移;而lvs(Linux Virtual Server)作为负载均衡软件,对前端客户的访问请求进行调度,能够真正减少前端web服务器的压力。然而作为lvs调度,如果只有单台调度很容易造成单点故障,这时将引入heartbeat,通过heartbeat内置插件ldirectord对lvs的监控(ldirectord是heartbeat的一个服务),...
--------------------------------------分割线 --------------------------------------
相关阅读:
--------------------------------------分割线 --------------------------------------
heartbeat+lvs实现高可用负载均衡原理:
两台heartbeat(ldirectord)主机构成高可用集群,同时监管着lvs(负载均衡集群)整体构成了heartbeat+lvs的高可用负载均衡集群.在使用heartbeat的时候加载了watchdog模块,用来检测heartbeat服务,当heartbeat服务出现故障,会进行重启主机。
注意:但是,当内核崩溃了,watchdog也无能了(modprobe softdog),因为watchdog是基于内核级别的软件服务(相当于软fence一种硬件保护机制)
实验环境:CentOS 6.4
系统架构主要由四台主机组成,两台heartbeat主机作为lvs和heartbeat,两台Real Server主机作为真实服务器。
实验准备:
1.在本地/etc/hosts文件中定义各个节点的解析。
2.关闭selinux和iptables
3.软件下载:heartbeat-3.0.4-1.el6.x86_64.rpm heartbeat-devel-3.0.4-1.el6.x86_64.rpm
ldirectord-3.9.2-1.2.x86_64.rpm heartbeat-libs-3.0.4-1.el6.x86_64.rpm
实验步骤:
一、heartbeat安装及配置:
# yum localinstall *.rpm 使用yum方式安装,能够解决本地rpm包所需要依赖(前提得需要yum源)
#less /etc/ha.d/README.config
ha.cf Main configuration file heartbeat高可用主配置文件
haresources Resource configuration file 资源文件
authkeys Authentication information 认证文件
# cd /usr/share/doc/heartbeat-3.0.4/
# cp authkeys haresources ha.cf /etc/ha.d/
# vim ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2 指定心跳间隔为2s
deadtime 30 备用节点在30s后自动接管资源
warntime 10 心跳延迟10s,10s内备用机不接受主节点心跳 就会发出警告
initdead 60 重启后恢复网络的时间(至少deadtime的2倍)
udpport 666 广播通信使用的端口
bcast eth0 使用广播()
auto_failback on 故障转换
watchdog /dev/watchdog 这个得加载一个模块
node server66.example.com 主节点和辅助节点
node server68.example.com
ping 192.168.0.253 测试连通性,最好是网关
respawn选项是可选的,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重启。默认使用ipfail
respawn hacluster /usr/lib64/heartbeat/ipfail 检测和处理网络故障
#apiauth client-name gid=gidlist uid=uidlist
apiauth ipfail gid=haclient uid=hacluster ipfail的运行用户和组
加载watchdog,软fence监控heartbeat并且重启
# modprobe softdog
# vi /etc/rc.local 设置开机自动加载
modprobe softdog
# vim authkeys 认证文件权限必须600
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
# chmod 600 authkeys
# vim haresources
server68.example.com IPaddr::192.168.0.234/24/eth0 httpd 定义主节点,虚拟ip和监控的服务
要确定主节点的httpd服务启动了
heartbeat默认可用监控一下目录的服务:
/etc/init.d/ ;/etc/ha.d/resource.d/ ;/etc/ha.d/rc.d/
heartbeat安装配置完成,此时可以在另外一台主机上安装heartbeat,并且进行相应的配置。(注意,在配置集群的时候,尽量选择相同配置的主机,这样便于以后管理和排错)
测试heartbeat:
#/etc/init.d/heartbeat start 分别在两台heartbeat主机上启动服务
#tail -f /var/log/message 查看日志发现server68主机接管VIP资源,此时可以ping同VIP
同时heartbeat服务监控本地httpd服务,发现httpd也会开启