环境,三台虚拟机系统,debian,centos,rhel。基于ipvsadm的负载均衡,采用DR方式,rhel做lvs的director,其余两台是real。负载均衡的服务是web。
实现如下:
所需的软件:os(废话),ipvsadm,及其相关库文件(默认安装即可)
ipvsadm下载地址:ipvsadm下载 采用源码包的安装形式安装。
安装要点:
1、ipvsadm需要os的内核源路径支持,从www.kernel.org下载最新的内核,放到/usr/src中并解压。
一般解压后是linux-2.6.x的目录,使用命令#ln -s linux-2.6.x linux 这样以来就生成了/usr/src/linux,这才是ipvsadm的默认编译器包含文件路径,否则会报错!切记。
2、director服务器需要开启ip_forward功能,
在/etc/sysctl.conf中添加net.ipv4.ip_forward = 1
脚本 echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
需要配置虚拟ip,网卡是eth0:192.168.1.154,vip是eth0:0192.168.1.2
脚本 ifconfig eth0 192.168.1.154 broadcast 192.168.1.255 netmask 255.255.255.0
ifconfig eth0:0 192.168.1.2 broadcast 192.168.1.255 netmask 255.255.255.0
需要设置路由
脚本 route add -host 192.168.1.2 dev eth0:0
ipvsadm的设置脚本:
ipvsadm –C
ipvsadm -A -t 192.168.1.2:80 -s wcl
ipvsadm -a -t 192.168.1.2:80 -r 192.168.1.138 -g -w 3
ipvsadm -a -t 192.168.1.2:80 -r 192.168.1.156 -g -w 1
ipvsadm
可以将以上脚本成一个文件,加入到/etc/rc.local中,开机自动运行。
3、real机器需要关闭arp,否则无法接收数据包。
具体操作是在/etc/sysctl.conf文件中添加如下几行:
net.ipv4.ip_forward = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
4、real机器需要设置本地虚拟地址脚本如下:
ifconfig lo:0 192.168.1.2 broadcast 192.168.1.2 netmask 255.255.255.255
对于linux机器,直接创建文件etc/sysconfig/network-scripts/ifcfg-lo:0,
评论加载中…
![]() |