Re: [lvs-users] Ldirectord not working with heartbeat, works standalone

To: " users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] Ldirectord not working with heartbeat, works standalone
From: Sebastian Vieira <sebvieira@xxxxxxxxx>
Date: Tue, 10 Feb 2009 13:28:36 +0100
On Tue, Feb 10, 2009 at 12:49 PM, Bruce Richardson <itsbruce@xxxxxxxxxxx>wrote:

> If ldirectord is turned off on inactive directors then the LVS
> configuration on those servers may not
> reflect the current situation and on the restart of ldirectord there
> will be a delay while this discrepancy is detected.  This is the main
> risk with managing ldirectord as a hearbeat resource and I see it as a
> significant enough danger to avoid any danger of it.

Ah, i see your point. I never came across this issue before.

But consider this: if a director does a failover it's because there's a
problem with the network so any state change of a realserver gets 'lost'
anyway during the timeout period you specified in heartbeat. If ldirectord
starts i assume it immediately issues health-checks and thus sets the
availability of the realservers accordingly. You can shorten the time
between health-checks somewhat to minimize this period, but still it would
be a period in which clients could be routed to unavailable realservers.
Maybe it's an idea to have ldirector parse its configuration file and
instead of first setting up the realserver entry in the LVS table, have it
issue a health-check for each realserver it comes across. Then set up the
entry according to it's availability.

But yes, i agree, if you want to eliminate this 'lost' period the best way
would be to have ldirectord running on both nodes at all times. An argument
that i thought of "heartbeat makes sure ldirectord is running" is moot if
you have puppet handle the service state.

I wonder what Horms has to say on this ...

Please read the documentation before posting - it's available at: mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to

<Prev in Thread] Current Thread [Next in Thread>