试验机三台:

director server:192.168.1.22

vip:192.168.1.25

real server1:192.168.1.23

real server2:192.168.1.24

yum install libnl* libpopt*

yum install kernel-devel

yum install popt*

查看内核是否为2.6以上,我的三台机器环境均为:centos5.5 kernels2.6.18,通过http://www.linuxvirtualserver.org/software/ipvs.html下载对应版本,我当时下载的是:ipvsadm-1.24.tar.gz

1.安装

#tar -zxvf ipvsadm-1.24.tar.gz

#make  (make不成功有可能与下载的ipvs版本与内核不一致导致,可使用:

ln -s /usr/src/kernels/2.6.9-42.EL-i686/  /usr/src/linux)

#make install (也就几s)

#ipvsadm --help 查看是否有配置选项,如:

负载均衡lvs+keepalived 配置1_第1张图片

#ifconfig eth0:0 192.168.1.25 broadcast 192.168.1.25 \ 回车

 >netmask 255.255.255.255 up

此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.1.25,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.1.25,需要特别注意的是,这里的子网掩码为255.255.255.255。


然后给设备eth0:0指定一条路由,执行如下指令:

#route add -host 192.168.1.25 dev eth0:0 


启用IP转发:

#echo "1" >/proc/sys/net/ipv4/ip_forward

清除虚拟内核服务器中的记录

#ipvsadm -C


#ipvsadm -A -t 192.168.1.25:80 -s rr -p 600

以上表示在内核的虚拟服务器列表中添加一条192.168.1.25的虚拟服务器记录,并且指定此虚拟服务器的服务端口为80,然后指定此虚拟服务器的调度策略为轮询调度,并且在每个real server上的持续服务时间为600秒,即10分钟。

#ipvsadm -a -t 192.168.1.25:80 -r 192.168.1.23:80 -g
#ipvsadm -a -t 192.168.1.25:80 -r 192.168.1.24:80 -g

以上两条设置表示在虚拟服务器192.168.1.25中添加两条新的Real Server记录,两个Real Server的IP分别为192.168.1.23和192.168.1.24,参数“-g”指定了虚拟服务器的工作模式为直接路由模式,即DR 模式。
这样设置完毕后,当用户访问192.168.1.25的80服务时,LVS会根据设置的调度策略和路由模式将请求分配到192.168.1.23以及192.168.1.24的80端口。


Real server 的配置

分别在192.168.1.213/24设置

回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通

#ifconfig eth0:0 192.168.1.25 broadcast 192.168.1.25 netmask 255.255.255.255 up

然后分别通过几台内网机子测试访问192.168.1.25

负载均衡lvs+keepalived 配置1_第2张图片

在director通过ipvsadm查看连接状态

负载均衡lvs+keepalived 配置1_第3张图片



另外需要在rea服务器上设置脚本停止与启动,方便加载vip联通:

#!/bin/bash
#description : Start Real Server
VIP=192.168.1.25
./etc/rc.d/init.d/functions
case "$1" in
    start)
        echo " Start LVS  of  Real Server"
 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
        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
        ;;
    stop)
        /sbin/ifconfig lo:0 down
        echo "close LVS Director server"
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

负载均衡lvs+keepalived 配置1_第4张图片

以上测试实验参考教程:http://ixdba.blog.51cto.com/2895551/554799  感谢博主详细的教程