Using VNX Snapshots on Windows

In Block OE version 32 EMC introduced new snapshot functionality VNX Snapshots, very slick technology that simplifies the process of creating snapshots for block storage. There are lot of benefits in using VNX Snapshots versus legacy Snapview Snapshots (no need for RLP, no COFW ..etc). You can read about it in the following two documents:

http://www.emc.com/collateral/software/white-papers/h10858-vnx-snapshots-wp.pdf

https://support.emc.com/docu45754_SnapCLI_for_VNX_Release_Notes_Version_3.32.0.0.5.pdf?language=en_US

https://support.emc.com/docu41553_VNX-Command-Line-Interface-Reference-for-Block.pdf?language=en_US

These papers provide a lot of good information about the technology and some examples. I found some example kind of confusing so i wanted to provide my own examples. Overall goal was to allow my customer to create/delete/mount snapshots without needing to issue naviseccli commands.

Configuration:

VNX 5700 – Block OE 05.32.000.5.206

2 Windows 2008 R2 servers

SnapCLI – V3.32.0.0.5 – 1 (32 bits)

Naviseccli – 7.32.25.1.63

2 storage groups

stg-group1

stg-group2

1) First step we need to install snapcli on both Windows servers, nothing special there, next next Done
2) Next we need to create SMP (Snapshot Mount Point) and present it to stg-group2. Think of SMP as a placeholder device that will be used to attach snapshot to. On a management host where i have naviseccli installed i run the following command. You want to specify “allowInbandSnapAttach” option as that will allow you to attach snapshot on target host using snapcli, otherwise you would have to use naviseccli to attach it. Since our goal is to have customer only use snapcli that’s exactly what we need. LUN 353 is owned by SPA hence -spa A.

C:\>naviseccli -address 10.210.6.19 lun -create -type Snap -primaryLunName "LUN 353" -name SMP_LUN_353 -allowInbandSnapAttach yes -sp A

Now let’s see what SMP looks like and note snapshot mount point number

C:\>naviseccli -address 10.210.6.19 lun -list -l 353 -snapMountPoints
LOGICAL UNIT NUMBER 353
Name: LUN 353
Snapshot Mount Points: 7533

3) Now we need to add SMP to storage stg-group2, note alu is the snapshot mount point point number and since there are no LUNs in the storage group we are using hlu 0

C:\>naviseccli -address 10.210.6.19 storagegroup -addhlu -gname stg-group2 -alu 7533 -hlu 0

If we were to look in Disk Management and rescan, we would see “Unknown” disk in offline state.

smpview

4) At this point we are ready to create snapshot, on source system we flush any data in memory to disk and then create snapshot

C:\>snapcli flush -o F:

C:\>snapcli create -s "Snapshot_LUN_353" -o F:
Attempting to create snapshot Snapshot_LUN_353 on device \\.\PhysicalDrive1.
Attempting to create the snapshot on the entire LUN.
Created snapshot Snapshot_LUN_353.

5) Now on target system we are going to attach snapshot

C:\>snapcli attach -s "Snapshot_LUN_353" -f -d F:
Scanning for new devices.
User specified drive letter F:
Attached snapshot Snapshot_LUN_353 on device F:.

At this point if we look in Disk Management again the drive should be online and available

snapmounted
6) When you are done with snapshot we need to flush it and detach it, on target server we run these commands

C:\>snapcli flush -o F:
Flushed F:.

C:\>snapcli detach -s "Snapshot_LUN_353"
Detaching snapshot Snapshot_LUN_353 on device F:.

7) And finally delete the snapshot, on source server run

C:\>snapcli destroy -s "Snapshot_LUN_353" -o F:
Destroyed snapshot Snapshot_LUN_353 on object F:.
Advertisements

12 Responses to Using VNX Snapshots on Windows

  1. Anonymous says:

    it will be great if you can blog regarding VMAX as well…

  2. Daryn says:

    I know this is an old blog post, and probably a little off topic, but if anyone is still monitoring it, I was curious how Powerpath handles all this when the Snapshot is unmounted; our backup software (Commvault) mounts a snap, sans drive letter, does it’s backup then unmounts the snap and then deletes the path, problem is PP sees it as a dead path and running a powermt check is the only way to clear the dead paths. CV says it’s working as it should. Anyways, haven’t found much info on the newer VNX snaps so trying to get info from anywhere I can. Thanks much.

    • dynamox says:

      Daryn,

      it’s a PowerPath thing, i have the same issue with VMAX snapshots. Whenever i unmount a device, PowerPath starts complaining. You’ll just need add a “clean-up” routine to your script. There is nothing in VNX snapshots that would alleviate this issues.

      • Daryn says:

        Thanks for replying to an old post, I really appreciate it, it’s been hard finding answers in relation to snaps and PP for some reason. Since this is Commvault’s code I don’t really have much I can do unfortunately, I went back and forth with CV and EMC support seeing if we stumble across something and the PP team said what you’re saying, that some kind of cleanup needs to happen at the end. Commvault says they are running a cleanup, they are supposedly running a “powermt remove force dev =” command, but I don’t know what they’re full code looks like so who knows. EMC said I could try to turn on debugging with the “set symapi_debug=-1” command but I can’t seem to get that to log anything. Anyways thanks again for the response, at least I now know this is a normal thing with PP, and hoping Commvault can double check their code and see if they can get the cleanup to work properly. I think they’re take is, if the snaps work, even if they’re reusing a dead link from a previous snap job, then that’s ok, not sure if it really is, but not much I can do about it. Thanks again.

      • dynamox says:

        Daryn,

        not sure why they are asking you to enable debug for symapi, that’s part of solutions enabler software package. So in CV you don’t have an option to run a pre/post script, a lot of backup products allow you to do that. What about using MPIO instead of PowerPath ?

      • Anonymous says:

        Sorry for the late reply, email was lost in my Inbox; they do have pre/post options but only when the original snapshot is taken, when they do the actual snap mount to backup the snap data to disk is when PP gets the dead link and there is no options for pre/post there unfortunately, I requested that to their dev team, if they couldn’t put in in their code itself it would be nice to have the pre/post options for that operation. Guess I’ll see if it gets put in or not in the next SP or have to wait until another version. Anyways thanks again, nice to know I wasn’t going crazy!

  3. Ben Conrad says:

    I’ve read your post regarding using snapcli on Linux. Specifically I see you can flush on multiple devices at once (snapcli flush -o /dev/emcpowera1,/dev/emcpowerb1). When I try this on a Windows 2008 R2 server I get:

    C:\>snapcli flush -o F:,G:
    Error looking up object “F:,G:”.
    Error: 0x3E16001A (The driveletter format is invalid. Expecting “[A-Za-z]:” syntax)

    It won’t take multiple drive letters without error. I have both LUNs in a CG. Any ideas?

    Ben

  4. dynamox says:

    Ben,

    i don’t have a test box right now, have you tried something like this:

    snapcli flush -o F:,G: -c

  5. Ben Conrad says:

    Hi,

    Usage:
    snapcli flush -h | -o object_name [-t object_type]

    Flush does not seem to to interact with a CG (no -c switch in help), i tried and it complained about -c. It also won’t work with multiple physical drives shown below. I’m wondering if flush is actually all that important anyhow. If I flush at time T1 and then run ‘snapcli create…’ at time T2 the time between the two commands is at least several milliseconds and that’s enough to invalidate the file buffer-disk consistency. It seems that I would want to be involving VSS & SQL Server to ensure the snap is consistent. Or, if I’m using a consistency group maybe I can get away with no VSS and crash consistent. And when I attach the snapshot on the target host SQL will recover itself as if I pulled the power plug.

    I’ve also been working with AppSync & ESI Powershell but getting it automated via script has been pretty challenging, the ESI Powershell documentation is not that good. I’m about 95% done with the POC for AppSync & ESI.

    C:\>snapcli flush -o F:,G:
    Error looking up object “F:,G:”.
    Error: 0x3E16001A (The driveletter format is invalid. Expecting “[A-Za-z]:” sy
    ntax)

    C:\>
    C:\>wmic diskdrive list brief | grep DGC
    DGC VRAID Multi-Path Disk Device \\.\PHYSICALDRIVE2 DGC VRAID Multi-Path
    Disk Device 1 10733990400
    DGC VRAID Multi-Path Disk Device \\.\PHYSICALDRIVE3 DGC VRAID Multi-Path
    Disk Device 1 8587192320

    C:\>
    C:\>
    C:\>snapcli flush -o \\.\PHYSICALDRIVE2
    Flushed \\.\PhysicalDrive2.

    C:\>snapcli flush -o \\.\PHYSICALDRIVE2,\\.\PHYSICALDRIVE3
    Error looking up object “\\.\PhysicalDrive2,\\.\PHYSICALDRIVE3”.
    Error: 0x3E050052 (An attempt to open the device failed)

    Ben

  6. dynamox says:

    if you are ok with crash consistent then -cg should be sufficient. Appsync or Recovery Manager would be my next choice.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: