学习heartbeat-03t实现web服务的高可用案例及维护要点
8.Heartbeat实现web服务的高可用案例
8.1部署准备
通过web服务高可用案例来熟悉heatbeat软件的使用,用上面的两台服务器机器名分别为heartbeat-1-130和heartbeat-1-129
8.2 安装配置http服务(两台机器都要安装)
yum install httpd -y
8.3 配置httpd启动脚本
两台机器上分别拷贝httpd启动脚本到/etc/ha.d/resource.d/下,并确保可执行权限。
[root@heartbeat-1-130 html]# cp /etc/init.d/httpd /etc/ha.d/resource.d/
Heartbeat控制的脚本要求:
(1)脚本路径要放入/etc/init.d/httpd或/etc/ha.d/resource.d/
(2)脚本执行需要以/etc/init.d/httpd start/stop方式
(3)脚本具备可执行权限
(4)/etc/init.d/httpd名字要和haresources上设置的一样
8.4 修改haresource配置文件
设置httpd服务开机不启动并停止httpd服务让heartbeat负责启动和停止httpd服务。
[root@heartbeat-1-130 html]# chkconfig httpd off
[root@heartbeat-1-130 html]# /etc/init.d/httpd stop
停止 httpd: [确定]
修改haresource文件(两台机器都要修改)
[root@heartbeat-1-130 ha.d]# cat haresources
heartbeat-1-130 IPaddr::192.168.1.131/24/eth0:1 httpd
httpd为heartbeat监控的服务,也是两台机器对外提供的核心服务。
9. 有关heartbeat调用资源的生产场景应用
在工作中,有两种方法实现高可用问题:
(1)heartbeat可以仅控制vip资源的漂移,不负责服务资源的启动和停止。这种方式适合web服务。
(2)heartbeat即控制vip资源的漂移,同时又负责服务资源的启动及停止,及ip和服务要切换都切换,这种方式适合数据服务。VIP正常,httpd服务器宕了,这个时候不会做高可用切换。写一个脚本或守护进程判断httpd服务。如果有问题,则停止heartbeat主动使其上的业务切换到另一台。
10 heartbeat和keepalived的应用场景和区别
(1)对于一般的web、db、负载均衡(nginx,haproxy)等等,heartbeat和keepalived都可以实现。
(2)Lvs负载均衡和keepalived结合,虽然heartbeat也可以调用带有ipvsadm命令的脚本来启动和停止lvs负载均衡,但是heartbeat本身并没有rs的检查功能,这个缺陷可以通过Idircetord插件来弥补。
(3)需要数据同步(配合drbd)的高可用业务最好用heartbeat列如:mysql双主多从,NFS/MFS存储,他们的最大特点是需要数据同步,这样的业务最好用heartbeat,因为heartbeat自带了drbd的脚本。
11. Heartbeat服务生产环境下的恢复要点
每天可能都有一些需求,新项目上线或者VIP更改需求时,可能会进行添加修改服务VIP的操作。我们就以heartbeat+haproxy/nginx高可用负载均衡为例,来学习一下生产环境下的维护方法。
所有配置文件放到SVN,更改之后提交SVN对比,推送到正式环境。
(1)在修改配置文件前执行/etc/init.d/heartbeat stop或/usr/lib64/heartbeat/hb_standby(此命令最好)把本机命令推送到备节点工作,当确认备节点工作正常后,开始修改本地的配置,修改好后执行/etc/init.d/heartbeat start把资源服务接管回来。在把业务推送到备节点时及修改配置接管回服务器时都要立即服务是否正常,特别是所有的VIP(新的旧的)是否启动OK,URL地址是不是能够打开,这个检查过程可以写成脚本放在hearbeat服务启动脚本的参数里。
(2)先设置要添加的VIP,添加ip别名。设置成功了再修改haresources配置文件,修改新添加的VIP。在夜里或业务量比较低的情况下重新启动heartbeat当然要把以前的旧的VIP停掉。