> CentOS > CentOS服务器 > 负载均衡 >

CentOS下ipvsadm+ldirectord实现高可用集群

192.168.0.34,192.168.0.35,192.168.0.36,192.168.0.37四台服务器
192.168.0.37是nas 34,35,36 运行得email 服务。
在37上做了一个调度器来分配服务 80,25,110 端口的服务到34,35,36 上。

具体配置:
在37 服务器上,首先装了一个ipvsadm的rpm 包
yum install ipvsadm #获得ipvsadm软件,负责负载均衡,轮循请求到后台服务
然后些这个教本
参考别人写的。采用的是直接路由的模式。
#!/bin/bash
VIP=192.168.0.38
RIP1=192.168.0.34
RIP2=192.168.0.35
RIP3=192.168.0.36
GW=192.168.0.33
#Clear IPVS table
/sbin/ipvsadm -C
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
#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
/sbin/ipvsadm -A -t $VIP:25 -s rr
/sbin/ipvsadm -a -t $VIP:25 -r $RIP1:25 -g
/sbin/ipvsadm -a -t $VIP:25 -r $RIP2:25 -g
/sbin/ipvsadm -a -t $VIP:25 -r $RIP3:25 -g
/sbin/ipvsadm -A -t $VIP:110 -s rr
/sbin/ipvsadm -a -t $VIP:110 -r $RIP1:110 -g
/sbin/ipvsadm -a -t $VIP:110 -r $RIP2:110 -g
/sbin/ipvsadm -a -t $VIP:110 -r $RIP3:110 -g
#Run LVS
/sbin/ipvsadm
#end
内容是192.168.0.38 是虚拟地址 192.168.0.34,35,36 为真正服务器。做80,25,110 端口的负载。
34,35,36 分别了/home/test.sh 教本
#!/bin/bash
VIP=192.168.0.38
/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/all/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_filter
sysctl -p
#end
这个脚本的作用是过滤arp 包的,或者编辑/etc/sysctl.conf修改系统变量
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.ip_forward = 1
sysctl –p   #配置生效

http://www.vergenet.net/linux/ldirectord/
下载lddirectord 这个软件是个监控软件。

07年前,可以使用以下方式下载,目前已经失效
{cvs -d:pserver:guest@cvs.linux-ha.org:/home/cvs/linux-ha login
cvs -z3 -d:pserver:guest@cvs.linux-ha.org:/home/cvs/linux-ha co linux-ha/}

当前(20090906)可用链接
http://hg.linux-ha.org/lha-2.1/archive/STABLE-2.1.4.tar.bz2


然后写了一个配置文件
ldirectord.cf
checktimeout=3
checkinterval=1
#fck=127.0.0.1:80allback=127.0.0.1:80
autoreload=yes
#logfile="/var/log/ldirectord.log"
#logfile="local0"
quiescent=yes
# A sample virual with a fallback that will override the gobal setting
virtual=192.168.0.38:80
       real=192.168.0.34:80 gate
       real=192.168.0.35:80 gate
       real=192.168.0.36:80 gate
       fallback=127.0.0.1:80
       service=http
       request="test.html"
       receive="Test Page"
       virtualhost=www.shiming.gov.cn
       scheduler=rr
       persistent=600
       netmask=255.255.255.255
       protocol=tcp
virtual=192.168.0.38:25
       real=192.168.0.34:25 gate
       real=192.168.0.35:25 gate
       real=192.168.0.36:25  gate
       fallback=127.0.0.1:25
        service=smtp
        scheduler=rr
        persistent=600
       protocol=tcp
virtual=192.168.0.38:110
        real=192.168.0.34:110 gate
       real=192.168.0.35:110 gate
       real=192.168.0.36:110  gate
       fallback=127.0.0.1:110
      service=pop
      scheduler=rr
      login="testemail"
      passwd="emailtest"
      persistent=600
      protocol=tcp

这就是监控得东西。
ldirectord  /etc/ldirectord.cf start
ldirectord  /etc/ldirectord.cf stop
tail -f /var/log/ldirectord.log 这个是log

查看lvs服务是否正常
watch ipvsadm -l -n

Every 2.0s: ipvsadm -l -n                                Sun Sep  6 19:39:51 2009

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.105:80 rr
-> 192.168.0.104:80             Route   1      0          0
-> 192.168.0.103:80             Route   1      0          0
TCP  192.168.0.105:3306 rr
-> 192.168.0.104:3306           Route   1      0          0
-> 192.168.0.103:3306           Route   1      0          0

参考:
http://bbs.chinaunix.net/viewthread.php?tid=1148139
http://www.linuxvirtualserver.org/

------分隔线---------------------------- 上一篇:CentOS下LVS(DR)+ldirectord 实现负载平衡
下一篇:HAproxy+keepalived+mysql高可用性Linux系统集群
收藏举报推荐打印发表评论 关闭-
关闭-
   
(责任编辑:IT)