系统环境:html
centos64位系统linux
lvs-master:10.20.189.240
lvs-backup:10.20.189.241
vip:10.20.189.239
web1:10.20.189.242
web2:10.20.189.243web
首先在lvs-master:10.20.189.240算法
[root@master ~]# cd /usr/local/src
[root@master ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gzcentos
[root@master ~]#
[root@master ~]# tar -zxvf ipvsadm-1.24.tar.gzbash
[root@master ~]# cd ipvsadm-1.24服务器
[root@master ~]#
(32位系统用:ln
不加这个软链接的话,在执行make的时候会出现相似以下的错误编译信息:oop
libipvs.h:14:23: error: net/ip_vs.h: No such file or directory
查找下此文件
/usr/src/kernels/2.6.18-238.el5-x86_64/include/net/ip_vs.h
[root@master ~]# make && make install
[root@master ~]# cd ..
[root@master ~]# tar -zxvf keepalived-1.2.7.tar.gz
[root@master ~]# cd keepalived-1.2.7
[root@master ~]# ./configure --sysconf=/etc
configure: error:
解决:
[root@master ~]# yum -y install openssl-devel
版本1.2.7的编译信息以下:
------------------------
Keepalived version
Compiler
Compiler flags
Extra Lib
Use IPVS Framework
IPVS sync daemon support : Yes
IPVS use libnl
Use VRRP Framework
Use VRRP VMAC
SNMP support
Use Debug flags
版本1.1.17的编译信息以下:
Keepalived configuration
------------------------
Keepalived version
Compiler
Compiler flags
Extra Lib
Use IPVS Framework
IPVS sync daemon support : Yes
Use VRRP Framework
Use LinkWatch
Use Debug flags
[root@master ~]# make
[root@master ~]# make install
[root@master ~]#
[root@master ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
}
vrrp_instance VI_1 {
}
virtual_server 10.20.189.239 80 {
}
[root@master ~]#
[root@master ~]# chkconfig --level 2345 keepalived on
lvs-backup对照lvs-master安装相应软件,注意keepalive.conf有细微区别
配置realserver
[root@web_1 ~]# yum install httpd -y
[root@web_1 ~]# /etc/init.d/httpd start
[root@web_1 ~]# vi /root/lvs_real.sh
#!/bin/bash
SNS_VIP=10.20.189.239
/etc/rc.d/init.d/functions
case "$1" in
start)
stop)
*)
esac
exit 0
[root@web_1 ~]# chmod +x /root/lvs_real.sh
[root@web_1 ~]# /root/lvs_real.sh start
[root@web_1 ~]# ifconfig
eth0
lo
lo:0
[root@web_1 ~]# echo "/root/lvs_real.sh start" >> /etc/rc.local
#LVS_master、LVS_backup上开启keepalived,LVS_master先绑定VIP
LVS_master:
[root@localhost keepalived]# ip add
1: lo: mtu 16436 qdisc noqueue
2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000
LVS_backup:
[root@wpstest-9d9b39c keepalived]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
#解析域名,测试访问,LVS转发
#测试关闭LVS_master,短暂的掉包后,LVS_backup立刻接替工做
/etc/init.d/keepalived stop
LVS_backup接替LVS_master绑定VIP
[root@wpstest-9d9b39c keepalived]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
LVS_master重启完成后,就会自动接回控制权,继续负责转发
#测试关闭其中一台realserver
经过上面测试能够知道,当realserver故障或者没法提供服务时,负载均衡器经过健康检查自动把失效的机器从转发队列删除掉,实现故障隔离,保证用户的访问不受影响
#重启被关闭的realserver
当realserver故障恢复后,负载均衡器经过健康检查自动把恢复后的机器添加到转发队列中