Or maybe “Why you should not virtualize all your servers?”
Virtualization is now everywhere and the benefits are obvious:
- Better responsiveness at deploying new services
- Benefit from Virtual Appliances
- Security of services in sperated in different containers
- Economy of scales with less hardware, power and cooling
- Easy testing using clones
- Simplified backup and restoration independently from hardware
- Easy to scale and migrate
- Better manageability
And I guess few more could be added. However, as most of the time in IT, some solutions sometime create more problems than they solve!
When not to Virtualize?
Performance Requirements
Yes, modern Hypervisors are fast but when you need the best performance you can get with the hardware you got, you might be better off bare-metal.
This might be the case dealing with database servers as explained by Brent Ozar in his article about getting the best SQL Server performance on a tight budget for one of his customers.
High Availability Considerations
Enterprise Class Virtualization Solutions provide great and simple HA features. Why Virtualization could decrease your availability? Consider this: There is 2 threats to the availability of your services:
- Hardware failure. The server goes down, VMs are restarted in another member of the Virtualization pool. The service might be back even before you notice the failure.
Users may compain of a slow down because of the load being spread on fewer servers but it should do until you fix the problem. - Software or human failure. The filesystem got corrupted, an update went very wrong, unexplicable blue screens… Virtualization doesn’t protect you against that, if the VM is broken, you just have to get the latest VM Backup, the latest Data Backup and spend painful minutes restoring and praying that no data is missing.
So if you need to higest availability you can get, you may want to consider other solutions before commiting your budget to virtualization.
Another aspect you might want to consider is the “SAN” vs “Share-Nothing”.
In a ”Share-Nothing” HA setup, if a server fails brutally, there is no way to restart the VM it was hosting, execpt to move its disks to another server laying there. If any! And with compatible RAID controller… Trust me, you don’t want this to happen.
This problem doesn’t exist in a “SAN” HA setup (The hard drives of all VMs live on a shared storage), but if the SAN has a problem, all hell brakes loose! (It’s quite rare but it happens, especially if the staff is not trained with the hardware and there is no proper monitoring).
That’s why you need to be exaclty aware of the availability requirement of the business before making any choice. Make sure the business people understand the financial and business inpact of each solution.
Specific Hardware
Some software require Dongles for licensing purposes. If it’s possible to map USB devices over a network, in my experience it may not work with dongles for licensing purposes.
Better safe than sorry, make the test before purchasing your virtual infrastructure!
Dependency Loop
Using XenServer, I use ActiveDirectory to delegate some administrative permissions on VMs. But guess what? If my ActiveDirectory is a VM itself, we created a dependency loop: I need AD to have AD.
My advise on this is to have at least one Domain Controller than is not virtual.
Licensing Considerations
Some software specify in their license agreement that it is forbidden to install them in a virtual environment. You didn’t know about that? Well, me neither before searching about it.
Conlusion: Virtualize or not?
Maybe the best advise that can be given to an IT: Sit down with the business people, and make sure you understand what are their requirements. Also make sure, before implementing (or not) virtualization that the risks are understood and approved, especially about HA.

Pingback: Should I reuse my old servers? » Martin DENIZET