The virtual machine snapshot is a commonly used feature in the VMware vSphere environment, before upgrading/patching virtual machines, and during backup processes.

One of the most common questions we get is, “What is the performance impact of VM snapshot creation/deletion on the performance of guest applications running inside the VMs?”

In this post, we will explore these performance aspects in VMFS, and vVOL datastores running on PowerStore.

A VMware snapshot preserves the state and data of a VM at a specific point in time.

  • The state includes the VM’s power state (for example, powered on, powered off, suspended).
  • The data includes all the files that make up the VM. This includes disks, memory, and other devices, such as virtual network interface cards.

When taking a VM snapshot of a VMFS-based VM, the state of the virtual disk is preserved, the guest stops writing to it, and a delta or child disk is created.as a result, there is a performance degradation. That’s because when a snapshot is taken, what really happens is that a delta VMDK is created. VMware uses SEsparse
format for all delta disks on VMFS6 datastores In this scenario, all the new writes from that virtual machine go to the delta VMDK, instead of the base VMDK, while the reads go to the base VMDK . This makes that base VMDK store the point-in-time state of the virtual disk. This mechanism is called “redirect-on-write”.

With VMware virtual volumes (vVols), data services such as snapshot and clone operations are offloaded to the storage array. With vVols, PowerStore uses native snapshot facilities, hence vSphere snapshots can operate at a base disk performance level.

When you right-click on a VM and choose take snapshot, VMware does not create the performance-impacting delta VMDK files that were traditionally used, but instead VMware entirely offloads this process to the array. So, the array creates the snapshots and VMware just tracks them.

A major benefit for VVols with Powerstore is that snapshots are now Powerstore volume copies, which are globally data reduced , metadata based (so their creation, restore from and deletion is instantaneous) and are not copy-on-write (so there’s no performance impact during backup operations for example).

Dell EMC PowerStore provides a simple but powerful approach to local data protection using snapshots. PowerStore uses the same snapshot technology across all the resources within the system, including volumes, volume groups, file systems, virtual machines, and thin clones. Snapshots use thin, redirect-on-write technology to ensure that system space is used optimally and reduces the management burden by never requiring administrators to designate protection space.

PowerStore supports the VMware vSphere Virtual Volumes (vVols) framework through the VASA 3.0 protocol. This feature enables VM-granular data services and Storage Policy Based Management (SPBM). In traditional storage environments, volumes or file systems are formatted as VMFS or NFS datastores for VMs. Data services are applied at the volume or file-system level, which means all VMs that reside on that datastore are also affected.

With vVols, VM data is stored on dedicated storage objects that are called storage containers, which become vVol datastores in vSphere. A VM consists of multiple vVols depending on its configuration and status. PowerStore works with vSphere to track which vVols belong to which VM.

Data services, such as VM snapshots and clones, can be applied at a VM-level of granularity since they are only applied to the relevant vVols. These data services are offloaded to PowerStore to maximize efficiency. Policies and profiles can be leveraged to ensure VMs are provisioned with the required storage capabilities.

VM snapshots are visible in both PowerStore Manager and vCenter, regardless of where they are created. You can view information about VM snapshots in the Manage Snapshots page in vCenter. You can also initiate a revert operation from here in order to restore the VM using the snapshot. You can revert to any snapshot in the snapshot tree.

Performance Impact Comparison

There are three primary performance-impacting events when taking a VM snapshot of a VMFS-based VM:

  • Creation of a snapshot – The process basically pauses all I/O (if the option is chosen to quiesce the virtual machine state).
  • Existence of a snapshot – In this case the redirection happens, and all workload is impacted during this period. This is experienced as lower throughput and IOps and higher latency.
  • Deletion of a snapshot – a VM snapshot of a VMFS-based VM is not just deleted like a storage array-based snapshot. It writes all the changes from the delta VMDK into the original VMDK, so this merge process can be quite impactful, especially if there are a lot of changes to write.

My experiment included 2 Windows 2019 virtual machines running 100% of random 8KB I/Os and 70% reads, 30% writes on a 200GB drive, WIN_VMFS virtual machine running on a VMFS6 PowerStore datastore, WIN_VVOL virtual machine running on a PowerStore vVOL datastore.

The main focus of this experiment is to understand the impact on the guest application performance with snapshots. The screenshots below have been taken from vROPS and PowerStore Manager.

Before taking the snapshots, the WIN_VMFS virtual machine was generating 90K IOps and 700 MBps while the WIN_VVOL virtual machine was generating 93K IOps and 730 MBps, the difference is due to the VMFS file system overhead.

Immediately during the snapshot creation, we see a big performance impact on the WIN_VMFS virtual machine, the IOps dropped to 20K while the bandwidth dropped to MBps

You can see the performance continues to suffer as long as the snapshot still exists on the WIN_VMFS virtual machine.

The guest performance impact in the presence of snapshots on VMFS is due to the nature of the SEsparse redo logs. When I/O is issued from a VM with a snapshot, vSphere determines whether the data resides in the base VMDK (data written prior to a VM snapshot operation) or if it resides in the redo-log (data written after the VM snapshot operation) and the I/O is serviced accordingly.

Taking a snapshot of the VMFS_VVOL virtual machine didn’t cause any performance impact on the virtual machine at all, the virtual machine continued generating the same amount if IOps and bandwidth as before.

With VMware virtual volumes (vVols), data services such as snapshot and clone operations are offloaded to the storage array. PowerStore uses native snapshot facilities, hence vSphere snapshots can operate at a base disk performance level.

A major benefit for VVols with Powerstore is that snapshots are now Powerstore volume copies, which are globally data reduced , metadata based (so their creation, restore from and deletion is instantaneous) and are not copy-on-write (so there’s no performance impact during backup operations for example).

In comparison to VMFS, we observe the presence of VM snapshots on the vVOL datastore has zero impact on the guest application performance.

Impact of snapshot removal on guest performance

Deleting a snapshot on VMFS filesystem consolidates the changes between snapshots and writes all the data from the delta disk to the parent snapshot. When you delete the base parent snapshot, all the changes merge with the base VM disk.

With PowerStore vVOLs, snapshot deletion is an instantaneous operation with zero performance impact on the guest operation system virtual machine.

It took almost 15 minutes to delete the snapshot on the VMFS virtual machine compared to 2 seconds for the vVOL virtual machine, while during the snapshot deletion, the VMFS virtual machine performance continued to suffer until the snapshot has been deleted completely.

Conclusion

  • The presence of snapshots can have a significant impact on guest performance in a VMFS environment, for I/O intensive workloads. Hence, the use of snapshots only on a temporary basis is strongly recommended.
  • Using PowerStore vVOLs, which uses native snapshot technology, is highly recommended to avoid any guest impact during snapshots creation, existence, or deletion.
  • Our findings show that performance degradation on VMFS datastores is higher as the snapshot chain length increases. Keeping the snapshot chain length smaller whenever possible is recommended to minimize the guest performance impact when using VMFS datastores.

PowerStore provides additional data protection with array-based snapshots. Snapshots are point-in-time space-efficient copies of data and take seconds to create with zero impact during creation, existence, or deletion. With tight integration with VMware vSphere, PowerStore can take vVol-based snapshots directly from the PowerStore manager using a protection schedule or on-demand. VM snapshot information is seen in both PowerStore and in vCenter.

A guest post by Tomer Nahumi

Leave a Reply