您的位置:首页 > 其它

轻量级web故障自动切换keepalived

2014-04-22 14:31 330 查看
原文链接:http://blog.sina.com.cn/s/blog_6dbc8a680100u1s7.html
一、环境说明
1、操作系统内核版本:2.6.9-78.ELsmp 2、Keepalived软件版本:keepalived-1.1.20.tar.gz
二、环境配置
1、主Keepalived服务器IP地址 192.168.111.2232、备Keepalived服务器IP地址 192.168.111.1003、Keepalived虚拟IP地址 192.168.111.150
三、软件下载地址
http://www.keepalived.org/software/keepalived-1.1.20.tar.gz
四、安装流程
1、上传Keepalived至/home/目录2、解压Keepalived软件[root@localhost home]# tar -zxvf keepalived-1.1.20.tar.gz [root@localhost home]# cd keepalived-1.1.20[root@localhost keepalived-1.1.20]# ln -s /usr/src/kernels/2.6.9-78.EL-i686/usr/src//linux[root@localhost keepalived-1.1.20]# ./configure 3、提示

4、编译以及编译安装[root@localhost keepalived-1.1.20]# make && make install



5、将types.h调用的部分注释掉即可解决4出现的问题vi/usr/src/kernels/2.6.9-78.EL-i686/include/linux/types.h 到158行操作如下#endif 6、重新编译以及编译安装[root@localhost keepalived-1.1.20]# make && make install



7、修改配置文件路径[root@localhostkeepalived-1.1.20]#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@localhostkeepalived-1.1.20]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.1.20]# mkdir /etc/keepalived
[root@localhostkeepalived-1.1.20]#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost keepalived-1.1.20]# cp /usr/local/sbin/keepalived /usr/sbin/
8、设置为服务,开机启动[root@localhost keepalived-1.1.20]# vi /etc/rc.local





五、主Keepalived配置
1、修改配置文件[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf



六、备Keepalived配置
1、修改配置文件



七、启动服务



八、查看网卡信息1、主Keepalived网卡信息



九、验证测试
1、在主服务器上新建一个网页,内容为 192.168.111.2232、在备用服务器上新建一个网页,内容为 192.168.111.1003、启动主备服务器的nginx服务和Keepalived服务4、通过浏览数,输入虚拟IP地址 192.168.111.150页面显示为 192.168.111.2235、关闭主服务器的Keepalived服务,通过浏览器输入IP地址192.168.111.150页面显示为 192.168.111.1006、再次启动主服务器的Keepalived服务,通过浏览器输入IP地址192.168.111.150页面显示为 192.168.111.223

-------------------------------------------------------------------
这样会有一个问题,只有当主服务器关机或者硬件故障或者才会使web故障迁移。所以必须加一个监控脚本,实现故障恢复。如下:
三、分别在主和辅服务器上建立nginx的监控脚本
Keepalived管理虚IP是通过组播和优先级实现的,优先级高的会拥有虚IP的管理权,所以要实现IP自动切换,只需要建立一个监控脚本,让keepalived进行调用,一

旦发现nginx出现故障就kill掉keepalived的进程,让其他keepalived管理此IP

vi /root/shell/nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

注意给脚本添加执行权限:chmod+x /root/shell/nginx_check.sh
然后让该脚本一直在后台运行:#nohup /etc/nginx_check.sh或者将它添加成服务,让它开机自启动.两台机器启动keepalived:service keepalived start
五、总结
此方案没有做负载均衡,只是做了一个故障自动切换的处理,适用于PV不是很高的环境(当然Nginx做好调优其负载能力也是很强的).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: