Introduction

In an era where the 24x7 availability and rapid delivery of business-critical services is crucial to the success of an enterprise, the IT infrastructure, which underlies such service offerings, is often “fine-tuned” to meet these high service-quality expectations in an efficient and cost-effective manner. As a result, we have resource-slim thin clients replacing the resource-intensive fat clients; user-friendly web front-ends are fast substituting primitive interfaces, and the most recent addition to this list is “virtualization”. Virtualization allows multiple virtual machines, with heterogeneous operating systems to run in isolation, side-by-side on the same physical machine. Each virtual machine has its own set of virtual hardware (e.g., RAM, CPU, NIC, etc.) upon which an operating system and applications are loaded. The main benefits that enterprises can obtain from a virtualization solution include:

  • realizing production server consolidation and containment by running software applications on fewer servers;
  • achieving better utilization of existing resources by dynamically allocating resources across operating systems and applications, based on current demands;
  • providing advanced business continuity protection and delivering high availability for critical applications at a lower cost;
  • re-hosting legacy applications on new hardware for improved reliability;
  • streamlining disparate software test and development environments with multiple operating systems loaded on the same hardware;

Among the many virtualization solutions available, the VMware™ Virtual Infrastructure solutions are one of the most popular. At the heart of this virtualization solution is the VMware ESX server. The ESX server installs on the “bare metal” and allows multiple unmodified operating systems and their applications to run in virtual machines that share physical resources. The operating system running on the bare metal is referred to as the physical server or virtual host, and the individual operating systems hosted by the ESX server as guests/virtual machines. From simple desktop tools to complex servers, the virtual guests can host a wide variety of applications.

The following illustration shows the main components of an ESX Server host.

Figure 1 : The architecture of an ESX server

The VMkernel is an operating system that runs directly on the ESX Server host; it controls and manages most of the physical resources on the hardware, such as the memory, processors, CPU memory disk network, and storage and networking controllers. The resource manager partitions the physical resources of the underlying server. It uses a proportional share mechanism to allocate CPU, memory, and disk resources to virtual machines that are powered on. Users can specify shares, reservations, and limits for each virtual machine. The resource manager takes that information into account when it allocates CPU and memory to each virtual machine. The VMkernel hardware interface hides hardware differences from ESX Server (and virtual machine) users. It enables hardware-specific service delivery and includes device drivers, and Virtual Machine File System™ (VMFS™). The virtual machine monitor (VMM) is responsible for virtualizing the CPUs. When a virtual machine starts running, control transfers to the VMM, which begins executing instructions from the virtual machine. The transfer of control to the VMM involves setting the system state so that the VMM runs directly on the hardware.