Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I sometimes hear things like "we have 5 servers, with 20 virtual xen instances". Why would you do this? What advantages does this have? Is it so you get the redundancy of multiple servers from only one box or what?

share|improve this question
add comment

5 Answers

up vote 9 down vote accepted

The major advantages are:

0) if most of the 20 servers are idle most of the time, they will have no problem co-existing on five actual hardware servers, and you save the cost of 15 hardware servers.

1) if the servers need to be available all the time, you can use the "live migration" features of VM systems to migrate the virtual servers from one hardware server to another. That way, if you need to take down servers to upgrade the OS kernel, or install more RAM, or whatever, you can simply migrate the virtual servers from machine to machine as you do the work; you can take down all five servers and bring them up without any interruption in service on the virtual servers.

2) Security. If each service you offer (email, web, printing, database, etc) lives in its own virtual machine, then it's harder for an attacker to take them all down at once. If an attacker manages to get root on a server that is running a bunch of stuff, he can mess with all the stuff; if he manages to get root on a virtual server that contains only the web server, he can only mess with the web server.

3) If you have a virtual server that suddenly becomes very very busy, you can live migrate it to a more powerful hardware server. Virtual servers let you better trade off your faster hardware and your cheaper hardware.

4) If you have software that is very sensitive to OS setup, or otherwise difficult to install, you can get it installed in a virtual machine image, and then keep running that same image even as the world evolves around you. You can upgrade the OS, upgrade the hardware, keep on upgrading stuff, but the virtual machine stays the same. I suspect this is more of an advantage for people running old desktop software (especially really old games) on desktop VM systems.

Just do a Google search for "advantages of virtualization" and you will quickly find several long articles discussing it.

share|improve this answer
    
"especially really old games". Really? Running old games is a virtualisation driver? I'm not convinced... :) –  Daniel Lawson Oct 10 '09 at 7:46
    
It is a lot easier to get games from the 1990s running in Windows 98 under virtualization than it is to get Windows 98 to install on a quad-core with SATA drives. And once you have them running, you can keep them running in to the future, even as ever-more-strange hardware appears. I don't know how many people will do this, but VirtualBox is free, so why not? –  steveha Oct 10 '09 at 7:57
add comment

There's multiple reasons to do this.

  1. Flexibility for the future. If you start off with each type of server as a virtual instance, later when you need to scale up one of the types it's trivial to peel it off onto something else. If you start with all services running on one regular server it can be difficult to separate one thing. Which service is it that needed that one special tweak again?
  2. Conflicts. Some software doesn't play well with other software. Anything that needs a special kernel tweak, for instance.
  3. Having each VM/system have a single job can help reduce complexity.
  4. Depending on your setup, redundancy can be one. If you have 5 physical systems running 20 VMs/instances that can actually fit on 4, you might be able to migrate the VMs all off of one system, then shut that one down to perform maintenance. Do that round-robin and you might not have downtime, or downtime that's measured in milliseconds. Or if your 20 virtual instances are providing 5 different services so that everything is redundant, your services aren't affected (or are only affected for milliseconds) if a physical server goes down.

There's plenty of other reasons to virtualize, but those are the ones I could think of off the top of my head.

share|improve this answer
add comment

Why would you do this?

I agree with most of the other responses. But I believe the biggest reason asides from the technical is purely financial. It's cheaper to virtually run machines both from a purchasing standpoint and costs over time (maintenance, electricity, parts, etc.). If you do the math, you're essentially eliminating a lot of hardware while still maintaining a reliable level of uptime/redundancy depending on all the factors at play. Why pay for more hardware when less will work equally as well? And in this economy... you'd hope the IT dept. was smart enough to move towards virtualization.

What advantages does this have?

Asides from the cost, it's more flexible than a 1:1 host/OS ratio. If you have 5 non-virtualized servers and one goes down or needs repair/maintenance that server is not providing service. This can be critical to a business that requires high uptime. If 2-3 virtualized servers need repair/maintenance, you can do so without the downtime by moving virtual machine guests (the OSes themselves) onto another host without any downtime. Try doing that with a non-virtualized server.

Take your example: "we have 5 servers, with 20 virtual xen instances". Assume that each server has 4 virtual instances (guests). Well, if two of the servers go down for maintenance or an emergency, virtualization can automatically move those guests over without intervention to hosts that are not failing. Thus shifting 8 guests onto 3 other servers. Disaster is avoided. Changes and fixes can be made without interruption in service. Less hardware costs. Users are completely unaware of anything happening at all. Sysadmins smiling as headaches were averted.

Is it so you get the redundancy of multiple servers from only one box or what?

Not "one* box. You need at least two hosts or more. If you do everything in one box, you've eliminated a key feature in virtualization: live migration/failover. If you were a business owner, would you rather spend more money on hardware and still have to worry about possible uptime issues? Or would you rather buy a virtualized solution, spend less money on hardware (and overall costs) while having the benefit of live migration should an emergency/disaster arise?

share|improve this answer
add comment

Efficiency is another one, most non virtuized servers only use a fraction of their hardware resources. Virtualizing allows you to make better use of your hardware while still keeping things isolated. This allows companies to reduce the total number of physical servers.

share|improve this answer
add comment

advantage over what?

  • over 20 physical servers? cost.
  • over 5 physical servers? more servers.
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.