In ESXi 5.1, you might have noticed something new called Shadow of vmnic under the USED-BY column in the Network view of ESXTOP.
I initially heard about this from a few followers on twitter and I was curious myself since I could not find any documentation regarding this topic. It took a bit of digging but it turns out these shadow vmnics is actually related to the new VDS Health Check feature released in vSphere 5.1. A shadow port is created automatically for every uplink in your ESXi host and is used for transmitting and receiving health check related packets for each uplink. In ESXTOP, you can monitor the statistics for these shadow ports which can be used to debug/troubleshoot the network health check feature and this is why they are present.
One thing to note, these shadow ports are created regardless of whether or not your ESXi host is connected to a VDS or if you have the network health check features enabled. This is by design and there are four VMkernel modules that are responsible for the network health check feature:
- vlanmtucheck
- teamcheck
- heartbeat
- healthchk
Disclaimer: Do not modify or disable any of the above VMkernel modules else you can potentially disable network connectivity to your ESXi host (trust me, I know).
After some investigation and testing in my lab, I found that I could unload the above VMkernel modules and the shadow vmnics entries would no longer appear in ESXTOP. To do this, you will need an ESXi 5.1 host which is not running any virtual machines and you will need to run the following commands in this exact order (as there are module dependencies):
vmkload_mod -u vlanmtucheck
vmkload_mod -u teamcheck
vmkload_mod -u heartbeat
vmkload_mod -u healthchk
Once you have successfully unloaded all four VMkernel modules, if you open up ESXTOP, you should no longer see the shadow vmnics. To restore the shadow vmnics, you can either reboot (since the unload is not persistent) OR you can run the following commands in this exact order:
vmkload_mod heartbeat
vmkload_mod teamcheck
vmkload_mod vlanmtucheck
Note: By loading the heartbeat VMkernel module, it also loads the healthchk module.
Rubeck says
Thanks a bunch, William.. !
Made a SR yesterday regarding this... Today I got pointed to your post by the support. I sure hope you get some percentage of the SnS fee we customers pay every year..:-)
William says
@Rubeck,
np, glad the article was helpful! You should leave that feedback in the SR 😉
Mark says
How do you know all this!!!!!! I'm jealous
Anonymous says
Full disclosure William works VMware.
Robert says
Thanks so much for your efforts and this post! Out of curiosity, what motivated you to unload the 4 modules? Was it that you just did not want to have them running when they were not being used? Was it because they were not being used and were consuming resources unnecessarily? Or was it just for s & g? BTW, what kind of load did the 4 modules place on the system if Health Check was not enabled, and if it was enabled? Is there a way I could use image builder and create an image that does not load those modules if I did not want them or load them but not enable them? Oh one last question. The heartbeat module, is it only used for Health Check?
Thanks
Robert