学而不思则罔,思而不学则殆

有其事必有其理, 有其理必有其事

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  85 Posts :: 12 Stories :: 47 Comments :: 0 Trackbacks

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

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.


posted on 2007-05-16 14:14 易道 阅读(906) 评论(0)  编辑 收藏 引用 所属分类: 集群,分布式,并行
只有注册用户登录后才能发表评论。