MSSQL & VMWare Snapshots
In general, snapshot usage should be limited and possibly avoided on VMs running production SQL Server workloads. For backup purposes, consider to use in-guest, agent-based backup. If snapshots should be taken, the following best practices should be considered:
Offline snapshot (a VM is powered off when a snapshot is taken) can be used without special considerations.
If an online snapshot (VM is powered on and Guest OS is running) needs to be taken:
Consider not using “Snapshot the virtual machine’s memory” option as this may stun a VM. Rely on SQL Server mechanisms to prevent data loss by losing in-memory data.
Use “Quiesce guest file system” option to ensure that a disk consistent snapshot will be taken. Special notes:
Be aware that on a highly loaded instance of SQL Server producing high number of disk I/O, snapshot operations (creation of an online snapshot, online removal of a snapshot) may take a long time and can potentially cause performance issues83. Consider planning the snapshots operations for non-peak hours, use offline creation/removal of snapshots, or use VVol technology with the storage array level snapshot integrations
Do not run a VM hosting a SQL Server instance on a snapshot for more than 72 hours
Depending on a workload and an environment this recommendation may vary, but in general should not exceed 72 hours, sometimes much shorter time is preferredSnapshot is not a replacement for a backup. The delta disk file contains only references to the changes and not the changes itself.
Consider using VMFS6 and SEsparce snapshot for performance improvements.