Virtual Machine Components
A VM is a logical container that holds all the resources an operating system requires for normal operation, such as a graphics adapter, memory, processor, networking, and so on. Virtual machine hardware specifications vary according to the physical resources available, such as memory and CPU capacity of the host. Other virtual machine hardware specifications such as network interface cards (NICs) and disk controllers do not depend on the physical host.
Figure 18-1 shows the components and capabilities of a vSphere 7.0.1, which has a Version 18 VM format.

Figure 18-1 Virtual Machine Components
CPU and memory are typically the two resources that strongly affect VM performance. The number of vCPUs assigned to a VM depends on the logical cores present in the ESXi host and the license that is purchased. Virtual random access memory (vRAM) creates many virtual address spaces and allows the ESXi host to allocate the virtual address space to any licensed VM. Virtual memory for each VM is protected from other VMs. The operating system detects the resources assigned to the VM as though they are physical resources.
Datastores/virtual disks are storage containers for files. Datastores are where the host places virtual disk files and other VM files. Datastores hide the specifics of physical storage devices and provide a uniform model for storing VM files. They could be located on a local server hard drive or across the network on a SAN. Different types of controllers, including Integrated Drive Electronics (IDE), floppy, and Small Computer Systems Interface (SCSI), let the VM mount one or more types of disks and drives. These controllers do not require any physical counterparts.
vNICs facilitate communication between virtual machines on the same host, between virtual machines on different hosts, and between other virtual and physical machines. While configuring a virtual machine, you can add the vNICs along with the adapter type specification. The adapter type used typically depends on the type of guest operating system and applications installed. Selecting a wrong adapter type can result in low networking performance or the inability of the guest operating system to properly detect the virtualized hardware. Following are some network adapters that might be available for your VM.
- Vlance: This adapter is also called PCnet32, supports 32-bit legacy guest operating systems, and offers 10Mbps speeds.
- E1000: This adapter supports various guest operating systems, including Windows XP and later and Linux versions 2.4.19 and later.
- E1000E: This is the default adapter for Windows 8 and Windows Server 2012.
- VMXNET: This adapter provides significantly better performance than Vlance.
- VMXNET2 (Enhanced): This adapter provides high-performance features commonly used on modern networks, such as jumbo frames and hardware offloads.
- VMXNET3: This adapter offers all the features available in VMXNET2 and adds several new features such as IPv6 offloads.
- Flexible: This adapter can function as either a Vlance or a VMXNET adapter, depending on which driver initializes it.