Around the beginning of December 2014, Rawlinson Rivera came to me and asked if I could help a brother out with some scripting. I said “Sure” not knowing what I was getting myself into. He proceeded to tell me about VSAN 6 and some of the great features that were coming in it, two of which piqued my interest. 64-Node cluster and All-Flash VSAN. SICK! This got me excited from the get-go. So what was the task??
Rawlinson proceeded to tell me about how the All-Flash VSAN works and that users would need to tag each “Capacity” disk individually/manually. I did some calculations in my head and thought “Ok, 64-node cluster, ~ 10 disks per node = 640 disks, ~1-2 disks per node as cache leaves…. OH BOY…. 512-576 disks in this scenario as needing to be tagged as CapacityFlash. I then was shown the steps that have to be taken to flag CapacityFlash, (let’s say you are uber fast and know exactly what you’re doing from the getgo, and let’s say it only takes you one minute per disk… that’s still 8.5-9.6 HOURS! ok so not everyone is going to start out with a 64-node all-flash VSAN so most people won’t feel THAT much pain, but yes, I could see where Rawlinson wanted the help.
“Let’s make a super awesome tool that blows people out of the water!” ok, I was in. So what did we do and what does it need to run?
To make a long story short, I ended up creating a GUI. Now let’s talk for a second about that. In the recent past I’ve had a few haters get on my case for creating GUI’s. I want to dispel right here and right now that just because you automate or script something, doesn’t mean it has to be a background task or CLI only. There are definite use-cases for GUIs. In this case we are working with enough objects that many users would find it LESS useful and yet, still overwhelming if they had to select this information via CLI. The other reason this was useful was the sheer number of rows returned, if done in a CLI window, would not be useful and would be counter-productive. So now, if you still want to hate on the GUI, don’t use it .
The Configuration Utility ended up looking like this:
As you can see, we have a location for users to enter their vCenter credentials and ESX credentials (passwords are hidden), The first window is populated with hosts in the given vCenter and grouped by cluster. It will show you the status of SSH for each host (we’ll talk about why we needed SSH in a bit).
Users can click on the cluster group name and then a single checkbox to select all hosts in that cluster. SSH can then be enabled/disabled.
The second window gets populated with all the drives for the selected hosts and are grouped by ESX host. A bit of information is given here (essentially all the information that is found running ‘vdq –q’ on each host. To make things easy for you, we decided to add a “Group similar devices” feature that allows users to select a disk (highlight the line, not click the checkbox), which will then populate the dropdown in the ‘Group similar devices’ box with the Display name and Size of the selected disk. Choosing whichever option (I’d go with Size (GB)) you can then select either “Group per Host”, meaning, only select all drives in this host that are similar to the highlighted one, or “Group per Cluster”, meaning, all drives like this in this VSAN cluster. When either of these two buttons is pressed, checkboxes will appear next to the corresponding drives, you can then proceed to choose “Remove Capacity Flash” or “Set Capacity Flash”. The whole process takes 2 minutes or less. For the math nerds out there that is roughly .03% of the time it would have taken to do this manually. You sold?
What’s the catch?
There really aren’t any. This is version 1 and as such, as we see the need in the future, newer versions may get released that become even more helpful. The pre-reqs for the machine that will run this tool are currently as follows:
- PowerCLI 5.5 or higher
- Either internet connection or Plink.exe already placed in c:\temp (if it doesn’t exist in c:\temp the tool will tell you and ask if it should try to download it for you)
- Administrator rights for your ESX Hosts
- ESX Hosts with the same password (future version will work off a CSV for those of you who have different passwords for all your ESX Hosts)
So really, it’s not bad. So why do we need SSH enabled on the hosts? Well, the tool uses ESXCLI to tag the disks. This is done via PowerCLI, however at the time of writing this, there is currently no way to retrieve the vdq –q results for hosts without SSH. Therefore without it, we could attempt to set the drives but we would not have a way of verifying that the settings actually took or be able to give all the details we do in the second window. If VMware decides to make this command accessible via another method that does not require SSH then we will gladly remove that piece of the tool.
To see the post that Rawlinson did on this tool, click HERE:
This is a tool created by Rawlinson Rivera (@PunchingClouds) and Brian Graf (@vBrianGraf) and is not an official VMware product or tool. As such, there is no support for it. Use at your own risk (it’s worked great for us).