I have the need to completely shut down some of my vSAN clusters for various clusters and ive been having a hard time finding the proper procedure. As of 2/16/2021 VMware released guidance here
Here are the steps i took to do it on my end. If you have the vCLS service enabled follow my other instructions here prior to starting the rest of this guide.
Disable cluster member updates from vCenter on each ESXi host in the cluster by running
esxcfg-advcfg -s 1 /VSAN/IgnoreClusterMemberListUpdates
After the above is completed run the below only on 1 of the ESXi hosts. Take note of the host
python /usr/lib/vmware/vsan/bin/reboot_helper.py prepare
Place all ESXi hosts in maintenance mode with NoAction
esxcli system maintenanceMode set -e true -m noAction
Perform the necessary maintenance. Once the hosts are back up we will run the above in reverse
Remove the maintence mode on all ESXi hosts by running
esxcli system maintenanceMode set -e false
Run the below command on the same host it was originally run
python /usr/lib/vmware/vsan/bin/reboot_helper.py recover
vSAN availability can be checked by running
esxcli vsan cluster get
Enable cluster member updates for vCenter
esxcfg-advcfg -s 0 /VSAN/IgnoreClusterMemberListUpdates