Centos4.3 安装DR模式Lvs集群
1. 环境描述:本文在配置LVS时使用三台linux
(Centos),一台做Directorserver(192.168.200.72) ,两台做 realserver(192.168.200.70 , 192.168.200.71)
,对外虚拟VIP:192.168.200.73
2. 软件列表:2.6内核已经集成IPVS内核补订了,所以不再需要重新编译内核.
3. DS安装lvs的管理软件 ipvsadm
利用centos的yum命令,
能自动的从他的镜像网站搜索软件,下载并安装。
yum
install ipvsadm
Setting up Install Process
Setting up repositories
update 100%
|=========================| 951 B 00:00
base 100%
|=========================| 1.1 kB
00:00
addons 100%
|=========================| 951 B 00:00
extras 100%
|=========================| 1.1 kB
00:00
Reading repository metadata in from local
files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with
selected packages. Please wait.
---> Downloading header for ipvsadm to
pack into transaction set.
ipvsadm-1.24-6.i386.rpm 100% |=========================| 5.8 kB 00:00
---> Package ipvsadm.i386 0:1.24-6 set to
be updated
--> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
ipvsadm i386 1.24-6 extras 30 k
Transaction Summary
=============================================================================
Install
1 Package(s)
Update
0 Package(s)
Remove
0 Package(s)
Total download size: 30 k
Is this ok [y/N]: y 选择 Y
Downloading Packages:
(1/1): ipvsadm-1.24-6.i38 100%
|=========================| 30 kB 00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ipvsadm
######################### [1/1]
Installed: ipvsadm.i386 0:1.24-6
4
前端调度器
在 DR 模式下的配置脚本
#/bin/sh
#file: config_vs.sh 这里默认使用网卡eth0,如果想用其它网卡请自行替换即可。
VIP=192.168.200.73 #DR的虚拟服务IP
DIP=192.168.200.72 #DR的eth0真实地址
RS1=192.168.200.71 #real server1的真实地址
RS2=192.168.200.70 #real
server2的真实地址
GW=192.168.200.1 #DR使用的网关或路由的地址
SERVICE=80 #web服务的端口
SERVICE_UDP= 800 #UDP 服务程序的端口
cat /proc/sys/net/ipv4/ip_forward #脚本调试信息
echo "1"
>/proc/sys/net/ipv4/ip_forward
echo "1"
>/proc/sys/net/ipv4/conf/all/send_redirects
cat
/proc/sys/net/ipv4/conf/all/send_redirects #脚本调试信息
echo "1"
>/proc/sys/net/ipv4/conf/default/send_redirects
cat
/proc/sys/net/ipv4/conf/default/send_redirects #脚本调试信息
echo "1"
>/proc/sys/net/ipv4/conf/eth0/send_redirects
cat
/proc/sys/net/ipv4/conf/eth0/send_redirects #脚本调试信息
/sbin/ifconfig eth0 ${DIP} #配置所使用的网卡IP
#配置虚拟服务IP
/sbin/ifconfig eth0:0 ${VIP} broadcast
${VIP} netmask 255.255.255.255
/sbin/route add -host ${VIP} dev eth0:0 #添加虚拟IP的路由
/sbin/route add default gw ${GW} #添加本地路由
/sbin/ifconfig eth0:0 #脚本调试信息, 显示虚拟IP配置
#/bin/ping -b ${VIP} #脚本调试信息, 看看虚拟IP是否可以ping通
/sbin/route -n #脚本调试信息,显示路由信息
/sbin/ipvsadm –C #清除虚拟服务器表,也就是清除IPVS的原配置
#添加服务及轮调调度算法,-t:tcp服务,-A:添加服务; -s rr:指定调度算法为轮调
/sbin/ipvsadm -A -t ${VIP}:${SERVICE} -s rr -p 600
#添加real
server, -a:添加一台RS, -t:tcp服务,-r: RS的地址,-g:直接路由模式。
#这里语句个数随real
server的个数而定
/sbin/ipvsadm -a -t ${VIP}:${SERVICE} -r
${RS1} -g
/sbin/ipvsadm -a -t ${VIP}:${SERVICE} -r
${RS2} –g
/sbin/ipvsadm -A –u ${VIP}:${ SERVICE_UDP } -s rr –p 600
/sbin/ipvsadm -a –u ${VIP}:${ SERVICE_UDP } -r ${RS1} -g
/sbin/ipvsadm -a –u ${VIP}:${ SERVICE_UDP } -r ${RS2} –g
ping -c 1 ${RS1} #脚本调试信息
ping -c 1 ${RS2} #脚本调试信息
/sbin/ipvsadm #脚本调试信息
#end of config_vs.sh
5
后台节点
在 DR 模式下的配置脚本
#/bin/sh
#file: config_rs.sh这里默认使用网卡eth0,如果想用其它网卡请自行替换即可。
VIP=192.168.200.73 #DR的虚拟服务IP
#DR的eth0真实地址,作用是在配置时测试DR的IP是否有效。但是DR切换后,DIP变了,所以这项取消了。
LOCALIP=192.168.200.71 #real server1的真实地址
GW=192.168.200.1 #real server使用的网关或路由的地址
/sbin/ifconfig eth0 ${LOCALIP} #配置eth0的本地IP
/sbin/route add default gw ${GW} #添加默认路由
/bin/netstat -rn #脚本调试信息
ping -c 1 ${GW} #脚本调试信息,是否可以ping通网关
echo "0"
>/proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward #脚本调试信息,ip_forward是否配置正确
ping -c 1 ${DIP} #脚本调试信息, 是否可以ping通DR的真实地址
ping –c 1 ${VIP} #是否可以ping通虚拟DR的IP
#按照real
server的虚拟IP
/sbin/ifconfig lo:0 ${VIP} broadcast ${VIP}
netmask 0xffffffff up
#配置出口
/sbin/ifconfig lo:0
#在lo:0上添加去虚拟IP的路由
/sbin/route add -host ${VIP} dev lo:0
/bin/netstat -rn #脚本调试信息
#使realserver不响应arp请求,
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 of config_rs.sh
6 测试:分别启动realserver上的httpd服务
在realserver1 执行 echo "This is realserver1" /var/www/html/index.html
在realserver2 执行 echo "This is realserver2" /var/www/html/index.html
打开IE浏览器输入http://192.168.200.73 应该可以分别看到:This is realserver1 和 This is realserver1.