- 论坛徽章:
- 0
|
问题:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress ort Scheduler Flags
-> RemoteAddress ort Forward Weight ActiveConn InActConn
TCP 192.168.1.20:http rr
-> w-web2:http Route 1 0 0
-> w-web1:http Route 1 0 0
检测状况:
1、[web2 ~]# ./bin/netstats.sh (查看当前连接状态的脚本)
LISTEN 8
ESTABLISHED 2
写hosts 打开web2站点正常。
2、[web1]$ ./bin/netstst.sh
LAST_ACK 9
LISTEN 4
CLOSE_WAIT 1
ESTABLISHED 996
FIN_WAIT1 28
FIN_WAIT2 166
TIME_WAIT 1955
3、集群机上日志无任何报错。
4、a)集群主机的 脚本:
#!/bin/bash
RIP1=192.168.1.10
RIP2=192.168.1.11
VIP1=192.168.1.20
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of DirectorServer"
# set the Virtual IP Address and sysctl parameter
#/sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
echo "0" >/proc/sys/net/ipv4/ip_forward
#Clear IPVS table
/sbin/ipvsadm -C
#set LVS
#Web Apache
/sbin/ipvsadm -A -t $VIP1:80 -s rr
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g -w 1
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g -w 1
#Run LVS
/sbin/ipvsadm
;;
stop)
echo "close LVS Directorserver"
#cho "0" >/proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
#/sbin/ifconfig eth0:0 down
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
b)web1/web2 上的集群客户端脚本:
#!/bin/bash
# lvs client script
VIP=192.168.1.20
VNETCARD=eth0:0
IFCONFIG=/sbin/ifconfig
ROUTE=/sbin/route
SYSCTL=/sbin/sysctl
main ()
{
if [ $# -ne 1 ]; then
usage $0
fi
checkFile $IFCONFIG
checkFile $ROUTE
checkFile $SYSCTL
if [ $(checkVNetcard $VNETCARD) -ne 0 ]; then
$IFCONFIG $VNETCARD down
fi
case $1 in
start)
ipvs_client_start
;;
stop)
ipvs_client_stop
;;
restart)
ipvs_client_stop
ipvs_client_start
;;
*)
usage $0
;;
esac
}
function ipvs_client_start ()
{
$IFCONFIG $VNETCARD $VIP broadcast $VIP netmask 255.255.255.255 up
$ROUTE add -host $VIP dev $VNETCARD
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
}
function ipvs_client_stop ()
{
$IFCONFIG $VNETCARD down
$ROUTE del $VIP
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
$SYSCTL -p
}
function checkFile ()
{
if [ ! -f $1 ]; then
echo "Can't find "$1
exit 1
fi
}
function checkVNetcard ()
{
$IFCONFIG |grep "$1"|wc -l
}
function usage ()
{
local script_name
script_name=$1
echo "Usgae : $script_name [ start | stop | restart ]"
echo ""
exit 1
}
main $*
集群机运行一段时间后总是症状那样,不能转发包。但是 只有web1 能接受包,似乎是直接接收到的,我把集群机关了还是能正常。web2 接收不到包了! 只有重新启动集群机才能正常转发包。是什么问题呢?
高手帮忙看下,多谢 指教!!
[ 本帖最后由 gron 于 2009-7-31 15:21 编辑 ] |
|