I was talking with a fellow VMware guy, Matt Lydy, at VMworld Barcelona and he brought something to my attention around the Virtual SAN 6.x Health Check Plug-in. Matt is a Technical Account Manager in Ohio. I had the pleasure of working the VMware booth with him at VMworld US. He mentioned that the Health Check plugin requires Dynamic Resource Scheduling (DRS). I was pretty sure this wasn’t correct, but upon further conversation, he specified that DRS is required for the automatic installation. At that point a lightbulb went off. It certainly does.
Health Check Plug-in
Virtual SAN licensing/use isn’t limited by any supported edition of VMware vSphere (vSphere Hypervisor free isn’t supported for obvious reasons). Pre vSphere 6.0 Update 1, the Health Check plug-in had to be manually installed in vCenter. With 6.0 Update 1, it is automatically included. If the Health Check VIB is already installed on a host, the service is automatically enabled. If the VIB isn’t installed, to enable this service, hosts must be put in maintenance mode/VMs evacuated, VIB installed, each host rebooted and taken out of maintenance mode in a sequential fashion. Again, this is an automatic process. When maintenance mode is initiated for a host, DRS migrates workloads off of the host.
What happens if DRS (with automated movement) isn’t enabled? An error is thrown, as hosts can’t be automatically evacuated. For customers that have licensing that includes DRS, simply enabling the service takes care of this requirement. But what about those that have all of the other features, but don’t have DRS? I’m specifically thinking about those with vSphere ROBO (Standard/Advanced) and Essentials Plus. The Health Check gui will handle the automated process of installing the VIB, but only if DRS is licensed. If it isn’t licensed, it won’t install the VIB.
How to install the Health Check VIB
The Health Check VIB can be installed manually a couple different ways. Update Manager is one, but isn’t included in these editions. It can be installed by enabling SSH to a host, and manually installing the vib from either a URL or by a local/shared path. That’s easy, but manual, and requires enabling SSH, installing the vib from the command line, then disabling SSH.
To overcome some of this, I took Brian Graf’s Host Client script, and modified it for my needs. You can find that script here:
https://github.com/jasemccarty/Scripts/blob/master/HeathCheckVIB.psm1
*Remember, this is just me hacking around, and this script is not supported by myself or VMware
I chose to put both of the Install and Remove actions into a single module, rather than having to execute this as a script. A couple differences (and bear with me, my PowerShell is rusty over the past 5 years) are:
- I create a “vibs” folder on the vsanDatastore – Had trouble uploading directly to the root of the Virtual SAN datastore
- I changed the PowerCLI command that performs the action of “esxcli software vib install” – This is because I’m using a .zip and not a .vib
- Brian’s code: $action = $ESXCLI.software.vib.install($null,$null,$null,$null,$null,$null,$null,$null,$VIBPATH)
- My code: $action = $ESXCLI.software.vib.install($VIBPATH,$null,$null,$null,$null,$null,$null,$null,$null)
- Renamed instances of Install-HostClient to Install-HealthCheck/Remove-HostClient to Remove-HealthCheck
Save the PowerShell Module to c:\users\username\Documents\WindowsPowerShell\Module\HealthCheckVIB\HealthCheckVIB.psm1
You’ll also have to go download the vib, which you can find on the vSphere Download page, under VMware Virtual SAN Tools, Plug-ins and Appliances.
To install the vib via PowerCLI, launch PowerCLI, Connect to vCenter, and then run the following command:
Install-HealthCheck -Datastore (Get-Datastore vsanDatastoreName) -Cluster (Get-Cluster ClusterName) -vibfullpath c:\path\to\vib\healthcheckvib.zip
Now manually evacuate VMs from hosts with your own manual rolling upgrade. Once all hosts have been rebooted, the Health Check service will be enabled.
I attempted to enable DRS to illustrate that I don’t have it as an available feature, and I still have the Health Check service enabled.
To remove the vib from each host in the cluster, simply run Remove-HealthCheck -Cluster (Get-Cluster ClusterName).
Hopefully this will help those customers who wish to use the Health Check service, but aren’t licensed for DRS.
Thanks for bringing this to my attention Matt!
Hi Jase,
any idea how to do this with vSAN 6.6?
I have a mismatch between the version on vCenter (newer) and the hosts (older).
The VMware site doesn’t appear to have the vib available under ‘VMware Virtual SAN Tools, Plug-ins and Appliances’ anymore.
thanks
Matt
Hey Matt,
We changed things up with vSAN in 6.2. From vSAN 6.2 onward, the API is a bit more standardized.
It sounds like you’ve got some vSAN 6.0 or 6.1 hosts with a newer vCenter.
Unfortunately the Health Check isn’t really going to work correctly until you update to at least vSAN 6.2. I’d highly recommend the most recent build of vSAN 6.2 (vSphere 6.0 Update 3 or higher).