Around the Storage Block

Deeper look at VMware Application Synchronized Snapshots with Nimble Storage

In the earlier blog, we looked at the advantages of VMware Synchronized Snapshots with Nimble Storage compared to traditional VM Backup and how easy it is to configure.

In this blog, let's look at how synchronized snapshots work and some built-in optimizations. In the next blog in this series, we will look at considerations to deploy synchronized snapshots in large-scale VM environments.

VMware synchronized snapshots are scheduled on a volume collection in either the Nimble array management UI or vCenter Plugin. Typical configurations of VMFS datastores use a single Nimble volume. So, a volume collection contains one volume and hence one datastore. There are two modules within Nimble OS which work together to create synchronized snapshots.

Snapshot Scheduler - This service handles both crash-consistent and application consistent snapshot scheduling in Nimble OS

Nimble Protection Manager for VMware (VMware NPM) - This service handles the interaction with VMware vCenter to create VM Snapshots

Synchronized Snapshot - PhasesSynchronized Snapshot - Phases

At the scheduled time configured in a volume collection, say every 24 hours, Nimble OS starts the snapshot operation. This operation has three phases:

Phase 1 - Create application-consistent VMware snapshots of all VMs

- Snapshot Scheduler delegates the job to VMware NPM passing it a list of volumes in the volume collection

- From the volumes, VMware NPM identifies the datastores and the list of VMs on those datastores using vCenter APIs

- VMware NPM then creates a VM snapshot for each VM which utilizes VMware Tools VSS integration to quiesce the OS and the application

We will look at this operation in more detail in the next section.

Phase 2 - Create Storage Snapshot

- The Snapshot Scheduler creates the volume snapshots for each volume in the volume collection.

This captures the application consistent state of the VM disks in a storage snapshot for longer-term retention or replication. This operation, as discussed in the last blog, is instantaneous and the snapshot can be retained for long durations without any impact to storage performance

Phase 3 - Remove VMware snapshots of all VMs

- VMware VM snapshots can safely be removed since the consistent state of all the VM disks is captured in a storage snapshot in Phase 2.

Next, let's look at some of the optimizations for large-scale deployments that are built into VMware NPM for VM Snapshot creation:

- Limits on the number of VM snapshots created per host

Creation of a VM snapshot is a resource-intensive operation for each ESXi host. In order to control the impact on the host, VMware NPM maintains a list of operations currently ongoing on a host and limits the number of operations to 4 per host.

- Distribution of VM snapshots jobs across the cluster

To utilize the multiple hosts in the cluster, VMs are selected from different hosts to create snapshots in parallel. This allows the Phase 1 described above to complete faster while minimizing the impact on each host.

- Limits on the number of VM snapshots per datastore

For larger clusters, it is possible to create (# hosts * 4)  VM snapshots in parallel, but when the cluster size is 32 or 64 hosts, the number of snapshot tasks do impact storage performance (especially when deleting/consolidating so many VM snapshots).

To control this impact, limits are placed on how many snapshots are created per datastore in parallel.

In the next blog in this series, we will look at considerations for deployment in large-scale environments.


About the Author


VMware Integration Architect at Nimble Storage