The result of properly managed virtualisation is a lower-cost, more efficient operation. "It all comes down to cost at the end of the day," says Chris Stucker, manager of systems, networks and services at Applied Extrusion Technology (AET), a maker of plastic films. Stucker says his server support costs have dropped significantly. "Many of those were older servers, and we were paying a premium for support based on that," he says.
He could not provide specific savings statistics.
On a typical day, AET is running between 45 and 55 virtual servers on its three blade servers supporting company headquarters and three manufacturing plants in the US and Canada.
However, this rosy picture applies only if the virtualised servers are properly managed. There are several places where managing virtualised servers can go wrong.
Part of the difference between physical and virtual servers is nonlinearity. In the world of virtualisation, two plus two sometimes makes three, or six.
"Nothing is really linear," says Derek Anderson, the lead developer for Enomaly's Enomalism product, a tool for Xen's virtualisation platform. "You get weird overlaps."
Different applications require different amounts of resources. Databases use a lot of RAM and processor cycles, web servers make a lot of disk accesses, and so on.
Part of efficiently allocating resources depends on the timing of the loads. Anderson provides the following example, which he says comes from an actual case study involving a global financial services company.
A physical server running virtual servers to support users in the UK and Japan during the business day will probably be fine. The same server running virtual servers supporting users in New York and Florida is likely to have a problem - because of their time zones. Japan and the UK are about 12 hours out of sync. Florida and New York are both on Eastern Standard Time. In the first case, the load profiles tend to cancel. In the second, they bump into each other.
So, each virtualised server needs a share of the resources of a physical server. For maximum efficiency, the virtualised servers' resource needs should complement those of the other virtual servers on the same physical box. In general you want to distribute applications with similar resource demands over different physical servers.
The physical server is where the contention occurs. Most of the time you're only running one application per VM because things are cleaner and easier to manage that way.
Think of it as trying to fit a lot of different-size blocks (VMs or application stacks) into a series of same-size boxes (physical servers). If you try to put all the blocks of the same size into one box, you'll probably need more boxes than if you mix up the size of the blocks to make the best use of the space in the boxes.