Array Performance and Data Protection
Showing results for 
Search instead for 
Did you mean: 

How Nimble Storage uses VSS


How Nimble Storage uses VSS

VSS is made up of three components designed to work together in harmony. The three inputs to VSS are listed below;

  • VSS writer; plainly stated the application that wants to write to the disk.
  • VSS requester; the application or tool that is requesting the snapshot/backup/etc.
  • VSS provider; service that triggers a snapshot, can be a software based, or offload to hardware.

Let’s assume that you have also installed and configured the Nimble Windows Toolkit which includes a Nimble Storage VSS Provider. This approach is common among most storage vendors.

The normal course of events is that a VSS Requester such as a backup tool like VEEAM makes the VSS call to back up a volume that houses an application (such as a Hyper-V VM, or SQL). The VSS writer for Hyper-V receives the request to flush and then pause write operations to the file system (for no more than 10 seconds). Once the flush is complete and during the pause write pause window the VSS requester then informs the VSS provider to create the snapshot. Once the VSS requester is informed that the snapshot has taken place, the VSS writer is told to release the hold on write operations and continue to operate normally. This process commonly takes 4-6 seconds, and cannot last longer than 10 seconds or else the process is aborted to prevent the application from every seeing degraded performance.

Something more unique is the way that Nimble enhances this process by suppling a VSS Requester on the host along with the Provider which can be controlled from simple PowerShell commands, which allows any administrator the ability to take and control snapshots without needing any third party VSS requesters. The really special enhancement here is an authenticated VSS Requester listening service on the host, which the Nimble array can use to communicate to the host. This has always been the missing piece in most solutions. On most storage devices on the market, if you initiate a Snapshot from the host it can be VSS flushed, but when you initiate a snapshot from the array it is not VSS flushed. The benefit here is that on a Nimble array, when you initiate a snapshot from the host OR from the array (via on-demand or scheduled) the array will communicate with that host and cause the VSS process to create a true VSS flushed snapshot.

This process also allows for a separation of duties between the server administrator and the storage administrator. i.e. The Storage Administrator can produce a snapshot on a specific VM or application without the need to have the server credentials.

Lets see the process in action and create a Snapshot of a Hyper-V VM, assuming that you have installed the Nimble Windows Toolkit (NWT) on the server but have never configured the VSS Provider.

The user would log onto to the server and choose to open a NWT PowerShell Toolkit command window. 

From the NWT PowerShell Toolkit window;

PS C:\> $MyCred = (get-credential)

Note: The credentials supplied here can either be local array credentials or since the array can be joined to your domain these could be AD credentials that have been given the proper permissions.

PS C:\> Set-NWTConfiguration -GroupMgmtIP -Credential $MyCred

Once you have the Host set up to trust the VSS requests from the Nimble Array controller you would make sure that the Nimble Volumes that you assign to this host all use a protection schedule which points back to the server.


Once you have configured the volume collection to contact the server for all of the volume snapshots, you can choose to test the complete VSS process from the array using the Validate Option shown below.


To recap, this process completes the following steps;

  1. Array sends Snapshot request to Host that storage is assigned to
  2. Host Nimble Snapshot listening service will receive the command
  3. Nimble Host listening service executes VSS Requester to trigger all VSS writers
  4. VSS writer issues flush then pause writes
  5. VSS writer will trigger the VSS Provider
  6. VSS provider contacts Nimble Array to trigger hardware snapshot
  7. VSS provider notified of completion, it will inform the VSS writer to release writes.

This is the first in a four part series, Look for next next Part to this series 'How to Access your VSS flushed Backups'.

The next part can be found here;


Chris Lionetti