Ariel
2011-05-19 19:41:46 UTC
I'm starting a new LVS-DR setup with ldirectord but am unable to get it working. I started with trying to set up a single director server with a single real server.
My ldirectord.cf:
------------------
checktimeout=8
checkinterval=5
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
fork=yes
virtual = xx.xx.xx.xx:80
fallback = 127.0.0.1:80 gate # if no real servers are available
real = 10.0.0.2:80 gate 10 # weight of 10
scheduler = wrr # weighted round robin
persistent = 7200
protocol = tcp
service = http
request = "test.php"
receive = "Success"
checktype = negotiate
------------------
The director starts up fine, I see no errors in the logfile:
------------------
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Killing child tcp:xx.xx.xx.xx:80 (PID=21538)
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Changed virtual server: xx.xx.xx.xx:80
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Restored real server: 10.0.0.2:80 (xx.xx.xx.xx:80) (Weight set to 10)
[Thu May 19 15:24:38 2011|ldirectord.cf|21532] Child not running for tcp:xx.xx.xx.xx:80, spawning
[Thu May 19 15:24:38 2011|ldirectord.cf|21532] Spawned child tcp:xx.xx.xx.xx:80 PID=22592
[Thu May 19 15:24:46 2011|ldirectord.cf|22593] Invoking ldirectord invoked as: /usr/sbin/ldirectord /etc/ldirectord.cf restart
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Killing child tcp:xx.xx.xx.xx:80 PID=22592
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Purged real server (stop): 10.0.0.2:80 (xx.xx.xx.xx:80)
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Purged virtual server (stop): xx.xx.xx.xx:80
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Linux Director Daemon terminated on signal: TERM
[Thu May 19 15:24:47 2011|ldirectord.cf|22593] Starting Linux Director v1.186-ha as daemon
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Added virtual server: xx.xx.xx.xx:80
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Added fallback server: 127.0.0.1:80 (xx.xx.xx.xx:80) (Weight set to 1)
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Child not running for tcp:xx.xx.xx.xx:80, spawning
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Spawned child tcp:xx.xx.xx.xx:80 PID=22607
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Resetting soft failure count: 10.0.0.2:80 (tcp:xx.xx.xx.xx:80)
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Added real server: 10.0.0.2:80 (xx.xx.xx.xx:80) (Weight set to 10)
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Deleted fallback server: 127.0.0.1:80 (xx.xx.xx.xx:80)
------------------
When why I try to send any traffic to the xx.xx.xx.xx IP address, it seems to go nowhere. My real server never sees the incoming traffic (using tcpdump). Using tcpdump on the ldirectord server shows that it is polling the "test.php" file successfully very often, but no further traffic is going out.
Results of: ipvsadm -L
------------------
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP xx.xx.xx.xx wrr persistent 7200
-> 10.0.0.2:www Route 10 0 0
------------------
When I try to curl xx.xx.xx.xx from anywhere else on the network, the InActConn increments (if I try it 12 times within a minute, it goes up to 12 InActConn's), but nothing is getting served, not even so much as an ACK-SYN comes back.
I am really stuck at this point and have no idea what to try, there seems to be very little documentation anywhere on how ldirectord actually works except the manpage. All documentation online seems to be only about setting up clustering services like heartbeat/pacemaker/keepalived to manage director failover and nothing about actually setting up a working director.
Any suggestions for what to try next would be very welcome.
My ldirectord.cf:
------------------
checktimeout=8
checkinterval=5
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
fork=yes
virtual = xx.xx.xx.xx:80
fallback = 127.0.0.1:80 gate # if no real servers are available
real = 10.0.0.2:80 gate 10 # weight of 10
scheduler = wrr # weighted round robin
persistent = 7200
protocol = tcp
service = http
request = "test.php"
receive = "Success"
checktype = negotiate
------------------
The director starts up fine, I see no errors in the logfile:
------------------
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Killing child tcp:xx.xx.xx.xx:80 (PID=21538)
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Changed virtual server: xx.xx.xx.xx:80
[Thu May 19 15:24:37 2011|ldirectord.cf|21532] Restored real server: 10.0.0.2:80 (xx.xx.xx.xx:80) (Weight set to 10)
[Thu May 19 15:24:38 2011|ldirectord.cf|21532] Child not running for tcp:xx.xx.xx.xx:80, spawning
[Thu May 19 15:24:38 2011|ldirectord.cf|21532] Spawned child tcp:xx.xx.xx.xx:80 PID=22592
[Thu May 19 15:24:46 2011|ldirectord.cf|22593] Invoking ldirectord invoked as: /usr/sbin/ldirectord /etc/ldirectord.cf restart
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Killing child tcp:xx.xx.xx.xx:80 PID=22592
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Purged real server (stop): 10.0.0.2:80 (xx.xx.xx.xx:80)
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Purged virtual server (stop): xx.xx.xx.xx:80
[Thu May 19 15:24:46 2011|ldirectord.cf|21532] Linux Director Daemon terminated on signal: TERM
[Thu May 19 15:24:47 2011|ldirectord.cf|22593] Starting Linux Director v1.186-ha as daemon
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Added virtual server: xx.xx.xx.xx:80
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Added fallback server: 127.0.0.1:80 (xx.xx.xx.xx:80) (Weight set to 1)
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Child not running for tcp:xx.xx.xx.xx:80, spawning
[Thu May 19 15:24:47 2011|ldirectord.cf|22601] Spawned child tcp:xx.xx.xx.xx:80 PID=22607
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Resetting soft failure count: 10.0.0.2:80 (tcp:xx.xx.xx.xx:80)
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Added real server: 10.0.0.2:80 (xx.xx.xx.xx:80) (Weight set to 10)
[Thu May 19 15:24:47 2011|ldirectord.cf|22607] Deleted fallback server: 127.0.0.1:80 (xx.xx.xx.xx:80)
------------------
When why I try to send any traffic to the xx.xx.xx.xx IP address, it seems to go nowhere. My real server never sees the incoming traffic (using tcpdump). Using tcpdump on the ldirectord server shows that it is polling the "test.php" file successfully very often, but no further traffic is going out.
Results of: ipvsadm -L
------------------
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP xx.xx.xx.xx wrr persistent 7200
-> 10.0.0.2:www Route 10 0 0
------------------
When I try to curl xx.xx.xx.xx from anywhere else on the network, the InActConn increments (if I try it 12 times within a minute, it goes up to 12 InActConn's), but nothing is getting served, not even so much as an ACK-SYN comes back.
I am really stuck at this point and have no idea what to try, there seems to be very little documentation anywhere on how ldirectord actually works except the manpage. All documentation online seems to be only about setting up clustering services like heartbeat/pacemaker/keepalived to manage director failover and nothing about actually setting up a working director.
Any suggestions for what to try next would be very welcome.