What are the risks of running a production web server and database in on a virtual server? Currently we are thinking of using VM Ware server. It seems like a nice solution that will lead to easy backup and restores but what are we sacrificing running virtualized?
You're sharing CPU power and RAM over multiple virtual machines. For VM's that are not running at their max, that's not a big deal
You gain flexibility and ease of backup. You gain the ability to redeploy your server somewhere else in a flash when the hardware breaks down. You get more bang for your buck when buying server hardware because you're making it do more.
VMware ESXi is completely free and will do a great job. Plus if you want to upgrade later on, it's a very smooth process
I'd say the risks of not using a VM are greater. Without a VM, if your hardware goes down you'll be SOL until you get it replaced and restored.
With a VM, if the hardware goes down you can just move the VM files to another VM server and be back up and running within minutes.
Of course there are other downsides: Most VMs cannot utilize more than 2 CPUs (or Cores). Disk performance is slightly degraded and you'll have to share the RAM with other VMs on the server.
But for most servers, I'd say it's worth it.
You're sacrificing performance, however, in most cases the performance you sacrifice is so negligible that the management and footprint gains well offset the loss. Most servers are fair game for virtualization, large DB servers are perhaps one of the exceptions. However you need to ask yourself if your DB server is truly "large", most aren't.
From your question can I surmise that you're looking to run a web server and its associated DB server in 2 VMs on the same physical server? Ignoring security for a moment, would you run them on the same box without virtualization? That is, do you feel that a single box is powerful enough for the load? If so, I think you'll find running VMs on the box is fine too.
One other thing you do give up is physical separation. If you're running a web server and its DB server, if one goes down you're dead anyway, so no big deal. But if you were to run your web servers and its redundant partner on 2VMs on a single physical box then you're being silly (and I've seen it.) If you lose the physical box then you've lost both web servers, bad place to be.
What's considered a "large" DB? I figured web servers are the safest bet for virtuals. What about Application servers that do a lot of crunching (image, audio, video processing)?– iamgoatMay 1, 2009 at 21:57
2It's a performance question... answer is... "It Depends." Seriously though, it does depend on the business requirements and the size of thy physical host. "Too Big" for a host that's 1G w/a single core and 1 local disk is very different from "too big" for a host w/ 8 Cores, 32Gig, and multiple FC connections to a SAN. As for servers that crunch... are they saturating your CPU now? If so, what else would you run? You'd be competing for CPU resources. Then again, if you threw a file server on there w/low usage, or a DC, that might be ok. (Neither is a huge consumer of CPU)– WaldenLMay 1, 2009 at 22:08
The risks for VMware Server are too great! Server is a hosted virtulization solution, and as such is at the whim of the guest OS. Even being the VMware fanboy I am. I would rather see you go with a VMware competitor then rely on server. VMware server is FANTASTIC, but like VMware workstation or virtual server 2005... if the host OS has issues All your VM's have issues. With Hyper-V/Xen/ESXi all being free... use a real hypervisor!
looks like all your looking for is consolidation, and in the free space their is little difference. Use the vendor your most comfortable with, but use a real hypervisor. With bare metal virtulization (from any vendor) I would put the impact at nill. If anything your app will perform better due to improved flexibility.