我正在尝试在CentOS 4.5系统上使用 ldirectord 对两台GIT服务器(即 server1 和 server2 )进行负载均衡。
名为 git-ld 的服务器充当ldirectord主服务器。
两台服务器都在端口9418上运行git-daemons,并且具有相同的git项目集。 git-ld上没有运行Git-daemon 。
注意:我对他们提供HA服务并不感兴趣,只是负载平衡。
这是我的ldirectord.cf配置。
checktimeout=3
checkinterval=5
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=yes
##### Git load balancing configuration #####
virtual=git-ld:9418 #git-ld is a virtual IP 172.10.10.10
real=server1:9418 gate 10 # server1 is IP 10.20.20.01
real=server2:9418 gate 5 # server1 is IP 10.20.20.02
checkport=777
service=simpletcp
scheduler=wlc
receive="OPEN"
protocol=tcp
checktype=negotiate
##### Web server load balancing configuration #####
virtual=git-ld:80
real=server1:80 gate 10
real=server2:80 gate 5
service=http
request="test.html"
receive="Still alive"
scheduler=wlc
protocol=tcp
checktype=negotiate
我正在使用自定义tcp服务检查服务器的运行状况,该服务在端口777上的git服务器(server1和2)上运行,如果服务器足够健康以提供请求,则返回“OPEN”。
如您所见,我还使用came ldirectord.cf文件对Web服务器进行负载平衡。
现在,Web服务器完全负载均衡。每次我尝试访问http:// git-ld /其中一个服务器都会为网页提供服务。
但是,当我使用以下命令向git-ld请求git clone时,我无法使服务器响应:
git clone git://git-ld/project.git
该命令在几分钟后就会超时。
如果我直接从它们克隆项目,服务器会提供git请求。
git clone git://server1/project.git
git clone git://server1/project.git
我确信服务器响应健康:
[git-ld]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.10.10.10:9418 wlc
-> 10.20.20.01:9418 Route 10 0 0
-> 10.20.20.02:9418 Route 5 0 0
[git-ld]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 172.10.10.10:9418 6 23 0 1380 0
-> 10.20.20.01:9418 4 16 0 960 0
-> 10.20.20.02:9418 2 7 0 420 0
有没有其他人成功在他们的网络上设置这样的负载平衡?有什么明显的我做错了吗?
我在哪里可以查找日志或其他消息,以便更深入地解决问题?
答案 0 :(得分:0)
你没有说你正在测试哪台机器:
git clone git://git-ld/project.git
您描述的行为让我怀疑您是从ldirectord服务器本身的shell进行测试,即git-ld。再次尝试git clone,但是从另一台计算机上。