A virtual machine (VM), typically has two components : the host and the guest. The host is the virtual machine host server; the underlying hardware that provides computing resources, such as processing power, memory, disk and network I/O, and so on. The guest is a completely separate and independent instance of an operating system and application software. Guests are the virtual workloads that reside on a host virtual machine and share in that server's computing resources.
Virtualization platforms such as VMware vSphere, Microsoft Hyper-V and Citrix Systems' XenServer install a layer of abstraction between the host and guest. This is the virtual machine monitor (VMM), or hypervisor, that isolates each guest from another, enabling multiple guests to reside and operate on the host simultaneously. Abstraction also removes the direct relationship between software and the underlying hardware, so it is possible for a server to host guests with different operating systems and application software requirements. For example, one VM with a Windows guest operating system can readily co-exist with a second VM running a Linux guest operating system on the same physical host server at the same time.
The only requirement is that a host virtual machine (or server) must meet or exceed the minimum hardware requirements for its guest VMs (workload). Since most traditional nonvirtualized servers are woefully underutilized, a host should supply ample computing resources for several guest virtual machines. But as additional guests are added to the host, computing resources -- such as memory or processing capacity -- may be exhausted. This can createperformance problems in one or more guests or can crash guests -- even the entire host -- leading to numerous simultaneous workload outages, which can undermine user productivity. Guests are usually distributed among several available hosts to better distribute each workload's computing demands.
Although most virtualization relies on the concept of "isolated guest instances," some forms of virtualization do not create isolated instances. Instead they create separate areas within the same operating system. Examples of operating system virtualization" or OS virtualization, include Solaris Zones, Parallels Virtuozzo, Linux-VServer, OpenVZ and others. A "zoned" approach presents certain pros and cons. It is more efficient because there is only one iteration of the OS installed on the host. However, every guest zone must run an application that supports the operating system; you cannot have one guest run Windows and another run Linux. Further, a security exploit in the operating system will compromise all of the zones, where an exploit in a fully isolated guest VM would only threaten that one guest.