By Peter Bell

Improving Hosting: 4. Virtualization

One of the biggest trends over the last couple of years has been the widespread adoption of virtualization solutions like VM Ware and Virtuozzo by hosting companies. We're now trying to decide whether to implement virtualization for our hosting needs . . .

There are some downsides to Virtualization. It introduces an extra level of indirection between the OS and the hardware layer, so it has some impact on performance. For example, while many people use virtualization for web servers, the approach is not necessarily recommended for dedicated database servers which can show a noticeable performance hit from the extra layer between the database software and the hard drive.

There are also plenty of benefits. Talking with hosters that use virtualization widely, the benefit almost everyone agrees on is that having a pre-configured image makes it MUCH quicker to provision a server as you don't have to install and configure the OS and applications - you just get one image built and then copy the image to the machine. Of course, building a completely new machine still requires configuring a base OS unless you use something like the GSX product from VM Ware which allows for quicker and easier provisioning of servers - but at a cost of having to run approved hardware and pay about $1,000 for the software per server. The base VM Ware product is free, but with its requirement to configure a base OS manually and the lack of support for things like live backup images of running machines, it is a trade off. Of course there is also the benefit of being able to consolidate multiple lightly loaded physical servers into a single machine, so if you have a number of apps that need to be on different "servers" but don't need the whole power of the server, virtualization is an obvious solution.

Clearly with enough servers, virtualization pays for itself very quickly. The same if true if it allows you to consolidate multiple servers or if you have complex configurations required to get your OS running. What I'm trying to decide now is whether it makes sense to go with something like VM Ware for our hosting needs.

My issue is that I need multiple physical servers for redundancy purposes, but I don't have that much load, so I'm tempted to use a handful of $2000 SuperMicro machines with mid level specs (they've served us well to date). From a load perspective we could probably run all of our clients on a single web server and single database server at the moment, and as we port all of our projects to the latest version of our software it is very easy for us to run them all as shared sites on a single physical or virtual server, so we really don't need virtualization for the consolidation benefits.

From input to date I get the impression that we probably "should" be using Virtualization, but with a relatively small number of servers and the fact that we're going to have to install the base OS anyway on each new box, I'm wondering how much provisioning time VMWare would really save us if we're only planning on bringing onstream say 3-4 new servers a year.

I'd really appreciate any input from people who have used the free version of VM Ware in production. How has it worked out for you? Any unanticipated problems? What benefit did it end up providing? Any unexpected upsides? What was the learning curve? Is it worth the effort?!

Any input much appreciated!

Comments
Since you're looking for feedback on the free VMWare Server, I can't help you much there, but I thought I'd mention that the high end product you're thinking of is ESX Server and not GSX Server. GSX Server is the predecessor to the VMWare Server product you're considering. Just to avoid confusion :)

(Btw we've been running several SQL 2005 server installations in virtual servers on our ESX servers for a while now, without problems. The problem with DB servers is you really never know what someone else means by "large" or "heavy load" in these settings, but ours are definately low-utilization DBs for internal use with only a few hundred edits and requests in the thousands pr day. For the huge analysis stuff we have a dedicated box with many spindles and 12GB ram)
# Posted By Tomas Fjetland | 9/6/07 6:21 PM
Hi Thomas,

Thanks for the clarification!
# Posted By Peter Bell | 9/6/07 6:39 PM
One big selling point... virtualisation also allows you to test on different platforms without buying extra hardware. For dev environment, it's a perfect fit as you can turn virtuals on and off as you need them.

Personally, we've had no issues using the VMWare Server free edition for development and production. For obvious reasons we dont use MSSQL/reporting services on virtual servers and we run these as dedicated for various reasons.

Running scripts to back up virtual servers in essential. I would also highly recommend buying the Virtual Centre software as this centralises your management.

I think I covered this a little more in my off-list email.
# Posted By Chris Dawes | 9/6/07 9:38 PM
You need to look at the number of servers you need now and how much you expect to grow in the next couple of years. You might lose 15-20% performance with virtualization, and in some ways it is a big PITA. I wouldn't go down that road without the ESX server and enterprise administration system. When you get big enough to need ESX, then it will be worth it. I went through a virtualization project where the Infrastructure team took a couple of hundred servers down to one half of one rack worth of blades. That was worth it in terms of money, energy, and space, but even then, we went through a lot of pain with the conversion process.

My suggestion is to proceed slowly, maybe do a technology proof with one server to learn the good and the bad of virtualization. Then you can make an informed decision based on your experiences.
# Posted By Rob Munn | 9/6/07 10:10 PM
Thanks for the input guys (online and off!)
# Posted By Peter Bell | 9/7/07 9:26 AM
It depends on your needs.
For a heavy load database server i think a dedicated hardware+os server is better in performance than a virtual one.
If you prefer a virtual server for some applications than a physical one then prefer virtualization built in directly on hardware (like the ESX supervison) than using virtualization software over an operating system.
# Posted By Nik | 9/14/07 7:44 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.