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)
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:
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 ;)
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.
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:
Virtualization Cons:
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.