Disable Spotlight on an Xsan volume

07 Jul 2022
We have been seeing spotlight processes (mds, mds_stores, mdworker_shared, etc) using a lot of CPU on some of our MDCs.  By itself this isn’t a problem, but we have been dealing with some thermal issues in a couple of small server rooms.  While the benefits of spotlight are nice, it isn’t worth the extra heat in this case.
We tried disabling spotlight with mdutil, but it wouldn’t apply.  Thankfully, the Xsan volume config files can control spotlight for each volume.
To modify this setting we do need to stop the volume, so plan a time when that won’t be a problem.  The process is:

Stop the volume

Ideally we will use sudo xsanctl stopVolume <volume name>.  This seems to tell clients to cleanly unmount the volume.  However, we have also seen xsanctl say it can’t stop the volume.  In those cases, we can use cvadmin.
sudo cvadmin -F <volume name> -e "clientunmount 1" will try to tell clients to unmount the volume cleanly.  This will also fail sometimes.
sudo cvadmin -F <volume name> -e "clientunmount hard 1 1" will force the clients to unmount the volume.  Frequently the clients will need to be restarted to remount the volume after the change.
Then sudo cvamdin -e "stop <volume name>" will stop it.

Edit the volume configuration

On an MDC, edit /Library/Preferences/Xsan/<volume name>.cfgp
Find the 2 lines 
<key>enableSpotlight</key>
<string>true</string>
Change true to false
<key>enableSpotlight</key>
<string>false</string>
Save your changes

Push the change to ldap

To make sure the other MDC and the clients know about the change, run
sudo xsanctl pushConfigUpdate
This will take the configuration from the files on this MDC and push them into ldap for the other systems to read.

Start the volume

sudo xsanctl startVolume <volumeName>
Share

Eric Hemmeter