How to Achieve High Availability for SMB using virtualization

high-availabilityvirtualization

For a small business (less than 50 person environment) with between 10 – 20 virtualizable servers and a very modest hardware/software budget. Servers would server your vanilla setup (LDAP/AD, DNS, NTP, Web Servers, SQL Server, File Server etc…) How would you achieve HA?

  • Servers have very little CPU usage.
  • Modest RAM requirements (1GB/server
    avg)
  • Small Disk IO
  • Budget in the range of $10 – $15k for hardware/software
  • Total HDD Needs in the range of 4TB – 8TB

Best Answer

As others have mentioned above; it depends on your actual requirements for availability.

Option 1) I know what it means and I really need HA and Fault Tolerance.

Assuming you want a decent level of availability. I would budget at least $50,000 to $100,000 as a starting point.

Lets assume for easy maths you have 20 users who need access to LDAP and File sharing. To do this you run up two physical machines attached to a SAN (required for most mid range virtualisation technologies). Physical machines run VMware with 2 virtual machines running Windows as AD replicas and file sharing.

Costs so far (REALLY rough maths): Windows + Cals ~ $5,000 VMware ~ $14,000 SAN ~ $35,000 Physical Servers ~ $25,000 (32gb of RAM) Network infrastructure ~ $5,000

Lets call the total $80k and include working/run up costs in there. Lets ignore power and connectivity costs for now.

This will buy you a scenario where your VMware instances can failover very quickly and the internal mechanics of Windows clustering should allow you have fault tolerance. It will allow you to scale out the VMs as required with future growth.

Assuming you now say VMware is too expensive and go with Xen you can drop off the VMware licensing fees however your biggest ticket items, SAN and Physical hardware still exist and you won't ever be able to avoid the Windows licensing. You will also have more administrative overhead and enjoy the wonderful learning curve that is Linux HA. I have not worked with Windows Hyper-V so won't quote there but I expect the hardware costs are unlikely to be reduced.

Option 2) I'd like to be able to recover quickly from a hardware failure

If by HA you mean "I'd like to be able to recover quickly from a hardware failure, but I can have decent maintenance time when I need it", a single Virtual Host with sufficient disk space will likely function, take reliable backups often enough and you will be able to recover to another machine quickly. Buy a decent enough single VM host and your downtime should be minimal.

This will allow you to dip your toes cheaply into virtualisation and learn quickly what you really want.

Option 3) I'm insane and wish to use older hardware I've hoarded over the last decade

Grab three machines, on one you will run Linux with an iSCSI target (I've used ietd with success), on the remaining you will run VMware ESXi. Configure the ESXi hosts to connect to the Linux iSCSI target as their storage and you have a very cheap SAN. Between the ESXi hosts you can manually balance whatever machines you need. If you run two Windows in clustered mode you can lose an ESXi host without too much consequence. Bonus with this is you can add extra ESXi hosts at little cost and transferring guests around only requires a reboot.

If you want to get tricky grab a 4th machine and run Linux DRDB to block replicate the "SAN" for redundancy there.

Ultimately

For any kind of VM machine migration and most clustering/failovers however you will need a SAN and while 4-8tb isn't a lot in consumer or single server storage it is still significant in terms of reliable quick SAN storage.

If you are serious about this I would actually just pick up a phone and ring your favourite vendor (HP/Dell/IBM et al), ask them what they can do for your budget and start from there. They have cookie cutter builds and are proficient at dropping clusters that will suit most shops easily enough.

** The really short answer **

For 50 Vanilla users I simply wouldn't, I'd back a server up often and collect the overtime running my patches on a weekend. The complexity simply isn't worth it, and if it is don't scrimp on costs.

Related Topic