VMware Cloud Community
Marcus87
Contributor
Contributor
Jump to solution

VMKernel Explanation

This may be overly simple, however,  I am looking for an explanation as to what exactly the VMkernel is. In some cases (as I understand it) it's defined as an OS that lies on top of the hypervisor (ESXi) that basically manages all resource allocations.  Essentially taking the virtualized physical resources provided by ESXi and through VMware products distributing/managing them.  In other cases it seems to be very specific to networking (i.e. VMKernel Port Group).  In some illustrations, it seems to imply VMkernel is inside the same layer as ESXi. Google is repetitive and not clarifying this for me.  I've checked VMware documentation and also curriculum media I have for my classes.  Not sure if I'm overlooking something.  References would be helpful too.  Thank you in advance.

"The VMkernel is a high-performance operating system that runs directly on the ESXihost. The VMkernel manages most of the physical resources on the hardware, including memory, physical processors, storage, and networking controllers. ... TheVMkernel also supports the storage of virtual disks on NFS file systems."

VMware vSphere 5.1  (obviously an outdated version, just an example of some of the information I'm finding)

1 Solution

Accepted Solutions
scott28tt
VMware Employee
VMware Employee
Jump to solution

VMkernel is the OS inside the ESXi product - it boots, it discovers hardware and loads drivers, it schedules processes and controls access to the underlying hardware.

Another old paper, but it shows and tells you what you need: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/ESXi_architecture.pdf


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog

View solution in original post

5 Replies
scott28tt
VMware Employee
VMware Employee
Jump to solution

Moderator Note: Moved to ESXi


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos
scott28tt
VMware Employee
VMware Employee
Jump to solution

VMkernel is the OS inside the ESXi product - it boots, it discovers hardware and loads drivers, it schedules processes and controls access to the underlying hardware.

Another old paper, but it shows and tells you what you need: https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/ESXi_architecture.pdf


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Dashers
Enthusiast
Enthusiast
Jump to solution

It's worth thinking about operating systems in general.  Linux for instance is really a kernel, when you install a copy of Linux, you're installing more than the kernel, you're installing a distribution.

The kernel is the software that runs directly against the hardware, telling it what to do, managing what to do with I/O and all the data flowing through the system, deciding how to manage the memory etc.

The shell in the operating system sits around the kernel and allows interaction to it.  For instance, if you SSH to a ESXi host, you'll be running a command line shell, in which you can run applications (such as ls, esxcli).  These programs, as well as guest virtual machines all interact with the kernel's APIs to request or receive data.

VMKernel specifically is a POSIX-styled (in a similar vein to UNIX, Linux, *nix in general) kernel.  There are many conventions that are used in POSIX systems which administrators will find familiar in ESXi.   The idea of loading kernel modules for-instance.

ESXi could not exist without the VMKernel at the core, but likewise, the VMKernel on its own wouldn't be very useful as ultimately, you need some-way of interacting with that (either as a user, or as another program/system).

Marcus87
Contributor
Contributor
Jump to solution

Thank you for your response. That was very helpful.

Reply
0 Kudos
Marcus87
Contributor
Contributor
Jump to solution

Thank you for the follow on. 

Reply
0 Kudos