Virtualization isn't a new concept. Computer scientists have been creating virtual machines on supercomputers for decades. In the last few years virtualization has become more practical for small, medium and large organisations. 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. Virtualization is a method of running multiple independent virtual operating systems on a single physical computer.

Servers - Computers that host files and applications on a network and make these resources available to other computers -- Servers are usually powerful with multiple central processing units (CPUs) that give these servers the ability to run complex tasks easily. Computer network administrators usually dedicate each server to a specific application or task. Traditionally these tasks ran on its own dedicated machine. One application per server also made it easier to track down problems as they arise. There are a couple of problems with this approach, though. 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. Another issue is that companies would spend a fortune trying to keep the servers cool.

Server virtualization tries to address these issues by using specially designed software.  An administrator can convert one physical server into multiple virtual machines. Each virtual server acts like an unique physical device, capable of running its own operating system (OS).

*Server virtualization conserves space.  For companies that have hundreds or thousands of servers, the need for physical space can decrease significantly.

*Server virtualization allow companies to consolidate multiple services and applications onto one server.

*Virtual servers offer developers 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, developers can run software without worrying about affecting other applications.

There are three ways to create virtual servers: full virtualization, para-virtualization and OS-level virtualization. They all share a few common marks.

Full virtualization - The physical server is called the host. It means, the machine that will be running the VMs. The virtual servers are called guests. It means any operating system that is supported. The virtual servers behave like physical machines. Each guest server runs on its own OS -- you can even have one guest running on Linux and another on Windows. 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's the tool that creates and run the VMs, example virtual box. It serves as a platform for the virtual servers' operating systems. 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.

Para-virtualization - 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.

OS-level virtualization - 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.

In the early days of server virtualization, when it came to virtualization software there was only one game in town: VMware. Today, several companies offer virtualization software. Some of it is proprietary, but other programs are open source, created and distributed by the public, rather than a corporation. Here are some of the big players in virtualization software:

FreeVPS
Microsoft Virtual Server
Virtual Box
Parallels
Qemu
SWSoft
Virtual Iron
Virtuozzo
Xen

Cloud computing and virtualization goes well together. That's because without the virtualization we couldn't host an OS in the cloud. However Server Virtualization and Cloud computing differ in a few aspects: The cloud user is no longer aware of physical machines, they are completely managed by the cloud provider. A cloud provider would typically not offer an OS container (like the virtual server), but a specific execution service: storage (file and database), computation (application server) and presentation (web server with various protocols). Nevertheless virtualization is a step in making the cloud work for you.