Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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 presently have 1 dedicated virtual server running my website/blog/mail, etc. This is on Hyper-V with 512MB RAM. Windows Web2008. With the VM, I have these running within it:

  • SmarterMail – for emails
  • MS DNS – I have my own nameservers on this server
  • SQL Express
  • IIS7
  • 2 IP Address

I have now leased 2 physical servers : P4 2.6Ghz 1GB RAM 80GB HDD. With these new servers, I get 2 IPs per server as well. These are running Windows 2008 Standard. With the VM the HDD was obviously on a RAID setup so I was not worried about hardware issues as it fell on the provider to manage. However, with the new servers the HDD is not RAID’d, hence my concern is that if it fails I need a backup position.

What would be the most ideal setup to go for? I am thinking:

Server 1: (Web/PrimaryDNS)

  • DNS – NS1
  • SQL Express – OFF turn on when required, ie. Server2 is down
  • SmarterMail – OFF turn on when required, ie. Server2 is down
  • IIS 7


  • DNS – NS2
  • SQL Web Edition
  • SmarterMail
  • IIS 7

How can I set it up so that if 1 goes down I can have everything on 2 instantly or by manual switching over. I am confused as other DNS servers will cache the web servers IP address for requests, and if that server goes down, the backup server will have a different IP. How do I make this work?

I will be doing routine backups, in which case I will keep copies of backups on both servers. If I am copying the same stuff on both servers like a mirror then I am losing on using the true performance out of it. It's like 1 server is always on standby.

Ideally I want SQL and web on 2 diff machines for best performance. If Server1 goes down, I should be able to switch to Server2 fairly easily. I don't have a problem with manual intervention to start the sql/mail services, etc.

In terms of scalabilty, the VM has coped pretty well to date. Moving forward the SQL and IIS workload is going to double pretty quickly.

Some ideas would be great.

share|improve this question

Are you using SmarterMail as an actual mailbox server, or just an MTA that you can use to send mail? If it's the first one, you'll need some kind of shared storage between the servers, or some way of replicating the mailbox data from the primary box to the failover one; otherwise, you'll have a working mail server on the failover box, but no data. Same deal for SQL Express.

share|improve this answer
Smartermail as a actual mailbox server. I am keeping it off for the reason you mentioned above. If 1 server fails, I can quickly restore the backed up data files into smartermail and sql and start it on the other server. – Minal Nov 2 '09 at 22:35
Assuming you're not backing up each server's data onto itself, that'll work. For IIS, about the only thing I can suggest without involving some kind of separate load-balancer would be round-robin DNS, although that'll fall foul of the DNS cacheing problem you mentioned in your original post. – RainyRat Nov 2 '09 at 23:59
Actually, there's an interesting article on IIS7 failover at – RainyRat Nov 3 '09 at 0:03

I think the feature your looking for is called Live Migration & is the closest to what your suggesting for 'instant' failover.

  • For IIS high availability investigate using NLB or a hardware load balancer.
  • For SQL Server high availability investigate using log shipping or database mirroring.

If you have shared storage in the mix, you can also investigate clustering.

share|improve this answer
I am moving to physical servers. – Minal Nov 4 '09 at 3:32
probably the easiest way to implement the 'have everything on 2 instantly requirement' – Nick Kavadias Nov 4 '09 at 9:57

Since you're running SQL Express your options are a little limited for auto failover.

Setting up NLB will take care of your web traffic but you'd need to manually fail over your SQL installation by restoring a backup if you've not rolled your own version of log shipping etc.

Live Migration etc on a cluster would be nice but you'd need shared storage etc to get it running.

Since you're happy with manual intervention then you're proposed set-up sounds fine. As long as you've got your SQL backups and any IIS content getting copied between the servers then a setup with NLB should work fine.

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.