使用ldirectord进行负载均衡GIT服务器

时间:2012-05-17 07:44:30

标签: git centos load-balancing

我正在尝试在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

有没有其他人成功在他们的网络上设置这样的负载平衡?有什么明显的我做错了吗?

我在哪里可以查找日志或其他消息,以便更深入地解决问题?

1 个答案:

答案 0 :(得分:0)

你没有说你正在测试哪台机器:

git clone git://git-ld/project.git

您描述的行为让我怀疑您是从ldirectord服务器本身的shell进行测试,即git-ld。再次尝试git clone,但是从另一台计算机上。