A virtual machine (VM) is a separate and independent software instance that includes a full copy of an operating system and application software. A physical server prepared with a server virtualization hypervisor such as Microsoft Hyper-V, VMware vSphere or Citrix XenServer can host multiple VMs while maintaining logical isolation between each machine. Each instance can then share the server's computing resources -- dramatically increasing physical server hardware usage.
Server consolidation is the most compelling benefit of VMs. A typical non-virtualized application server may reach just 5% to 10% utilization. But a virtual server that hosts multiple VMs can easily reach 50% to 80% utilization. The net result is that more virtual machines can be hosted on fewer physical servers, translating into lower costs for hardware acquisition, maintenance, energy and cooling system usage.
Virtualization also facilitates VM creation and VM management. Unlike conventional servers that host a mixture of an OS, driver and application files, an entire VM exists as a single file, such as a VMDK file. A VM file can be created and duplicated as needed, proliferating virtual machines on servers across an enterprise. These golden images can be modified for each user or application.
VMs in operation are saved to storage nondisruptively using periodic snapshots to a SAN. Troublesome or crashed VMs are quickly reloaded to the server directly from storage, which accelerates recovery times after a server or application crash.
VM tools assist server management by allocating and regulating the computing resources that each VM uses. For example, multiple CPU cores may be allocated to a CPU-intensive application in one VM while other noncritical VMs may share the same CPU core. Similarly, an administrator can reserve the minimum required amount of network bandwidth for a VM running a transactional application. A virtual file or print server may not have this reservation.
Administrators must balance the computing demands of each VM against the total computing resources that each virtual server provides. Instead of supporting multiple memory-intensive VMs on the same server and risking low-memory performance penalties, the VMs can be distributed across multiple physical servers.
The concept of VM workload balancing also relates to CPU and I/O-intensive VMs. Certain tools enable nondistruptive workload migration between servers so that VMs can move from server to server in real time. Migration continues until an acceptable balance of server consolidation and performance is achieved.