Richard's Project Blog

In this blog you will be reading about my final year computer science project at university. Feel free to make any comments and suggest any ideas!

Monday, September 12, 2005

Fault tolerant web servers and DNS - on the cheap

The simplest ideas are the best, and despite a small amount of ridicule, I think I have seen possibly the most efficient failover solution yet. It is quite simple, there are two web servers, say A and B and one DNS server. According to the DNS server A is www.wlv.ac.uk – Server B is an exact clone – but is not used. A script is then used to ping (or similar) A, when it does not reply, the script considers A to be down, and therefore switches its DNS entry to B’s IP address, an email is sent and an action is taken to fix the server A, whilst the script continues to monitor B.

This is obviously not the most ideal solution for a serious company thinking about failover – as there are many single points of failure, but hey – if it works it works.

Thursday, September 01, 2005

The cost of high availability (HA)

I have been looking at HA – and in its current form it is expensive. Part of a previous blog I had discussed the use of a live distribution to act as a backup – so if anything happened a CD could be inserted into a piece of hardware that was available to replace the role of the server.

Although this is feasible initial investigation into live Linux Distributions clearly pointed out that with a small amount of configuration they could already take the role of a web server.

I have been discussing with my project tutor about the benefits, but major cost implications of HA. HA is “exactly what it says on the tin” it makes a server have complete failover by removing every single point of failure.

A HA server is only one part of a complete infrastructure, as the underlying components – have to be doubled up too – such as routers and switches.

A recent example of “supposed” HA was experienced whilst I was working one day last week. As the company I work for provides services to customers it is imperative that we have two Internet links into the building – which we do – the only problem being the same supplier provides them. Both lines go off to different exchanges and have different routes to the backbone – but when the backbone goes (which it did) we are still left with unhappy customers – so it seems no matter how hard you try, and how much money you spend HA there is still a single point of failure.

I have two ideas:

High availability on the cheap and

Dynamic high availability.

High availability on the cheap:

  • Throw away parts
  • Cheap and reusable
  • Many nodes

Dynamic high availability

  • Able to add nodes easily (and cheaply)
  • Low configuration cost