Simple HA/HP clustering Using Only DNS
holviala writes "I cooked up a way to achieve high-availability and high-performance clustering using nothing but a few strangely configured dns zones. In case someone else is interested in an extremely easy clustering solution, I wrote a document about it. It's a bit technical, but the included examples should make it clear for anyone who's used to configuring dns. And yes, the linked site is clustered too, so... ummm... no need to be gentle :-)."
This only guarantees DNS HA, since it will not test for apache being alive, or any other service being alive. More of a round robin type of setup, with automatic drop of dead addresses. Although it is a nice DNS experiment, I would never use this for HA, as there are better, and - critically - more reliable ways of doing HA, and some of those are pretty affordable.
Face it, you do HA if your business depends on it, and would you really want to rely on a DNS hack in that case?
Having said that - Cool Hack Dude!
People who think they know everything are a great annoyance to those of us who do.
And yes, the linked site is clustered too, so... ummm... no need to be gentle :-)
We'll see about that. Our cluster of desktops will wipe the floor with your cluster.
HA has is more than making more than one host available with the same name. If you are hosting some lame blog, it may well work, but if you are anything that might be interesting to the rest of the world, ie. something that involves data, you'll have more problems to solve. Tell me, how does this ensure that all the hosts are serving identical data?
Don't use "Domain.dom". There are well-known domains that are reserved explicitly for this purpose.
What about client programs that cache DNS lookups (I think some web browsers do this)? I'd hardly call something HA if I have to do something clientside to flush any cached lookups.
Regardless of what the nit-pickers say, I think this is quite a clever idea. The author isn't suggesting this is the best HA solution in the world; but it's certainly simple and effective.
Carpe Daemon
Seriously, what is so complex about using something like Heartbeat/LDirectord and setting up a HA/LB cluster? .
Took me about 3 hours to read through the docs, google for examples and setup a 2-Load Balancer/3-Node Cluster, using downloaded packages from ultramonkey.org
With a 30 sec deadtime, full takeover takes about 1-2 minutes.
This is just HA load-balancing of your inbound web traffic. Clustering is what happens on the back end between the servers, which the articles doesn't cover at all, presumably because in the example case the servers are just serving static content over http, and all that's needed to "cluster" it is to copy your changes to both machines when you change the static data.
The hard part of clustering is getting real HA and/or Loadbalancing for non-trivial content. Imagine if the websrever behind Kimmy's DNS setup was hosting an SSL-based service, where users logged into sessions, and posted on a message board to each other.
Now you have to get SSL working right for multiple machines, and you have to get sessioning to work right between multiple machines (the user's session would jump between servers with Kimmy's DNS), and the database the message board is storing in would have to be consistent across both servers.
The easy solution to most of this is of course to put the session-state in the same database as the message board, and put the message board database on a seperate back-end machine that both webservers hit, thereby removing all state from the web cluster. But now you've introduced a new single point of failure at the database level - DB goes poof, your webservers dont matter much.
So there's no easy way out of this, you can't play shell games and try to make the single points of failure magically disappear. May as well leave the database on the web server nodes (assuming load/space aren't problems), and use some kind of clustered database solution...
One way or another, you'll have to do real clustering at some layer - which will inevitably involve heartbeats and quorums and all that jazz, the complicated stuff referred to in the first paragraph of Kimmy's page.
11*43+456^2
OK, how about this article from December 2002 (see diagram and description on page 4).
~~~~~~~
"You are not remembered for doing what is expected of you." - Atul Chitnis
"The serials should always be the same on all nodes." ... "But the most serious limitation are the buggy DNS servers around the world. This setup assumes that a DNS server or resolver obeys the expire time of a zone record (the 60 seconds used above). Unfortunatly, there are a lot of servers out there which don't do that."
Aren't other DNS servers allowed to look at your SOA serial number, notice it hasn't changed, and not bother doing any other work? Isn't that the point of having serial numbers?
It sounds like you are blaming all those other DNS servers for following the RFC.
But I'm sure you've given this more thought that I have, so tell me what I'm missing.