"Virtualization" refers to the process of making a system look like another system or more than one system. Virtualization is usually used to turn a complex system into a simpler one or to make a single system act like multiple, separate systems.
Although virtualization covers a broad spectrum as a theoretical concept, in IT it usually takes one of four specific forms:
- Server virtualization, in which a single server (called the host) functions as several distinct servers (called the guests).
- Network virtualization, in which a single LAN acts as several distinct LANs.
- Storage virtualization, in which a set of potentially different drives appears as one large drive.
- Desktop virtualization, for employees' desktop or laptop operating systems (OSes), which can take several forms.
A major component of virtualization is often a layer that abstracts hardware from its function; for instance, an OS may think it's accessing a CD-ROM drive, when in fact it's accessing the virtualization layer, which in turn accesses the drive (or another data source) and passes the information on. This process should be invisible to a person or application using the virtualized system; they should not be able to tell the difference between it and a system running directly on hardware.
Because of this abstraction, virtualized components don't have to be alike. For instance, a single computer could simultaneously host Linux and Microsoft Windows servers, or a virtualized storage system could consist of different kinds of drives.
One of the chief benefits of virtualization is that it allows you to dynamically reallocate resources. For instance, one common form of virtualized storage is a storage area network (SAN), in which multiple hard drives on a network appear as one volume to a computer. While changing a regular hard drive's capacity is impossible, you can easily increase or decrease a SAN's capacity by adding or removing drives from the configuration.
Server virtualization can be very useful when testing a new system or application. Instead of having to buy a new computer for a test deployment -- or multiple computers, if you want to consider several options -- you can create a new instance of a virtual server. Once the deployment is ready for production, you can easily transfer the virtual server to more powerful hardware, or increase its allocated capacity on the host system.
Server virtualization is also an increasingly common way for companies with multiple servers to save on hardware costs without sacrificing quality. Traditionally, a company buys several servers for its IT functions, each with enough power to handle its expected maximum load for the applications it runs. This approach can be inefficient, as one computer may be running at close to capacity while another is mostly idle.
With virtualization, a single physical computer acts as a host to several guest OSes, each of which appears to users as a complete, independent server. The virtualization layer handles load balancing on the fly, so each guest OS gets the power it needs as it needs it. If one virtual sever is idle, its potential processing power can be used by another. This can save money by letting a company purchase a computer to handle the total expected load for IT instead of having several computers, each of which has enough power for its maximum load but is usually underutilized.
Similarly, a virtual LAN (VLAN) can reserve a certain amount of bandwidth for each of its guest LANs, meaning that certain high-priority packets -- such as voice over IP (VoIP) data -- can travel with a guaranteed rate of success even during high-load periods.
In server virtualization, each virtualized instance is called a virtual machine (VM) (which is also used more generally in computing to describe any software environment that runs within another environment). Since this is not connected directly to hardware, the data that defines a VM -- called its "image" -- can easily be copied or moved, making it possible to back up and restore entire servers: OS, applications, configurations and all.
Virtualization is sometimes used for security purposes, since each virtual instance is -- in theory -- independent. By using virtualization to separate systems, companies try to contain breaches. For instance, a hacker who gains access to one virtual server would not necessarily have access to other virtual servers running on the same host. As with any other technology, however, virtualization is not without its bugs and security holes. For instance, VLAN hopping allows a hacker who has access to one VLAN to gain access to another that's running on the same hardware.
Desktop virtualization is not yet widely adopted, but some experts expect it to take off within a couple years. Technologically, it's very similar to its server counterpart: a system is made into a VM image, which the host then runs. The host computer can either be the user's desktop or laptop, or a centralized server that users then access through thin clients using technologies like VNC or Microsoft Windows Terminal Server.
As with servers, desktop virtualization lets companies cut down on hardware costs and makes it possible to easily back up and restore users' desktops. It also lets IT manage employees' desktops from a central location. And because VM images are just data files that can be transferred, it's also possible to have a hybrid delivery model: Employees use a thin client to connect to their centrally hosted desktop while at the office, but can then load that same environment onto a laptop for use on the road.