VMware VMKernel Components and Functionality

OVERVIEW

This post covers basic understanding of core components of vSphere and the factors that can affect the performance of the virtual infrastructure. These factors which are crucial needs to be monitored at all times in the production environment. We can either use GUI ie vCenter Server or vCLI which is a command line interface specifically designed for VMware vSphere infrastructure to monitor and check various performance metrics that make up the proper functionality of the virtual infrastructure.

ESXI HOST ARCHITECTURE

 

ESXi components are listed in the above diagram :
1) Physical Hardware which is server and its components
2) Device Drivers for the OEM vendors
3) VMKernel the virtualization layer responsible for making decision on resource management
4) VMM is a process present in every VM which is critical for providing resources on Guest OS
5) CPU Scheduler responsible for scheduling threads from virtual world on to physical processor

What is VMKernel and what does it do?

  • VMkernel schedules tasks using CPU scheduler which is covered below
  • VMkernel is responsible for Resource scheduling that is running multiple tasks from multiple guests simultaneously
  • It provides traditional OS features like process management, File systems , Signals, IO stacks and Drivers
  • VMkernel also hosts various other services such as HOSTD, DCUI etc


CPU Scheduler 

 

  • CPU scheduler is a crucial component which is the heart of multitasking
  • Its responsibility is to provide good performance in a shared virtual infrastructure by reducing overheads during threads execution
  • CPU scheduler is responsible for decisions with respect to the execution of vCPU threads on physical CPU
  • It also decides which vCPU threads will get executed on which physical CPU using Propotional Share Algorithm
  • It looks at the size of instructions and makes decisions on which CPU to execute
  • These instructions in vSphere infrastructure are referred to as vSphere World

Virtual Machine Monitor or VMM

  • VMM is the component that virtualizes the CPU and memory that it receives from VMkernel
  • The Guest OS sees these virtualized Compute resources as any hardware resources
  •  Every VM runs its own VMM process and it is also associated with its own VMX process
  • There is a little overhead due to VMM (1 or 2% max CPU) as it is sandwiched between VM’s and VMKernel

Leave a Reply