There is a new snake oil on sale and its name is Server Virtualization.
The salespeople at VMWARE and other server virtualization companies are really good at their jobs. Somehow they have convinced companies that virtualized server environments are better than bare metal installations. You must be kidding.
I have two clients that are using server virtualization.
The first is running a large SQL Server installation on a virtualized set of servers at a hosting company. This is a high availability and supposed to be a high performance system. My question is this: How are you ever going to be able to take full advantage of the hardware underlying your system if you have put a virtualization system over the operating system?
At the second client we had 8 batch processing machines. These machines run 24*7 and process file transfers, data transformations, data cleanup, data scoring, etc… At least we did have 8 machines. What we have now is a set of 8 virtualized machines running on one big box… Not too long after the installation of this environment you know what happened? The single box we use crapped out hard. So now we had 8 dead virtual machines. In the old arrangement we had 8 machines reducing the potential footprint for hardware failure. Now we have one big point of failure. How does this sound like a good idea?
Virtualization is a great tool for developers. I feel it is entirely inappropriate for server environments.
Does your company use virtualized servers? Do your clients use virtualized servers? Good idea or bad idea?
crossposted from blog.dashpoint.com
Sounds like the environment was setup improperly. Overloading a physical machine and putting all of your eggs in one basket is not a good idea. However, if backups were being done properly, I would guarantee that those 8 VMs could be back online in a fraction of the time it would take to bring 8 physical servers online. When done right, Vmware beats the hell out of the dependency on a hardware platform….
Like with all technologies, it must be used correctly. In the example of 8 batch processing machines reduced to 8 VMs on one box, that is just dumb! Obviously you lost your redundancy and what happened will happen. There is a concern of losing some of the physical system resources to handle the hypervisor function but the benefits outweigh this.
With vistualization, you get the flexibility of moving VMs around, for whatever reason. Let us say you need to take down a physical box, you can move the VMs to a different physical box. Let us say the physical box takes itself down, a VM can be moved to live server.
For the 1st scenario – you can’t just blindly say that virtualization == unacceptable performance. While it’s true that you’d get better performance without the virtualized layer, whether that hit is acceptable or not is a matter of context. When you can afford to beef up the hardware (perhaps because you’re saving on cooling, hardware, and admin costs) then you can still come out ahead. After all, we pay for the decreased performance of having general purpose HW, OS, and .NET with greater developer productivity.
For the 2nd case, just because you had 8 servers doesn’t mean they were 8 *independent* points of failure. Unless they were redundant (doesn’t sound like it) you actually had 8 single points of failure. Now you have 1 single point of falure…sounds like a win to me. Everything else being equal, 1 of your 8 servers will always fail more than your 1 server (and usually, honking large 8+ way boxes are built with more internal redundancy than single proc servers. Also, with decreased HW and OS’s, admins should have a better chance of keeping the 1 server running. Both of which should *increase* reliability of the 1 server solution.).
The only proper reply to this badly informed rant is: virtualization does not compensate for incompetence.
Certain work loads are contra indicated today.
Applications which require high IOPs (SQL Server) are not great candidates for virtualization today because the disk performance of most virtualization platforms blow.
However applications with low IOP requirements (Web Servers, etc) are great candidates.
We virtualize all of our web load today because it makes it very easy to migrate it to new servers or our backup data center. i.e. we keep the virtual server images on our SAN. If we have a hardware failure we remap the LUN to a new box with Virtual Server running and boot the VM back up. We replicate the SAN to our backup data center at HP which allows us to mount the LUNs and have our web and application tiers (~35 machines) back up in 10-15 minutes.
Also great for consolidation of applications that are rarely used but have different and incompatible platform requirements. Especially older applications running on NT4 for example that you can’t even find new hardware that has NT4 drivers to run it on. Collapse several of those onto a dual quad core and you can eliminate a large number of servers with little or no impact on users of the applications while saving quite a bit in power and cooling.
Rod, I think you just got the wrong impression about the technology because of a specific misuse experience. Virtualization is a very interesting technological breakthrough that has been helping many organizations. As with everything in life, it’s a matter of evaluating its applicability. Great comments everyone.
This is what I love about codebetter.
Thanks for the great comments and even blog posts Ayende
Seems like the 1st client case I was right on. High CPU utilization apps are probably a bad candidate.
But lower CPU cases are a good candidate as long as you do some clustering/redundancy.
I never did think of the power angle.
Thanks All.
I agree with the other commenters, you can’t judge virtualization on a poorly implemented system. If you wanted resilient failover and redundancy then you still needed to implement that in hardware of your virtualized system, which you didn’t. No doubt, you didn’t have redundancy in your original system either, apart from the fact that if hardware failed you could manually move tasks to another server.
Virtualization won’t magically make one machine able to do the work of 8 – using virtualization in that way is just dumb. Judging the merits of virtualization on that misguided use is not too bright, either.
It’s got some great uses as a server environment. All of the comments above me have explained it quite well.
It is great for processes that don’t use much CPU on under-utilized servers. But, you’re right, if the process(es) that you are running on that server require a lot of CPU or other resources, it doesn’t make sense to virtualize it.
I’ll go with – It is a good idea.
But don’t use it blindly. Everything in life has it’s tradeoffs and benefits, but I’d rather have this in my backpocket, than not.
I worked in the corporate IT department of fairly large company and we found virtualization to be very beneficial but in a different way than you’re talking about. We had a large number of lightly used one-off apps, each with their own requirements which frequently involved various versions of Crystal Reports that don’t play well together (ARGH!)
By pushing these different apps into their own virtualized servers we significantly decreased the maintenance overhead since we no longer had to test upgrades of each piece of software to make sure that they weren’t going to break other apps running on the same instance of windows, we only needed to make sure it didn’t break its self in the process.
It’s good for us. We had 32 servers and a real power supply issue which put us in stalemate: the AirCon was struggling, but we couldn’t upgrade due to the power to the building.
The trick with VMWare is to have a cluster of hardware running it. In our case, 32 servers became 4 running ESX and VMotion. With all the data and server images stored on our SAN with failover at every point; we can lose disks, switches, PSUs, and hosts, and still keep running with practically no noticable break in service.
The server room is now sub 20 degrees Celsius, with the aircon aiming for 18. We’ve reduced our power usage by over 30 percent, too.
We got a nice bonus for “free”: the now-redundant spare servers and two racks are being consolidated and moved out to one of our other sites for Disaster Recovery.