CentOS下ipvsadm+ldirectord实现高可用集群
时间:2014-05-19 00:23 来源:linux.it.net.cn 作者:IT网
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)
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) |