We're currently using a spread/wackamole solution for high availability &
load balancing. We've recently got bitten by the arp issue with that "ip
shuffling approach" as our PIX that the webservers are behind ignores the
arps of the moved IP's. Unless you set the arp timeout to 60, and we don't
care for the possibility of 60 seconds of downtime (especially when the
webservers are rsynced and bounced in rapid sucession for new code often).
So we looked at hardware loadbalancers, and after the sticker shock decided
to look at software solutions. From my reading on your website, pound looks
like a great solution. I have several exploratory questions I didn't quite
see addressed in the FAQ or archives and I was hoping folks could clue me in
on them (as well as this email being a trial balloon to see if the support
response is existant).
1) We can't have the pound load balancer be a single point of failure. It
appears the commonly suggested solution from the archives is to use
Heartbeat from the linux HA project. We are strictly a FreeBSD shop. Is this
the most common approach to address the SPOF issue? I saw some comments that
pound will never offer HA, but that seemed to be with respect to the backend
servers, and we're looking at the pound box itself. Any thoughts?
2) I don't see anything on the algorithm that pound uses to balance the load
across the backend webservers. I'm assuming it just does a sequential or
round-robin approach? Has there been any discussion or plans for any other
load balancing strategy? I was most impressed by the strategies offered by
SGcluster but that package doesn't include source and doesn't appear to be
maintained. I'm thinking of having a small process run on each webserver
that sends load information (cpu, packets per second, memory use, latency,
etc.) to the load balancer and it would distribute load based on "least
busy" server. Any new thoughts on this since the last message I saw in the
archive which simply said "no"? If it was based on load you wouldn't have to
worry about disparaties in machine performance within the cluster.
3) Perhaps I'm missing something obvious here with regards to routing. We
have public IP's on the outside of the PIX, webservers on the DMZ using
private address space, and database servers on the inside interface on
different private address space. Does a pound server have to be multihomed
and talk on two separate interfaces? I'm not sure how to fit a pound server
into that, without creating an additional subnet, which seems quite messy.
Any thoughts?
4) I was also toying with implementing mod_backhand, which people on this
list may have messed with. It will handle the balancing based on load,
making the pound box more of a high availability device than load balancing.
Has anyone found good pros or cons for implementing both a pound box and
something like mod_backhand?
I realize the above is a long email, thanks so much for reading it and I
would greatly appreciate any comments or thoughts folks here may have on
these topics.
Regards,
Jay West
Web/Network Administrator
Knight's Direct
---
[This E-mail scanned for viruses by Declude Virus]
|