How Server Virtualization WorksServer computers -- machines that host files and applications on computer networks -- have to be powerful. Some have central processing units (CPUs) with multiple processors that give these servers the ability to run complex tasks with ease. Computer network administrators usually dedicate each server to a specific application or task. Many of these tasks don't play well with others -- each needs its own dedicated machine. One application per server also makes it easier to track down problems as they arise. It's a simple way to streamline a computer network from a technical standpoint.
There are a couple of problems with this approach, though. One is that it doesn't take advantage of modern server computers' processing power. Most servers use only a small fraction of their overall processing capabilities. Another problem is that as a computer network gets larger and more complex, the servers begin to take up a lot of physical space. A data center might become overcrowded with racks of servers consuming a lot of power and generating heat.
Server virtualization attempts to address both of these issues in one fell swoop. By using specially designed software, an administrator can convert one physical server into multiple virtual machines. Each virtual server acts like a unique physical device, capable of running its own operating system (OS). In theory, you could create enough virtual servers to to use all of a machine's processing power, though in practice that's not always the best idea.
Virtualization isn't a new concept. Computer scientists have been creating virtual machines on supercomputers for decades. But it's only been a few years since virtualization has become feasible for servers. In the world of information technology (IT), server virtualization is a hot topic. It's still a young technology and several companies offer different approaches.
Why Use Server Virtualization?
- Server virtualization conserves space through consolidation. It's common practice to dedicate each server to a single application. If several applications only use a small amount of processing power, the network administrator can consolidate several machines into one server running multiple virtual environments. For companies that have hundreds or thousands of servers, the need for physical space can decrease significantly.
- Server virtualization provides a way for companies to practice redundancy without purchasing additional hardware. Redundancy refers to running the same application on multiple servers. It's a safety measure -- if a server fails for any reason, another server running the same application can take its place. This minimizes any interruption in service. It wouldn't make sense to build two virtual servers performing the same application on the same physical server. If the physical server were to crash, both virtual servers would also fail. In most cases, network administrators will create redundant virtual servers on different physical machines.
- Virtual servers offer programmers isolated, independent systems in which they can test new applications or operating systems. Rather than buying a dedicated physical machine, the network administrator can create a virtual server on an existing machine. Because each virtual server is independent in relation to all the other servers, programmers can run software without worrying about affecting other applications.
- Server hardware will eventually become obsolete, and switching from one system to another can be difficult. In order to continue offering the services provided by these outdated systems -- sometimes called legacy systems -- a network administrator could create a virtual version of the hardware on modern servers. From an application perspective, nothing has changed. The programs perform as if they were still running on the old hardware. This can give the company time to transition to new processes without worrying about hardware failures, particularly if the company that produced the legacy hardware no longer exists and can't fix broken equipment.
- An emerging trend in server virtualization is called migration. Migration refers to moving a server environment from one place to another. With the right hardware and software, it's possible to move a virtual server from one physical machine in a network to another. Originally, this was possible only if both physical machines ran on the same hardware, operating system and processor. It's possible now to migrate virtual servers from one physical machine to another even if both machines have different processors, but only if the processors come from the same manufacturer.
Three Kinds of Server Virtualization
Full virtualization uses a special kind of software called a hypervisor. The hypervisor interacts directly with the physical server's CPU and disk space. It serves as a platform for the virtual servers' operating systems. The hypervisor keeps each virtual server completely independent and unaware of the other virtual servers running on the physical machine. Each guest server runs on its own OS -- you can even have one guest running on Linux and another on Windows.
The hypervisor monitors the physical server's resources. As virtual servers run applications, the hypervisor relays resources from the physical machine to the appropriate virtual server. Hypervisors have their own processing needs, which means that the physical server must reserve some processing power and resources to run the hypervisor application. This can impact overall server performance and slow down applications.
The para-virtualization approach is a little different. Unlike the full virtualization technique, the guest servers in a para-virtualization system are aware of one another. A para-virtualization hypervisor doesn't need as much processing power to manage the guest operating systems, because each OS is already aware of the demands the other operating systems are placing on the physical server. The entire system works together as a cohesive unit.
An OS-level virtualization approach doesn't use a hypervisor at all. Instead, the virtualization capability is part of the host OS, which performs all the functions of a fully virtualized hypervisor. The biggest limitation of this approach is that all the guest servers must run the same OS. Each virtual server remains independent from all the others, but you can't mix and match operating systems among them. Because all the guest operating systems must be the same, this is called a homogeneous environment.
Which method is best? That largely depends on the network administrator's needs. If the administrator's physical servers all run on the same operating system, then an OS-level approach might work best. OS-level systems tend to be faster and more efficient than other methods. On the other hand, if the administrator is running servers on several different operating systems, para-virtualization might be a better choice. One potential drawback for para-virtualization systems is support -- the technique is relatively new and only a few companies offer para-virtualization software. More companies support full virtualization, but interest in para-virtualization is growing and may replace full virtualization in time.