[lug] High Availability and Failover options

Alan Robertson alanr at unix.sh
Thu Jan 17 14:36:01 MST 2002


"Riggs, Rob" wrote:
> 
> I've never seen a good way to handle shared session-level data in the OS.
> It's almost always done at the application level. It will almost certainly
> be a non-portable solution. And it would still require some cooperation at
> the application level.
> 
> The real question to ask yourself is how important is it to maintain the
> sessions during a failure? What we found was that system failure on our end,
> and the resulting few lost sessions, were trivial compared to the day-to-day
> failures people experience all the time on the net. Routes get munged, lines
> go down, firewall rules are hosed, modems hang up, etc. All of these common
> failures dwarfed the expected session failure rate due to hardware failure.
> It's rarely worth it. With something like 6 front-end servers (Dell 2450s),
> we had zero hardware failures in over a year.
> 
> With that said, it is usually not too difficult to store session information
> in a common data store. What is difficult is, in a very active site, making
> the common data store robust. It's usually a database. And you have to worry
> about real-time database replication and failover. I have yet to see that
> done in practice.
> 
> -----Original Message-----
> From: Andy Jolley [mailto:Jolley at firsttrust.com]
> Sent: Friday, January 04, 2002 3:01 PM
> To: lug at lug.boulder.co.us
> Subject: [lug] High Availability and Failover options
> 
> My company is looking for possibilities for a high availability java (JSP,
> API, BEANS) server and one of the options is Tomcat on Linux.  We currently
> have load balancers in front of another server solution that is frankly
> becoming too pricy and it's not living up to the salesmen's promises (big
> surprise).  So we're looking for a  new platform.  One of our main sticking
> points is ensuring the applciations have session level failover.  We
> currently have hardware level failover and load balancing via a hardware IP
> redirector.  While we're very happy with our hardware solution, we still
> have the issue of sessions being lost when a server goes belly up.
> 
> The development staff is working on coding to store the session information
> on an external data store, but I was wondering if there was a way to
> approach this a little more from the hardware/OS side.
> I was looking at Beowulf clusters, but what happens if one of the nodes in
> the cluster dies, and consequently what happens to the user sessions on that
> node.  I'm hoping the distributed memory model would help with this (unless
> the session was stored in the physical memory in the node that died).
> Redhat's website also mentions a product called Piranah, but I'm not too
> sure what that one is all about, it looks like basic load balancing.
> Does anyone have experience with any of this kind of thing..I'm starting to
> get pretty comfortable with Linux, but I can't even get Tomcat 3.3 running
> at home, so I'm obviously still pretty green with some of this stuff.

Hi,

Sorry to be coming in late on this discussion, but I've been distracted.

I am the project leader of the high-availability Linux project -
linux-ha.org.

With regard to session preservation:  you have to do it at the application
layer - period.  There is no system which can do this without assistance
from the application.

Keeping the service up is relatively cheap and easy.  Implementing
application retry/reconnect is harder, and keeping up TCP sessions, etc. is
harder yet.

But, I differ with Rob in one respect.  I believe that people really are
successful at keeping session state (for HTTP) in databases and fail them
over.
Database failover is pretty common.  Doing it easily isn't cheap, and doing
it cheaply isn't easy ;-)  But it's pretty common.

You might want to check out http://linux-ha.org/

	-- Alan Robertson
	   alanr at unix.sh



More information about the LUG mailing list