CentOS 4.5システムでldirectordを使用して、2つのGITサーバー(つまり、 server1とserver2)の負荷を分散しようとしています。
git-ldという名前のサーバーがldirectordマスターとして機能します。
両方のサーバーはポート9418でgit-daemonsを実行しており、同じgitプロジェクトのセットを持っています。git-ldで実行されているGitデーモンはありません。
注:私はまだ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
ポート777の両方のgitサーバー(server1と2)で実行され、サーバーが要求を処理するのに十分な状態である場合は「OPEN」を返すカスタムtcpサービスを使用してサーバーの状態をチェックしています。
ご覧のとおり、来たldirectord.cfファイルを使用してWebサーバーの負荷を分散しています。
これで、Webサーバーの負荷が完全に分散されます。http:// git-ld /にアクセスしようとするたびに、サーバーの1つがWebページを提供します。
しかし、以下のコマンドを使用して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
他の誰かがネットワーク上でそのような負荷分散を正常に設定しましたか?私が間違っていることは明らかですか?
問題をより深く理解するために使用できるログまたはその他のメッセージはどこで探すことができますか?