As we all know persistent connections for LVS are frowned upon unless
absolutely necessary. Since plain http-only webservers hardly qualify as
necessary one is not encouraged to make them persistent.
However, most modern web sites use sessions for all kinds of reasons, and
sessions are usually stored on a single machine. It's possible for both
Apache and IIS to store the session state on a shared storage device or in a
database, but this is rather slow. Especially for IIS, because IIS normally
stores session state in RAM for fastest access.
Now I'm wondering if it's possible for LVS to 'prefer' the realserver to which
it connected a client before if that realserver is not completely overloaded
or removed from the cluster, but otherwise (and only then) reassign the
client to another realserver.
This way the overhead of fetching session state from slow storage on the
realservers is kept to the minimum required, and you still get the full
failover capability from ldirectord.
If it's only for failover this can also be achieved using the sysctl flags
that Joseph now finally documented in the HOWTO (thanks!), if it's also for
equalizing overloaded realservers I am much less sure the current LVS can do
this.
Any ideas?
--
Martijn
|