ESXi scratch partition – how to enable and why?


It’s recommended by VMware to have a persistent scratch location for VMkernel logs in case that ESXi is installed on USB stick or SD card (1Gb is minimum size). ESXi scratch partition, for those particular cases, resides in memory – in RAM disk, which is limited in size. The size is only 512 Mb, which is taken out of the server’s available memory. Having scratch location in RAM might get problematic when running lots of VMs so the memory gets restrained.

Also, if you reboot the host, you’ll basically loose the VMkernel logs so having persistent scratch partition is a good thing. You would certainly want to keep the logs, don’t you? You can then use Splunk to present and seek the logs with through GUI, or use Syslog bundled with vCenter.

Which problems you can run into if you don’t configure persistent storage for the log files? You might experience HA agent issues on those miss-configured hosts, or you’re not able to activate HA at all. Other symptoms might show “general system Error” in vSphere Update manager (if you’re using it). You’ll basically need to create a persistent scratch location for ESXi. It’s straightforward process, which can be done through vSphere Client, PowerCLI or vCLI. Let’s see the vSphere client way.

How to configure scratch location for ESXi logs? Follow those steps

  • Connect to vCenter Server or the ESXi host using the vSphere Client > Select your host > Sonfiguration > Storage
  • Right click datastore (local or shared) and select Browse
  • Create folder for this ESXi host named for example “scratch”> close the datastore browser.
  • Select the host > configuration > Advanced (software section) > ScratchConfig > Change the ScratchConfig.ConfiguredScratchLocation

scratch-config

For example:

/vmfs/volumes/DatastoreName/ESXi5-01/scratch

  • Click OK > go and put the host in maintenance mode and reboot for the configuration to take effect.

Now, if you have for example 3 hosts in your cluster, just create a separate folder for each of your host, so the hosts don’t overwrite each other’s data.

Some more read and sources: