Microsoft Virtualization Discussions

What is SIS-Clone?

bsti
6,533 Views

I see the following new feature outlined in the Powershell ToolKit 1.6:

File cloning

Copy-NaHostFile can clone individual files within (or between) NTFS-formatted Data ONTAP LUNs. The LUN(s) must be mounted on the local host, but the cmdlet uses Data ONTAP's SIS-clone feature to clone the files rapidly.

What is the SIS-Clone feature in ONTAP exactly?  I'd like to do a little reading on it if I can find some documentation.  Thanks!

5 REPLIES 5

cknight
6,533 Views

If you're familiar with Data ONTAP's A-SIS (advanced single instance storage) deduplication technology that is integral to WAFL, then you're already there.  SIS-clone (which may not be the official term) uses the same engine to clone files or LUNs rapidly by merely copying the block pointers.

The same mechanism can also clone block ranges, so Copy-NaHostFile in Toolkit 1.6 uses NTFS APIs to determine the block ranges for a file within a LUN mounted on the local host.  It then clones only those ranges into a new file, so you get a near-instantaneous read/write clone without any data being copied on either the host or the storage controller or any additional space consumed within the Data ONTAP volume.  It's a great way to clone VHD files, etc.

If you want to use the same mechanism to clone entire LUNs or files in CIFS shares, you can do that using the Toolkit cmdlets in the clone category:

PS C:\> Get-NaHelp -Category clone

Name                                    Api                                     Category

----                                    ---                                     --------

Clear-NaClone                           {clone-clear}                           clone

Get-NaClone                             {clone-list-status}                     clone

Start-NaClone                           {clone-start}                           clone

Stop-NaClone                            {clone-stop}                            clone

bsti
6,533 Views

THanks for the reply!  OK, so this is doing a sub-lun clone under the hood.  Neat. 

I'm guessing that this only works when the files are on the same controller, correct?

sizemore
6,533 Views

Because it leverages the actual SIS engine it has the same restrictions as Dedupe.  Meaning it has to be in the same Volume.

~Glenn

sizemore
6,533 Views

SIS clone is a capability withing Data ONTAP to run the dedupe engine in reverse to clone a file.  Instead of copying all the block, and then removing the duplicate blockd at a later date.  Instead we create a sparse file  (non-allocated) and then SIS clone manipulates the WAFL pointers in the destination file to point to the blocks for the source file. The end result is an exact copy of the source file that is pre-deduped.  The benefit of SIS-Clone is we can manipulate WAFL pointers even faster than we can write block, so the copy operation is an order of magnitude quicker. 

If you want to deep dive into SIS-Clone sometime refered to as "FlexClone for Files" check out TR-3742.  I also did a blog post a couple weeks ago that explaines how Copy-NaHostFile works in depth here.

Hope that helps,

~Glenn

bsti
6,533 Views

Thanks for the info, Glenn.  Exactly what I was looking for.

Public