Virtulization is all the rage these days. It makes a lot of sense for many reasons. Allocation of resources, compartmentalisation of services, security, etc.
One of the things that have enabled the explosion in virtualization is the inclusion of hardware virtulization on the modern CPUs. These days, most (not all) CPUs have either Intel-VT or AMD-V hardware included. Both are good, and both will allow the following products to work at their best.
Most people have heard about VMWare. This is a commercial product, extremely well supported and with a lot of power. However, it is expensive. VMWare is available for desktop virtualization as well as server virtualization.
Oracle/Sun has a free product called VirtualBox. It runs on Windows, OSX and Linux. While not as powerful as VMWare, it is free, and for most people, it does a good job.
Microsoft has a product called Hyper-V for the server environment. I don’t know much about it. Microsoft also has a large suite of products for the desktop, among them are Microsoft VDI Suite, Remote Desktop Services, Windows Thin PC, App-V, and User State Virtualization, and others.
On Linux, there are two different full virtualization products. They are called the Xen Hypervisor, and KVM (for Kernel-based Virtual Machine). Both are good, although KVM seems to be gaining the upper hand. However, the changes that Xen needs in the Linux kernel has recently been fully accepted.
For desktop virtualization, there are products available from Parallels. Parallels has products for virtualization on both Windows and Mac OSX. Parallels also has full server virtualization products.
Another type of virtualization is a container-based approach. The big difference between full virtualization and the container-based approach is that the container-based approach doesn’t create a full virtual machine; rather it creates a container which appears to be a unique machine, but which shares memory, disk, the kernel, etc. The big advantage is that there is virtually (no pun intended) no overhead in this approach. The disadvantage is that the only systems which can run on this must be able to use the same kernel as the host OS. Essentially, on a container-based Linux system, it can only run Linux guest systems.
LXC is another container solution, however LXC is still somewhat immature. Among other things, there is no easy way to manage LXC containers with virt-manager, although that is currently planned for the July release of virt-manager.
Another free product is from a company called Proxmox. Proxmox supplies a free server install called Proxmox VE, which is based on Debian Linux, and uses both KVM and OpenVZ for a very complete virtualization product.
There is also FluidVM. FluidVM, while not free, is not too reasonable. They have license costs of both per server, and per VM per month. They also provide support contracts at a reasonable price. FluidVM supports Xen, OpenVZ and KVM. FluidVM also includes Drag & Drop live migration, IP pool management, networking management, mail alerts, cloning of virtual servers, firewall management and VM templatization support.