集群問題,使用一段時間不能轉發包!!急!!
問題:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port 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、# ./bin/netstats.sh (查看當前連接狀態的腳本)
LISTEN 8
ESTABLISHED 2
寫hosts 打開web2站點正常。
2、$ ./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 編輯 ]
《解決方案》
回復 #1 gron 的帖子
真實伺服器配置的配置都是採用的腳本的方式么?
真實伺服器上的配置信息在出現問題是檢查信息是否存在?
調度服務的信息也要做對應的檢查
《解決方案》
回復 #2 kns1024wh 的帖子
真實伺服器的配置都是按一樓的腳本啟動的。
真實伺服器配置信息出現問題的時候都在,即虛擬IP都在啟動狀態。還有集群伺服器上的也是啟動狀態。
調度方面我檢查了,就是發現轉發包和鏈接情況都是 一樓說的一樣,空的。也無報錯情況。您看還有哪些方面考慮問題?
謝謝 朋友幫助!!