WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud
  • Tanzu
    • Application Modernization
    • Tanzu services
    • Tanzu Community Edition
    • Tanzu Kubernetes Grid
    • vSphere with Tanzu
  • Home Lab
  • Nested Virtualization
  • Apple
You are here: Home / Uncategorized / What is VMware vsish?

What is VMware vsish?

08.22.2010 by William Lam // 18 Comments

Recently while I was working on testing automated ESXi kickstart installations, I needed to extract some information as part of the build process, but the utilities that were used no longer existed in ESXi's Busybox console. Looking around, I found another way to extract the information I needed, which was using VMware's undocumented vsish utility, also known as the VMkernel Sys Info Shell. There is not much information around the web regarding this vsish utility (probably for good reason), but it has been described by few as a representation of classic Service Console /proc nodes and allows the ability to extract system reliability information similar to mcelog in Linux.

If I recall correctly, the vsish utility used to be bundled with classic ESX, but at some point it was removed. However, in ESXi, the utility is included and that is also true for latest release of ESXi 4.1. When you generate vm-support log, a dump of the vsi nodes are generally included which provides VMware support with the state of your system. To read the vsi node dump, you need a matching version of the vsish utility based on the version of ESX or ESXi you are running. Currently for classic ESX, to obtain the vsish utility, it must be provided by VMware support via debugging package that needs to be installed.

Note: A word of caution before using this utility, you should not make any changes that you are unfamiliar with. Always consult with VMware support before making changes as it can severely impact your host and virtual machines. Okay, now on to the fun stuff 🙂

On ESXi Busybox Console, you can launch the vsish utility by just typing "vsish":

You can perform various operations such as listing the various nodes, get and set parameters, etc. to see the available options, just type "help":

There is a huge amount of information that can be retrieved from vsish. One interesting leaf node within vsish is called "config", this actually maps to the Advanced Settings found on an ESX(i) host:

As you can see, the majority of the sub leaf nodes within "config" is exposed in the Advanced Settings, but there are some that are hidden. In fact, with ESX(i) 4.1, there is a total of 771 configurable options with 250 of those hidden that can only be seen using vsish (more on the configuration option later)!

There are two ways to interact with vsish, you can interactively login to VSI shell and perform ls, get or set operations or perform the same operation through non-interactive mode.

Here is an example of an interactive session listing config's under "COW" leaf node and getting and setting the value for "COWDiskSizeIncrement" which is one of the 250 hidden configuration options:

Here is an example of an non-interactive session performing the same operation as the one listed above:

With the release of vSphere 4.1, there have been a few new additions to the VSI nodes. Here is an excerpt slide from vSphere 4.1 to 4.0 differences presented by Iwan Rahabok - Senior Systems Consultant at VMware listing some of the new Storage I/O Control features:

Here is a screenshot on some of these values if you can not make it out in the slide:

For more details on differences between vSphere 4.0 and vSphere 4.1 - Check out the detailed 2 part deep-dive power point presentation here.

vsish provides an enormous amount of information and I have only begin to scratch the surface. Having said that I did manage to capture all the advanced host settings which includes both public and hidden options. Using a few for loops and some shell scripting, I have generated the following two lists:

Complete vSphere ESXi 4.1 vsish configurations including hidden options - 771 Total:

For the complete list, take a look at https://s3.amazonaws.com/virtuallyghetto-download/complete_vsish_config.html

Hidden vSphere ESXi 4.1 vsish configurations only - 250 Total:

For the hidden list only, take a look at https://s3.amazonaws.com/virtuallyghetto-download/hidden_vsish_config.html

There are definitely some interesting options that can be configured and I can see why VMware would want to hide these from the general public. What is nice about the compiled output, is that it clearly states the path to the configuration item, the current, default, min, max, is hidden or description of the parameter. Again, use at your own risk Hopefully this these two documents will be useful for curious users to explore vsish advanced configs.

Using the table above, you can actually query and modify these values using the standard esxcfg-advcfg utility that exists both on ESX(i). The following example will show you how to translate the vsish node path to proper format that is required for local esxcfg-advcfg utility.

In the example, we will be using vsish path "/config/COW/intOpts/COWDiskSizeIncrement"

Using a local copy of esxcfg-advcfg on ESX or ESXi, you will need to convert the above to the following:

[[email protected] ]# esxcfg-advcfg -g /COW/COWDiskSizeIncrement
Value of COWDiskSizeIncrement is 32768

Note: You just need to extract the root node and the individual config leaf node in "/config/COW/intOpts/COWDiskSizeIncrement" which is highlighted in green and blue.

Some other interesting nodes that I found that might be useful are under /system:
/system/bootOption
/system/bootCmdLine
/system/systemUuid
/system/bootFsUUID

One other interesting tidbit of information that I found was under /system/version which actually shows the build date and time of vSphere ESXi 4.1:

Now that we have a better understanding of the vsish utility, how does this help with my original inquiry? I found that you can extract networking information from your vNICs by looking at /net/tcpip/* nodes:

As you can see from the output above, it's format is in hexidecimal but when converted, you will get the IP Address, netmask and the gateway for a given VMkernel interface. To accomplish this, I used a modified python script to convert these entries to their human readable addresses:

Here some additional links referencing vsish that may be of interest:

  • http://www.ntpro.nl/blog/archives/1388-Lets-create-some-Kernel-Panic-using-vsish.html

More from my site

  • Does SIOC actually require Enterprise Plus & vCenter Server?
  • Script - Automate Storage I/O Control in vSphere 4.1 (siocManagement.pl)
  • Quick Tip - Using ESXi to send Wake-on-Lan (WoL) packet
  • Verify Hypervisor-Assisted Guest Mitigation (Spectre) patches using PowerCLI
  • Configuring per-VMDK IOPS reservations in vSphere 6.0

Categories // Uncategorized Tags // sioc, vsish, vSphere 4.1

Comments

  1. Anonymous says

    08/24/2010 at 5:13 am

    This is pretty amazing work William. Kudos my friend!! I imagine many people who like to roll up their sleeves will find this useful, particularly with ESX going away in the near future.

    Jas

    Reply
  2. Jason Boche says

    08/24/2010 at 5:14 am

    This is pretty amazing work William. Kudos my friend!! I imagine many people who like to roll up their sleeves will find this useful, particularly with ESX going away in the near future.

    Jas

    Reply
  3. Anonymous says

    11/13/2012 at 4:08 am

    one cool command thanks!
    is there a way to drop in to port group level inside a vSwitch? to get stats etc ...

    Reply
  4. Anonymous says

    01/16/2013 at 6:36 am

    Is there a way i could know the maximum memory and CPU Limits to userworld applications using vsish?

    Reply
  5. Anonymous says

    03/22/2013 at 6:43 pm

    is there a way i could enable auto boot after power outage from using vsish?

    Reply

Trackbacks

  1. New Hidden CBRC (Content-Based Read Cache) Feature in vSphere 5 & for VMware View 5? | virtuallyGhetto says:
    03/02/2014 at 6:30 pm

    […] statistics that can be viewed for a given virtual machine. We'll be leveraging the VMware vsish interface to access the CBRC statistics. To get started, just type vsish and then you will need to […]

    Reply
  2. How to query for MACs on internal vSwitch on ESXi | virtuallyGhetto says:
    03/02/2014 at 7:43 pm

    […] internal vSwitch and extract out the MAC Addresses that way? Well the answer is, you can so using vsish on ESXi (vsish is not available on ESX unless you have the VMware debugging RPM package […]

    Reply
  3. Semi-Interactive automated ESXi installation | virtuallyGhetto says:
    03/02/2014 at 7:45 pm

    […] After you have provided all the input, you will then boot the installer and the the following kickstart configuration file is used to parse the boot options using vsish. […]

    Reply
  4. How to obtain GID and LWID from esxtop? | virtuallyGhetto says:
    03/03/2014 at 9:32 am

    […] week I remember seeing a tweet from Duncan Epping regarding the use of VMware vsish to obtain the VMX Cartel ID, also known as the LWID (Leader World Id) for a virtual machine world. […]

    Reply
  5. » TCP Delayed Ack and vSphere IP Based Storage Long White Virtual Clouds says:
    07/12/2014 at 8:13 am

    […] it's done out of the box, like on Nutanix). You can learn more about the vsish command here. As always your feedback and comments […]

    Reply
  6. vSphere 6 experiencing high packet loss VMGuru says:
    01/03/2016 at 8:43 am

    […] you're not familiar with 'vsish' check out these articles from William Lam. What is VMware vsish? and What's new in VMware vsish for ESXi […]

    Reply
  7. Collecting ESX Network Statistics – virtualwires says:
    04/26/2016 at 9:06 am

    […] I take the required data directly from vsish. BTW, there is a good article to know about vsish at this blog. I was able to go to the specific node under vsish , but was not sure how to capture these values […]

    Reply
  8. [ESXi]代替Procfs的强大命令-vsish - 酷笔Blog says:
    03/07/2017 at 9:58 am

    […] 在ESXi最近纠缠不在procfs启用,无法查看指定进程的内存映射表,多查阅资料,发现vsish命令,对冲击的强大功能的第一次使用。VMware的官方介绍,这个顺序是非常小的。 ( 特别令人敬畏的入口) […]

    Reply
  9. Monitoring DFW Heap Usage – SneakU says:
    06/05/2017 at 8:59 pm

    […] You can read more about the vsish command on Willams blog here. […]

    Reply
  10. create kernel panic on ESXi says:
    01/29/2018 at 10:56 am

    […] a Purple-Screen-of-Death (PSOD) by issuing a special command that causes a kernel panic.  Use the VMkernel Sys Info Shell […]

    Reply
  11. PCIe Device NUMA Node Locality - frankdenneman.nl says:
    01/10/2020 at 6:07 am

    […] the script extracts information from the VMkernel Sys Info Shell (VSI Shell) the script uses Posh-SSH to log into ESXi host of choice and extracts the data from the VSI Shell […]

    Reply
  12. Quick Tip – Using ESXi to send Wake-on-Lan (WoL) packet says:
    03/05/2021 at 11:22 am

    […] uses the not supported vsish CLI to send WoL packet. The first argument is the network broadcast address, so if you have a network […]

    Reply
  13. Using ESXi to send Wake-on-Lan (WoL) packet – it solutions says:
    08/27/2021 at 4:13 am

    […] uses the not supported vsish CLI to send WoL packet. The first argument is the network broadcast address, so if you have a network […]

    Reply

Thanks for the comment! Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Author

William Lam is a Senior Staff Solution Architect working in the VMware Cloud team within the Cloud Infrastructure Business Group (CIBG) at VMware. He focuses on Cloud Native technologies, Automation, Integration and Operation for the VMware Cloud based Software Defined Datacenters (SDDC)

Connect

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • Vimeo

Recent

  • How to disable the Efficiency Cores (E-cores) on an Intel NUC? 03/24/2023
  • Changing the default HTTP(s) Reverse Proxy Ports on ESXi 8.0 03/22/2023
  • NFS Multi-Connections in vSphere 8.0 Update 1 03/20/2023
  • Quick Tip - How to download ESXi ISO image for all releases including patch updates? 03/15/2023
  • SSD with multiple NVMe namespaces for VMware Homelab 03/14/2023

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2023