Although this is not a new feature, it still seems to be a little known feature by many that can save you quite a bit of disk space. Prior to vSAN 6.2, all VMs were created reserving 100% of the configured memory, when there were no memory reservations defined. Because vSAN makes copies of the objects, we would need 2x the size of the memory per VM to be reserved for swap space. Remember that default policy is FTT=1 (2 copies), and swap being a “special” object, it will get the default policy (not subject to SPBM) and not Raid5 or Raid6 otherwise. On average, VMs have ~4GB-8GB of memory, depending on the workload of course. When we multiply this by the number of VMs, we can end up using quite a bit of reserved storage for swap objects. If we assume ~1,000 VMs per cluster, we would use ~8TB of space, in theory.
When is swap needed?
When you overcommit memory, swap will be needed; and when you don’t overcommit, you may benefit by disabling SwapThickProvision in order to save some space.
This is an advanced config setting per host in the cluster. You can set this up through UI(6.5+), CLI, PowerCLI, and even Host Profiles.
get: esxcfg-advcfg -g /VSAN/SwapThickProvisionDisabled
if 0 = Enabled. Swap is thick provisioned
if 1 = Disabled. Space savings
set: esxcfg-advcfg -s 1 /VSAN/SwapThickProvisionDisabled
UPDATE ***another command using esxcli***
list: esxcli system settings advanced list -o /VSAN/SwapThickProvisionDisabled
set: esxcli system settings advanced set -o /VSAN/SwapThickProvisionDisabled -i 1
A colleague of mine, Jase McCarty, created a PowerCLI script to set this at the Cluster level… Talk about the “easy button”/
The host profiles works the same way whether VSAN is enabled or not, you still create the profile from a host, apply it, check compliance, remediate. You will of course see more settings if vSAN is enabled.
I mentioned that this is an advanced configuration setting, so this setting is not visible on the host profile, unless this was set to 1 prior to exporting the host profile from one of your hosts. That means, you will have to manually set this on one host, and then export the profile for it to be visible on the WebClient.
vSAN 6.5 – Host>Configure>Advanced System Settings>Edit>VSAN.SwapThickProvisionDisabled> Set to 1
Friendly Advice: Again, if you are overcommitting memory on your hosts, DO NOT disable SwapThickProvision.
5 thoughts on “vSAN Sparse Swap”
[…] should not do that normally, you can avoid the footprint of the reserved memory. Find out more here. I do not normally do this. While I do not normally over-commit, I find it is a good emergency […]
[…] If you do not wish to have this space “wasted”, you can disable SwapThickProvision advanced setting on the hosts… BUT, Proper planning should be done prior to disabling this. I wrote a blog about this not long ago. https://greatwhitetec.com/2017/03/20/vsan-sparse-swap/ […]
[…]  vSAN Sparse Swap https://greatwhitetec.com/2017/03/20/vsan-sparse-swap/ […]
[…] Hasta vSAN 6.7, SwapThickProvision estaba habilitado de forma predeterminada, lo que significa que el espacio de intercambio creado por las máquinas virtuales basado en RAM/reservas de memoria era aprovisionado al 100% (thick provisioned). A partir de vSAN 6.7, esta configuración está deshabilitada de forma predeterminada, lo que hace que el swap sea creado con aprovisionamiento delgado (thin provisioned) por defecto. Consulte la descripción técnica de vSAN 6.7 en StorageHub. Para versiones anteriores de vSAN, puede cambiar fácilmente esta configuración a través de CLI, PowerCLI, HostProfiles, UI, etc. Más sobre esto aquí. […]
[…] olvide que el swap está establecido de forma predeterminada en 100%, pero se puede cambiar. Esto cambió en vSAN 6.7 a ser “thin provisioned” por […]
Comments are closed.