route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 3
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
执行脚本:
# bash /usr/local/sbin/lvs_dr.sh
4、在2台 rs 上配置脚本:
# vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=192.168.0.38
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
rs 上分别执行脚本:
bash /usr/local/sbin/lvs_dr_rs.sh
5、实验测试
测试方式同上,浏览器访问
注意:在 DR 模式下,2台 rs 节点的 gateway 不需要设置成 dir 节点的 IP 。
参考链接地址:
十一、LVS结合keepalive
LVS可以实现负载均衡,但是不能够进行健康检查,比如一个rs出现故障,LVS 仍然会把请求转发给故障的rs服务器,这样就会导致请求的无效性。keepalive 软件可以进行健康检查,而且能同时实现 LVS 的高可用性,解决 LVS 单点故障的问题,其实 keepalive 就是为 LVS 而生的。
1、实验环境
4台节点
Keepalived1 + lvs1(Director1):192.168.0.48
Keepalived2 + lvs2(Director2):192.168.0.58
Real server1:192.168.0.18
Real server2:192.168.0.28
IP: 192.168.0.38
2、安装系统软件
Lvs + keepalived的2个节点安装
# yum install ipvsadm keepalived -y
Real server + nginx服务的2个节点安装
# yum install epel-release -y
# yum install nginx -y
3、设置配置脚本
Real server节点2台配置脚本:
# vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=192.168.0.38