Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm building an application that requires high-availability. We currently run: 4 webservers, 2 varnish servers (both with Pound for SSL proxy), 3 Cassandra nodes.

The varnish servers are used as entry points for the system. We want to configure everything that Varnish A always works, until failure, then Varnish B should receive the requests and distribute them to the webservers.

As Varnish A and Varnish B are not in the same DC and some other demands of our company it wasn't possible to use some Heartbeat like system to use a virual IP.

We decided to solve it with the CNAME record of our website.

We now have something like this: CNAME (TTL = 60s) A (TTL = 86400s) A (TTL = 86400s)

Our idea was to swap the CNAME record as we detect a failure. This gives us a maximum downtime of roughly 2 minutes (if no DNS caches are still redirecting to the wrong server). Acceptable for our use case.

The main question: How to detect the failure in a redundant way and prevent false-positives?

share|improve this question
up vote 1 down vote accepted

I started to use Route 53 in combination with CouldWatch of Amazon to provide the service level I need. Exactly what I needed!

share|improve this answer

You may use heartbeat to detect failure and run a script to change dns. You need to use a dedicated connection for heartbeat.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.