In today's never-ending crusade to reduce IT costs, various techniques are used to squeeze every drop of computing power out of servers.
One popular technique is consolidation. Through consolidation, under used servers are subdivided into smaller, more usable pieces. And with these pieces, you generally achieve greater server performance overall. Often, it completely eliminates the need for some of the physical servers.
A variety of subdivision methods exist and they take many forms -- from the physical partitioning of big iron servers to various software techniques such as virtual machines (VMs). We covered popular VMs such as VMware Inc.'s GSX Server and ESX Server and Microsoft's Virtual Server 2005 in previous articles.
SWsoft Inc.'s Virtuozzo is an entirely different take. It virtualizes the OS -- either Windows or Linux -- into multiple virtual private servers (VPSs). Whereas hardware partitioning was born largely from the need to contain hardware faults, VMs were born from the need for finer-grained subdivisions and increased efficiency. VPSs (sometimes called containers) continue this trend, providing even finer-grained and lower-overhead subdivisions.
Here's how it works: Each VPS is logically isolated from other VPSs running on the same server and each VPS can be stopped and rebooted independently. Users can do just about anything on a VPS that they would be able to do on a standalone server; Each VPS has its own set of admins, users, processes, files, applications and network addresses. The bottom line is that each VPS looks and feels like its own physical standalone server, and they offer the illusion of multiple dedicated servers at a fraction of the cost of dedicated servers or VMs.
One popular VPS use is Web hosting, where it has distinct advantages. A Web-hosting provider can grant administrator privileges for a VPS to any user, without giving that user administrator privileges to the physical system on which the VPS lives. VPS solutions also provide a higher level of security, because all accounts are encapsulated within a single VPS and separate from accounts within other VPSs on the same server. Everything is separate and isolated.
Another good use of VPS technology is development and testing. Most software faults occurring within one VPS will not affect other VPSs. In this environment, a developer can more easily debug software. For example, test and production environments could simultaneously be running in different VPSs on the same server without the need for several physical servers.
Both VPS and VM technology present a user with the illusion that they are running on their own dedicated server. But there are major differences: VPSs virtualize software, whereas VMs virtualize hardware.
All VPSs run exactly the same OS -- version and all -- as the host server. For example, SWsoft's Virtuozzo for Windows product virtualizes Windows Server 2003. In controlled release (i.e. "beta") it is already in production use by a number of service providers. Using this product, each VPS presents a separate Windows 2003 environment to its users. If the host server is running Microsoft Windows 2003 SP1, then all VPSs will be running SP1. In comparison, each VM on a host server could contain a different OS, or a different OS version. With VMs, Linux, NetWare, Windows NT, Windows 2000, Windows 2003 and several others besides could all run simultaneously on the same physical server.
When it comes to flexibility, VMs are the winners. VMs -- especially those from VMware -- have quite mature tools for managing multiple revisions of systems, applications and data as they move through the installation, test and production process.
But there is a price to pay. VMs incur more overhead -- and often, far more overhead. Virtualizing the hardware, especially current x86 hardware that was never designed to be virtualized, is more costly than virtualizing just the OS software layer. While these x86 deficiencies will soon be addressed by Intel Corp.'s VT and Advanced Micro Devices Inc.'s Pacifica technologies, today's VPSs are much more lightweight. One server might support 10 to 15 not-too-busy VMs, but perhaps a hundred or more not-too-busy VPSs. For service providers, the lure of using one server to host tens or hundreds of Web sites is very enticing.
Some rules of thumb apply to both VM and VPS virtualization techniques: Any workload that is either very CPU-intensive or very I/O-intensive is not a good candidate. Put intensive workloads -- like your Exchange and SQL Server instances -- on their own separate physical systems. In general, heavily used back-end systems are not the best candidates for either VM or VPS techniques. Servers in the front-end, and to a lesser degree the middle tiers, are more viable candidates.
Another common issue is the strategy of "putting all your eggs in one basket." If the physical server goes down, and it happens to be hosting 15 VMs or 100 VPSs, all of those VMs and/or VPSs will go down. If you're putting more eggs in a basket, better protect that basket well!
In summary, VPSs are effective and very efficient when you use them in certain environments. In Web hosting, VPSs provide more flexibility and control than traditional virtual Web hosting solutions, and they do this with extremely low overhead. VPSs are more economical than VMs, while VMs are more economical than dedicated servers.
But VPSs have their drawbacks. A VPS environment is not as flexible as VMs. Nor are VPSs as failure-isolated as VMs or separate servers. All of these characteristics should be taken into account to determine the best solution for the computing power needs of your customers.