I have downloaded the latest ldirectord from CVS (1.87 2004/05/07
08:53:33) to try and fix a problem we have been having with the
fallback server remaining in the pool after a real server comes back
online. According to this post
<http://marc.theaimsgroup.com/?l=linux-virtual-
server&m=106508659022945&w=2> in the mailing list that problem has been
fixed in CVS.
I haven't got around to testing the fallback code however, as the CVS
version does not activate all of our server pools.
Reverting back to 1.77 successfully added all real servers to all our
pools.
The procedure I used to update ldirectord was to copy the new
ldirectord file over the top of the existing /usr/sbin/ldirectord and
issuing a "service ldirectord restart".
ldirectord.cf config file:
checktimeout=6
checkinterval=2
#fallback=127.0.0.1:8000
autoreload=yes
#logfile="/var/log/ldirectord.log"
logfile="local0"
quiescent=no
virtual=192.168.100.1:80
real=192.168.11.11:80 masq
real=192.168.11.12:80 masq
real=192.168.11.13:80 masq
real=192.168.11.14:80 masq
service=http
request="/serverstate/"
receive="server up"
scheduler=lc
persistent=7200
#netmask=255.255.255.255
protocol=tcp
virtual=192.168.0.1:80
real=192.168.11.11:80 masq
real=192.168.11.12:80 masq
real=192.168.11.13:80 masq
real=192.168.11.14:80 masq
service=http
request="/serverstate/"
receive="server up"
scheduler=lc
persistent=7200
#netmask=255.255.255.255
protocol=tcp
virtual=192.168.100.1:443
real=192.168.11.11:443 masq
real=192.168.11.12:443 masq
real=192.168.11.13:443 masq
real=192.168.11.14:443 masq
service=https
request="/serverstate/"
receive="server up"
scheduler=lc
persistent=7200
#netmask=255.255.255.255
protocol=tcp
virtual=192.168.0.1:443
real=192.168.11.11:443 masq
real=192.168.11.12:443 masq
real=192.168.11.13:443 masq
real=192.168.11.14:443 masq
service=https
request="/serverstate/"
receive="server up"
scheduler=lc
persistent=7200
#netmask=255.255.255.255
protocol=tcp
/var/log/messages: -- comments to show what I was doing when then log
entries occured
-- "cp ldirectord /usr/sbin/ldirectord"
-- "service ldirectord restart"
May 26 12:27:55 osacon2 ldirectord: Stopping ldirectord succeeded
May 26 12:27:55 osacon2 ldirectord[24978]: Removed real server:
192.168.11.11:80 (-1 x 192.168.100.1:80
May 26 12:27:55 osacon2 ldirectord[24978]: Removed real server:
192.168.11.13:80 (-2 x 192.168.100.1:80
May 26 12:27:55 osacon2 ldirectord[24978]: Removed virtual server:
192.168.100.1:80
May 26 12:27:55 osacon2 ldirectord[24978]: Removed virtual server:
192.168.0.1:80
May 26 12:27:55 osacon2 ldirectord[24978]: Removed real server:
192.168.11.11:443 (-1 x 192.168.100.1:443
May 26 12:27:55 osacon2 ldirectord[24978]: Removed real server:
192.168.11.13:443 (-2 x 192.168.100.1:443
May 26 12:27:55 osacon2 ldirectord[24978]: Removed virtual server:
192.168.100.1:443
May 26 12:27:55 osacon2 ldirectord[24978]: Removed virtual server:
192.168.0.1:443
May 26 12:27:55 osacon2 ldirectord[24978]: Linux Director Daemon
terminated on signal: TERM
May 26 12:27:57 osacon2 ldirectord[26708]: Starting Linux Director
v1.87 as daemon
May 26 12:27:57 osacon2 ldirectord: Starting ldirectord succeeded
May 26 12:27:57 osacon2 ldirectord[26710]: Added virtual server:
192.168.100.1:80
May 26 12:27:57 osacon2 ldirectord[26710]: Added virtual server:
192.168.0.1:80
May 26 12:27:57 osacon2 ldirectord[26710]: Added virtual server:
192.168.100.1:443
May 26 12:27:57 osacon2 ldirectord[26710]: Added virtual server:
192.168.0.1:443
May 26 12:27:57 osacon2 ldirectord[26710]: Added real server:
192.168.11.11:80 (0 x 192.168.100.1:80) (Weight set to 1)
May 26 12:27:58 osacon2 ldirectord[26710]: Added real server:
192.168.11.13:80 (1 x 192.168.100.1:80) (Weight set to 1)
May 26 12:28:01 osacon2 ldirectord[26710]: Added real server:
192.168.11.11:443 (0 x 192.168.100.1:443) (Weight set to 1)
May 26 12:28:04 osacon2 ldirectord[26710]: Added real server:
192.168.11.13:443 (1 x 192.168.100.1:443) (Weight set to 1)
-- "ipvsadm -L -n" to check the vs table, see below
-- rsync the old version of ldirectord from the other cluster member to
the active cluster member
May 26 12:28:16 osacon2 rsyncd[26733]: rsync to
root/usr/sbin/ldirectord from osacon1.osa.int (10.127.0.2)
May 26 12:28:16 osacon2 rsyncd[26734]: wrote 32 bytes read 19085 bytes
total size 80982
-- "service ldirectord restart"
May 26 12:28:20 osacon2 ldirectord[26710]: Removed real server:
192.168.11.11:80 (1 x 192.168.100.1:80
May 26 12:28:20 osacon2 ldirectord[26710]: Removed real server:
192.168.11.13:80 (0 x 192.168.100.1:80
May 26 12:28:20 osacon2 ldirectord[26710]: Removed virtual server:
192.168.100.1:80
May 26 12:28:20 osacon2 ldirectord[26710]: Removed virtual server:
192.168.0.1:80
May 26 12:28:20 osacon2 ldirectord[26710]: Removed real server:
192.168.11.11:443 (1 x 192.168.100.1:443
May 26 12:28:20 osacon2 ldirectord[26710]: Removed real server:
192.168.11.13:443 (0 x 192.168.100.1:443
May 26 12:28:20 osacon2 ldirectord[26710]: Removed virtual server:
192.168.100.1:443
May 26 12:28:20 osacon2 ldirectord[26710]: Removed virtual server:
192.168.0.1:443
May 26 12:28:20 osacon2 ldirectord[26710]: Linux Director Daemon
terminated on signal: TERM
May 26 12:28:20 osacon2 ldirectord: Stopping ldirectord succeeded
May 26 12:28:21 osacon2 ldirectord[26760]: Starting Linux Director
v1.77 as daemon
May 26 12:28:21 osacon2 ldirectord: Starting ldirectord succeeded
May 26 12:28:21 osacon2 ldirectord[26762]: Added virtual server:
192.168.100.1:80
May 26 12:28:21 osacon2 ldirectord[26762]: Added virtual server:
192.168.0.1:80
May 26 12:28:21 osacon2 ldirectord[26762]: Added virtual server:
192.168.100.1:443
May 26 12:28:21 osacon2 ldirectord[26762]: Added virtual server:
192.168.0.1:443
May 26 12:28:21 osacon2 ldirectord[26762]: Added real server:
192.168.11.11:80 (0 x 192.168.100.1:80) (Weight set to 1)
May 26 12:28:21 osacon2 ldirectord[26762]: Added real server:
192.168.11.11:80 (0 x 192.168.0.1:80) (Weight set to 1)
May 26 12:28:22 osacon2 ldirectord[26762]: Added real server:
192.168.11.13:80 (0 x 192.168.100.1:80) (Weight set to 1)
May 26 12:28:22 osacon2 ldirectord[26762]: Added real server:
192.168.11.13:80 (0 x 192.168.0.1:80) (Weight set to 1)
May 26 12:28:25 osacon2 ldirectord[26762]: Added real server:
192.168.11.11:443 (0 x 192.168.100.1:443) (Weight set to 1)
May 26 12:28:25 osacon2 ldirectord[26762]: Added real server:
192.168.11.11:443 (0 x 192.168.0.1:443) (Weight set to 1)
May 26 12:28:28 osacon2 ldirectord[26762]: Added real server:
192.168.11.13:443 (0 x 192.168.100.1:443) (Weight set to 1)
May 26 12:28:28 osacon2 ldirectord[26762]: Added real server:
192.168.11.13:443 (0 x 192.168.0.1:443) (Weight set to 1)
-- "ipvsadm -L -n" to check the vs tables
Virtual Server tables at different points:
Running 1.87:
[root@osacon2 ldirectord]# ipvsadm -L -n
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.1:80 lc persistent 7200
TCP 192.168.100.1:80 lc persistent 7200
-> 192.168.11.13:80 Masq 1 0 0
-> 192.168.11.11:80 Masq 1 0 0
TCP 192.168.0.1:443 lc persistent 7200
TCP 192.168.100.1:443 lc persistent 7200
-> 192.168.11.13:443 Masq 1 0 0
-> 192.168.11.11:443 Masq 1 0 2
Running 1.77:
IP Virtual Server version 1.0.11 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.1:80 lc persistent 7200
-> 192.168.11.13:80 Masq 1 0 0
-> 192.168.11.11:80 Masq 1 0 0
TCP 192.168.100.1:80 lc persistent 7200
-> 192.168.11.13:80 Masq 1 0 0
-> 192.168.11.11:80 Masq 1 0 0
TCP 192.168.0.1:443 lc persistent 7200
-> 192.168.11.13:443 Masq 1 0 0
-> 192.168.11.11:443 Masq 1 0 0
TCP 192.168.100.1:443 lc persistent 7200
-> 192.168.11.13:443 Masq 1 0 0
-> 192.168.11.11:443 Masq 1 0 2
Are there any known problems with 1.87 I should be wary of? Is there
another version with the fallback fix but without this new bug? Can
anyone supply a patch so that I can fix this problem in 1.87?
Unfortunately I don't have the time to come to grips with the
ldirectord perl code :(
Thanks,
JT
|