I experienced an issue with a not reachable scratch partition of an ESXi 4 U1 server during a reboot. The server has been put into maintenance mode and then rebooted. After the reboot it exited maintenance mode by itself. VMware support recommended us a link
about unreachable scracth locations and their impact, like self-exiting maintenance mode. With this details, a couple of questions came up, which I'd like to get answered here:
1. How is the original scracth location being defined at installation? Is there an algorithm or a metric to decide where to put it?
2. Why is it not basically on local storage? Our current config points to a SAN datastore, which was not available during reboot, that caused the issue.
3. Any experiences with creating a persistent scracth location on local disk?
1. How is the original scracth location being defined at installation? Is there an algorithm or a metric to decide where to put it?
As far as I am aware there is no algorithim that is used the only thing that is used for the placment of the scratch is if there is local storage then a persistent location is created. If you are installing onto Flash/USB media then no persistent location is created.
2. Why is it not basically on local storage? Our current config points to a SAN datastore, which was not available during reboot, that caused the issue.
It should be if there was local storage available during the install.
3. Any experiences with creating a persistent scracth location on local disk?
As part of my build process if not using local disk for install I locate the scratch partition onto a VMFS volume which sounds like what you are doing, this can be moved using an advanced setting on the configuration of the ESXi host if you have local storage in the server.
1. How is the original scracth location being defined at installation? Is there an algorithm or a metric to decide where to put it?
Scratch is automatically configured during the install or the first time you boot up the ESXi host. The ESXi host(s) need to find storage that it considers local. A scratch partition is created. If no local storage is found scratch runs in RAM and will not be persistent.
2. Why is it not basically on local storage? Our current config points to a SAN datastore, which was not available during reboot, that caused the issue.
Its installed on local storage by default IF local storage exist during the install or first boot. If it was on a SAN datastore someone might of placed it there. If its a FC or Hardware iSCSI SAN then that datastore should be available during boot up.
3. Any experiences with creating a persistent scracth location on local disk?
Its really simple, but requires a reboot:
1. Create a folder in the local datastore,
2. Get the full path to the folder - i.e /vmfs/volumes/<datastore long/shortname>scratchfolder
3. Go to Configuration, Advanced Settings, ScratchConfig, change the path in ScratchConfig.ConfiguredScratchLocation. OK.
4. Reboot.
5. Confirm.
I think there is a KB for this.
Hope that helps.