HPE Storage Tech Insiders
Showing results for 
Search instead for 
Did you mean: 

Nimble OS 2.3 - Restore Workflow Automation for Snapshots


If you are using Nimble Storage with Windows servers, chances are you have the Nimble Windows Toolkit installed. It’s an integral part of connecting Nimble volumes to your Windows server including components such as our MPIO DSM and Nimble Connection Manager.

Did you know that installing NWT also provides you with some useful PowerShell tools? Yep, it’s true; and there is a new cmdlet included which can be particularly helpful when connecting to clones of existing volumes. Using this cmdlet greatly simplifies the process and makes it so that the connection can be entirely automated. In this blog post, we’ll take a look at an example in which we create a clone from a VSS synchronized snapshot of a SQL database.

First, let’s inspect those PowerShell cmdlets.  In order to use them, you need to import the Nimble PowerShell module, which NWT installs at

C:\Program Files\Nimble Storage\bin\Nimble.Powershell.dll


As you can see, there are four cmdlets included in this module. For this workflow, we’re going to focus on Get-NimVolume and Set-NimVolume.

To understand just how useful these cmdlets can be, it’s worthwhile to take a look at what the process would look like without them.

Let’s assume we’ve created and connected to our clone volume. That’s great, but we can’t quite use it yet. Why not you ask? Well, let’s take a closer look at it.  What does the Windows Disk Management tool have to say about it?

disk offline.png

OK, it’s offline. No big deal, we’ll just right-click on the disk and ask windows to bring it online:

disk online no driveletter.png

Is that all we need to do? Well, unfortunately no it isn’t. Let’s peel back the onion a bit more and take a look at the attributes which are set on the disk. For these, we’ll use the venerable diskpart tool.


OK, we have some work to do. Our volume is read-only, hidden, marked as a snapshot, and doesn’t have a drive letter. We’ll have to modify these attributes with diskpart before we can use our newly created clone.

Enter PowerShell.

Get-NimVolume will help us discover our Nimble volumes, and Set-NimVolume will let us programmatically bring the volume online, set the correct attributes, and give it a drive letter. Let’s find our clone volume with Get-NimVolume:


OK cool, we found our clone volume. How do we go about bringing it online and setting those attributes? Here’s where we would use Set-NimVolume. Let’s see what parameters this cmdlet takes:


As you can see here, we can specify the volume we want to modify be feeding Set-NimVolume a windows disk ID, or a Nimble volume serial number, which we can get from Get-NimVolume. To make things even easier, we can simply pipe the output from Get-NimVolume directly into Set-NimVolume.

Since we’ve already found our clone volume with Get-NimVolume, let’s just send it over to Set-NimVolume and set those attributes:


Boom. Done! In one fell swoop, we’ve brought the volume online, set all the appropriate attributes, and requested a drive letter. We can verify all of this using Disk Management and diskpart if we’d like to:


disk online.png

Now our volume is ready for use.  We can mount up the database contained within it for test and development, data recovery, or whatever purpose we had in mind. It doesn’t take a big stretch of the imagination to figure out workflows in which this can be extremely useful. 

For example, what if we wanted an automated way to refresh a test/dev database on a daily basis from a nightly VSS synchronized snapshot of a source database?  That’s not something we want to do manually, but with these cmdlets we can fully automate it as part of a larger PowerShell script.

Or perhaps we are replicating our Nimble volumes to a downstream array and we want to automate the connection process after promoting our downstream volumes?

Or perhaps we’re using Site Recovery Manager from VMware and want to fully automate the workflow for our VMs which are using in-guest iSCSI connections and taking advantage of Nimble’s application specific VSS synchronization?


About the Author



Thanks for sharing the info, it's an improvement for simplifying the restore process. Although I'm hoping something better from OS 2.3 when "restore automation" is listed as one of the features. Something would include clone the snapshot, set up permission, connect from the server, and delete the clone from the array after restore is done.


I'm on Nimble 2.2.8, which does not have all the cmdlets.  Is there anywhere I can download them?  I have only get-NimVolume, Get-NWTConfiguration and Set-NWTConfiguration.


Hi Amanda,

The "set-nimvolume" cmdlet is included as part of the Nimble Windows Toolkit version 2.3.x.  It's a separate piece of software from NimbleOS, but in general we recommend that the versions match up. The version of NWT you have installed doesn't have set-nimvolume included.  Is it possible that the array itself is already running NimbleOS 2.3.x? If so, installing NWT 2.3.x on your Windows host will provide you with the updated cmdlets.


I'm unable to set my disk online when I right-click from Disk Management. I get an error that The media is write protected.  I'm using version Diskpart will never see the disk until it is online.  So what am I missing?

EDIT: I do get information of my disk when I run Get-NimVolume | where NimbleVolumeName -eq mydiskname


Hey Shane, did you use Set-NimVolume to set Read-Only to False?


Yes but it was part of the command that included Get-NimVolume. Do I run this separately?


Ah, I read a little bit more closely.  So you have mapped your clone volume, it shows up in Disk Management as offline, you try to right-click -> online it, and that's where you're getting the write protection error?  Let me check with some of our Windows SME's.  In the meantime, you may want to open a case with Nimble Support.


Yes that is correct.  Thank you.


Just to be certain since it wasn't explicitly covered in this article, let's verify how you are creating your clone.  You are creating an actual Nimble clone from an existing snapshot, and not just mounting a snapshot (which may be non-writable), is that correct? To be clear, in the Nimble UI you should be listing the snapshots for a given volume, ticking the box to select one, and then clicking the "clone" button.


Yes that is correct.  I go to the volume, select the tab for Snapshot, select my snapshot then choose Clone.  Give it a name and then verify that the clone has the server name for Access tab.  Then I go to my server, open up Microsoft's iSCSI initiator, find the volume and choose Connect.  Then I can see the disk in Disk Manager after rescan of disk.  But it's offline and unable to bring it online.  When I right-click on the disk the only option that isn't greyed out is Offline.  When I click on Offline is when I get the message about it being read-only.  It's not that critical now but for future use I may need to do this for file restore in the future.


Hey Shane, I'd really suggest you get in touch with Nimble support on this one. There may be a variety of factors based on your specific installation which are contributing to this behavior.  Tough to diagnose on a forum, but our guys should be able to set you right.


Ok Thank you Julian.

Apr 24 - 25, 2018
Expert Days - 2018
Visit this forum and get the schedules for online HPE Expert Days where you can talk to HPE product experts, R&D and support team members and get answ...
Read more
June 19 - 21
Las Vegas, NV
HPE Discover 2018 Las Vegas
Visit this forum and learn about all things Discover 2018 in Las Vegas, Nevada, June 19 - 21, 2018.
Read more
View all