Virtualization 2.0 - Hardware

In this chapter, we will discuss various components of hardware such as CPU, Memory, Storage and Networking.

Understanding Virtual CPU

When we install a hypervisor, each physical CPU is abstracted into virtual CPUs. This divides the available CPU cycles for each core and allows multiple VMs to "time share" a given physical processor core. Generally talking, the hypervisor typically assigns one workload per vCPU (per core). If the workloads on a server need more CPU cycles, it is better to deploy fewer VMs on a particular virtual CPU.

Let us consider the following example to understand the logic of virtual CPU.

I have a physical server with two processors (CPU 1 and CPU 2) and each of them has four physical cores. In total, we have 2 * 4 = 8 physical cores.

Based on some calculations our hypervisor provided for each physical core, we can get 5-10 vCPUs.

In total, we will have [8 physical cores * (5 to 10 vCPUs)] 40-80 vCPUs, which means that we can assign a maximum of 80 vCPUs to virtual machines.


Understanding Virtual Memory

Virtual Memory in simple words is the RAM of the machine. The memory resource settings for a virtual machine determines how much of the host's memory is allocated to the virtual machine. The virtual hardware memory size determines how much memory is available to applications that run in the virtual machine.

A virtual machine cannot benefit from more memory resources than its configured virtual hardware memory size. The ESXi hosts limit the memory resource use to the maximum amount useful for the virtual machine, so that you can accept the default of unlimited memory resources.

You can add, change, and configure virtual machine memory resources or options to enhance virtual machine performance. You can set most of the memory parameters while creating the virtual machine or it can also be done after the Guest Operating System is installed. Most of the hypervisors require to power off the virtual machine before changing the settings.

In the following schematic illustration, you can see that the total physical memory is divided between two virtual machines.


Understanding Virtual Storage

Storage virtualization is the pooling of physical storage (Data cluster) from multiple network storage devices into what appears to be a single storage device that is managed from a central console. We cannot assign more storage to virtual machines that data cluster offers physically.

You will see these extensions on the end of a file. Of all the files used as part of a virtual machine, different hypervisors like to use different file types. Some of the more common are VDI, VHDX, VMDK and HDD.

In the following example, we have a data cluster of 12 TB in total and four virtual machines to which we have allocated storage to each of them. In total, the maximum storage allocated to them is 12 TB.

Virtual Storage

Understanding Virtual Networking

We will discuss this with a simple example as to how virtual networking done.

We have Virtual Machine 1, 2, 3 and 4 running on the same host. They would like to send the network traffic back and forth. This is done by virtual networking cards as shown in the following illustration (vNIC), which connects virtually with a virtual switch (vSwitch) that is created by the hypervisor.

This virtual switch communicates with a physical card of the server (pNIC), which is connected with a physical switch (pSwitch) and then communicates with the rest of the network equipment.

Please see the following schematically done up scenario.