试验机三台:
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 查看是否有配置选项,如:
#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
在director通过ipvsadm查看连接状态
另外需要在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
以上测试实验参考教程:http://ixdba.blog.51cto.com/2895551/554799 感谢博主详细的教程