18

I'm after a second opinion; and apologies if this has already been answered (point me in the right direction).

Different factions within a project I'm on are engaged in a holy war between virtual vs physical servers. We're implementing a COTS IBM document management system (DB2, etc).

General wisdom is that we should virtualise everything, and our vendor partner supports this view; some of the propeller heads at work are against this, particularly for the central metadata server (basically a big DB2 database).

My problem is that I come from a developer background (I know squat), so an independent view would be welcome.

What's the skinny on virtual vs physical? When should you - or should you not - virtualise? General advantages / disadvantages, etc. My starter for 10 - shoot me down...

Virtual:

  • Good for DR (you can setup a new instance on a different VM Server if the one your on fails, i.e: the physical box your running on)
  • Bad for certain database senarios?
  • Slight performance hit (not sure of specifics)
3
  • This seems like an obvious question, but finding good answers has been a little difficult.
    – Adrian K
    Jan 22, 2010 at 5:15
  • too many unknowns! The best answer is it depends. Jan 22, 2010 at 5:24
  • Yeah - sorry :) All the servers for this particular solution will be windows based. Both database and application components. VMWare is the virtualisation platform used in-house. User base is around 1500 users, but we don't have accurate stats regarding actual useage, concurrent users, etc.
    – Adrian K
    Jan 22, 2010 at 6:09

3 Answers 3

25

Broadly speaking if the virtualisation platform you currently run fully supports the guest OS you're intending to run, virtualisation is a good move. There are some use-cases that warrant more careful inspection:

  • Terminal Services (or services with very high user-concurrency)
  • Funky flavours of Linux
  • Database or Email servers
  • Servers with unusual peripheral attachments
  • Servers with unique/very high resource requirements

In your specific case, look at the number of concurrent users your system will need to support, and the kind of physical hardware specs you'd need to run it as a physical machine. If it requires a 4-processor, quad-core beast with 32Gb of RAM and a local 6-disk SAS drive stripe, it's not a good candidate for virtualisation. If it has high requirements on any one of those aspects (e.g. just needs an ultra-fast disk) it's in the 'maybe' pile and needs a round of testing before making the decision.

If the database would run fine on a basic 1 or 2 processor server with a modest amount of ram (under 8Gb) and disk throughput isn't excessive, virtualise it.

If the choice you're making is between purchasing brand new hardware for the system, or virtualising onto your existing VM infrastructure, then virtualise it first and migrate to a physical server only if required. The hallmark of a well planned server is that you can easily re-build it again on-demand ;)

3
  • 4
    Chris speaks wise words. We face a similar issue with a call recording and screen capture product we were purchasing. We ended up using 1 hardware server due to possible high I/O issues, moderate cpu loads and the needs for a physical piece of hardware to be in one of the servers. The other 2 servers were virtualized and the database being put on the SQL cluster. It worked out well for us. If you are going to be using multiple servers, evaluate it on a per server basis.
    – aduljr
    Jan 22, 2010 at 6:01
  • Thanks Chris - definitely a candidate for the 'accepted' answer, I'll see what else comes in over then next couple of days,. thanks :)
    – Adrian K
    Jan 22, 2010 at 6:11
  • Excellent and succinct answer.
    – Helvick
    Jan 22, 2010 at 7:28
3

Such a topic has to be considered in the context of your environment and cannot be definitively answered for you as a general concept. You need to consider everything, starting with whether or not a virtualised machine can provide the performance you require. This includes such things as the storage system being able to keep up. That of course tends to be the big issue for database systems. I'm of the opinion that this needs to be well tested before a final decision is made. If you can't test it the risk may be too great.

I'm personally not a fan of virtualisation but that's at least partly due to the environment in which I work, and have worked previously. One of the problems is that you tend to have too many eggs in one basket. If that hardware breaks down ALL your virtual machines on that server go crunch. That's fine if you're at the scale of having spare hardware, or at least being able to get hold of some NOW, but that's not the world I work in.

3

We run our servers in both virtualized environments as well as in their native environment. This goes for both our Linux based servers as well as our Windows Servers and Desktop. Saying one is better than the other is going to completely depend on what you need to do. Sometimes Virtualization is better, sometimes not.

Virtualization Pros:

  • Ease of backup
  • Ease of Setup (from cloning)
  • Can get close to using all of a hardware's resources (which often go unused)

Virtualization Cons:

  • One box goes down = many servers go offline
  • Cost. Licensing is often expensive if you would like to control multiple machines from one VMWare client.
  • Cost. Licensing is expensive if you want to support more than two processors

One final note. Virtualization works great for running regular servers and desktops but be really careful when you need to have a setup that is a little less traditional. For instance, we had two webservers that connected to a network attached storage device with no problems when they were not virtualized. The minute we moved them into the virtual environment we suffered terribly because our virtualization equipment didn't play well with out storage device (I/O issues). So do your hardware homework before you try a complicated setup (pretty much goes without saying).

Last thing, virtualization is great and has come a long ways. I love it for many things. BUT unless you really need to set up some more servers AND you don't have the hardware, it may not help you out much.

The biggest advantage we've gained from virtualization: Physical Space.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .