Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279749
  • 博文数量: 107
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 74
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-18 09:57
文章分类

全部博文(107)

文章存档

2023年(2)

2021年(1)

2017年(1)

2015年(4)

2014年(9)

2013年(4)

2012年(14)

2011年(49)

2010年(23)

分类: LINUX

2011-07-20 18:18:17

LVS IPVSADM池中的realserver出现问题,Director发现不了??
 
在我的上篇博客: 中提到了用IPVSADM实现负载均衡的方法。
 
但实现后发现一个严重问题:
 
LVS IPVSADM 池中的realserver 出现问题,Director 发现不了!!!
 
这意味着如果ipvsadm继续将请求 session 分配给服务出现问题的机器,将导致很多的请求无法连接。
 
所以自己写了个脚本挂在在Load Balance Director上, 经长时间测试,工作非常流畅。脚本的原理是:
 
1、在安装了nmap的Load Balance Director上循环检测每台real server的服务端口。
2、一旦发现端口down了,立刻从ipvsadm管理的池中移除该real server。
3、如果发现端口恢复正常了,即up了,立刻将恢复正常的real server自动添加到池中。
 
脚本内容如下:可根据实际情况修改FIP IP1 IP2。也可以添加更多的服务器。
 
#!/bin/bash
source /etc/profile;
FIP=192.168.2.1
IP1=192.168.2.7
IP2=192.168.2.8

while true;
do
for IP in $IP1 $IP2;
do
nmap -p 22 $IP 2>/dev/null|egrep 'open.*ssh'
        if [ $? -eq 0 ];
                then ipvsadm|grep $IP;
                        if [ $? -eq 0 ]; then echo $IP SSH Service fine; else ipvsadm -a -t $FIP:22 -r $IP; fi
        else
                echo $IP SSH Service down;
                ipvsadm|grep $IP;
                        if [ $? -eq 0 ]; then echo $IP SSH Service down; ipvsadm -d -t $FIP:22 -r $IP; fi  
        fi
done
sleep 2;
done
也有人说结合paranha图形配置就可以做到。没试过。用别人的东西有时候出了错,更不好解决。
 
这么简单的工作,还不如自己写个东西,一切心知肚明。
 
阅读(1917) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~