VSAN Configuration Maximum Query Script

In addition to the vSphere Web Client, a great way to further explore VSAN in greater depth is by leveraging RVC and the new VSAN namespace on the command-line. If you have not played with the new the VSAN commands in RVC, Florian Grehl has written a fantastic series that is worth checking out here. While exploring the VSAN commands myself, one command that particularly stood out to me was the vsan.check_limits. The command provides a quick summary of the internal VSAN limits based on your current VSAN Cluster and configuration.

This actually got me thinking about the vSphere Configuration Maximums for VSAN and how manual of a process it is today to validate that you are currently running within the supported maximums not only for VSAN but for other areas as well. I thought it would be useful have a script that you could periodically validate the current VSAN configuration maximums against an existing VSAN Cluster. Creating this script was also a nice way for me to take what I have learned about the VSAN APIs over these last couple of weeks in my Exploring VSAN APIs series and build something that could be useful.

Disclaimer: These scripts are provided for informational and educational purposes only. It should be thoroughly tested before attempting to use in a production environment.

I created a vSphere SDK for Perl called vsanConfigMaximumCheck.pl which just accepts the name of a VSAN Cluster and will automatically check the current VSAN configuration maximums which I pulled out of the latest vSphere 5.5 Configuration Maximums document. It implements the majority of the configuration maximums that I thought made sense to display. This script works on any system with the vSphere SDK for Perl installed but does require one additional Perl Module called JSON. The script reports on the following VSAN configuration maximums:

VSAN Disk Groups per Host

Magnetic Disk per Disk Group

SSD Disks per Disk Group

Total Magnetic Disks in all Disk Groups per Host

Components per VSAN Host

Total VSAN nodes in VSAN Cluster

VMs per VSAN Cluster

Note: I also have plans on creating a VSAN vCheck report which is something I am still working on. Hopefully you will hear more about that very soon 🙂

Here is an example of running the script against VSAN Cluster called "VSAN-Cluster" by using the following command:

Here is a screenshot of what the results would look like:
I personally think this information would be really useful to include in the vsan.check_limits RVC command but I also think it would be useful to have outside of RVC for any type of external reporting which can also leverage the vSphere API.