基本术语: 3. 三个操作系统的ip 分别 为: (lvs server) 192.168.60.132 255.255.255.0 192.168.60.1 (gw) (real server) 192.168.60.132 255.255.255.0 192.168.60.1 (gw) (real server) 192.168.60.144 255.255.255.0 192.168.60.1 (gw) 192.168.60.132既是LVS server,又是real server. 4:在LVSserver上安装IPVS管理软件 IPVS安装主要包括三方面: 在Load Banlancer上安装IPVS内核补丁 在Load Banlancer上安装IPVS管理软件 在Real Server上安装ARP hidden内核补丁 IXDBA.NET技术社区 我采用的是rpm安装方式,其它的realserver节点不用安装这些东西. Rpm –ivh ipvsadm-1.24-6.i386.rpm Rpm –ivh piranha-0.8.2-1.i386.rpm # ipvsadm --help 如果看到提示帮助就表成功。 5. 进入192.168.60.132 检查kernel 是否已经包含 ipvs 模块 modprobe -l |grep ipvs 如果看到如下,就可以了,如果没有还要重编内核,选 上ipvs 模块。 /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_wlc.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_dh.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_sed.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_wrr.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_lc.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_rr.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_nq.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_ftp.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_sh.ko /lib/modules/2.6.9-42.EL/kernel/net/ipv4/ipvs/ip_vs_lblc.ko 6:配置启动脚本 LvsServer上的脚本: #!/bin/bash VIP=192.168.60.200 RIP1=192.168.60.132 RIP2=192.168.60.144 GW=192.168.60.1 # set the Virtual IP Address /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev eth0:0 echo "1" >/proc/sys/net/ipv4/ip_forward #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g #Run LVS /sbin/ipvsadm #end 说明: echo "1" >/proc/sys/net/ipv4/ip_forward,通过该参数来启用包转发功能,从而使系统充当路由器。参数值为1时启用ip转发,为0时禁止ip转发。注意,我们可以在单网卡或双网卡的主机上实现ip转发. 也可以写成这样的服务脚本: #!/bin/sh # description: start LVS of Directorserver VIP=192.168.60.132 RIP1=192.168.60.132 RIP2=192.168.60.144 ./etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of DirectorServer" # set the Virtual IP Address and sysctl parameter /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up echo "1" >/proc/sys/net/ipv4/ip_forward #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g #Run LVS /sbin/ipvsadm ; stop) echo "close LVS Directorserver" echo "0" >/proc/sys/net/ipv4/ip_forward /sbin/ipvsadm -C /sbin/ifconfig eth0:0 down ; *) echo "Usage: $0 {start|stop}" exit 1 esac 把此文件放到/etc/init.d/lvsdr chomd 755 /etc/init.d/lvsdr service lvsdr start Realserver上的脚本: 在192.168.60.132上也配置这个脚本. #!/bin/bash VIP=192.168.25.200 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev 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 sysctl -p #end 上面脚本也可以写成服务: vi /etc/init.d/lvsrs #!/bin/bash #description : start realserver VIP=192.168.60.200 ./etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" IXDBA.NET社区论坛 /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 Directorserver" 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 然后: chomd 755 /etc/init.d/lvsrs service lvsrs start 在RS上必须对VIP忽略ARP响应, 对于2.4以下低版本,在Real Server上要安装ARP hidden内核补丁,幸运的是,在2.6内核中通过调整内核参数即可忽略ARP广播回应。真好!上面脚本就是实现这些功能. IXDBA.NET技术社区 7:配置lvs文件 Lvs安装完毕后,会产生/etc/sysconfig/ha/lvs.cf文件,编辑此文件,内容类似如下: [root@rac1 ~]# more /etc/sysconfig/ha/lvs.cf serial_no = 18 primary = 192.168.60.132 service = lvs network = direct debug_level = NONE virtual www.gaojf.com { active = 1 address = 192.168.60.200 eth0:0 port = 80 send = "GET / HTTP/1.0\r\n\r\n" expect = "HTTP" use_regex = 0 load_monitor = none scheduler = rr protocol = tcp timeout = 6 reentry = 15 quiesce_server = 0 server RS1 { address = 192.168.60.132 active = 1 weight = 1 } server RS2 { address = 192.168.60.144 active = 1 weight = 1 } } 编辑完成,然后启动pulse服务,即启动lvs服务 Service pulse start |
|