I have a large volume containing only an NFS share I'd like to split up. 500GB of it (three specific subdirectories) needs to be put into a new volume. I'd like to avoid writing this data again. Here's what I think would work, but a colleague thinks that it won't work:

  • Flexclone the large volume
  • On a management server, mount the flexcloned volume and delete all the other subdirectories
  • Mount the original volume and delete the three subdirectories
  • Split off the clone

The way I understand it, when you split off a FlexClone, only the WAFL blocks with more than one pointer will get copied. In theory, I shouldn't have any (or many) of those. I'd be left with two non-linked volumes containing completely different data, and none of the 500GB would have been written.

Is this the case? If I split a FlexCloned volume after deleting some data from the source volume, will it copy those blocks?


This makes perfect sense - as you know the original data will reside on disk in it's original location and not be copied. Only the references to it will change:


Now you can delete the data you don't need in the respective locations, delete the snapshot (I think) and do a vol clone split:

Starts the process of splitting the FlexClone volume named Widget from its parent FlexVol volume. The split will make a copy of all blocks associated with the FlexClone volume that currently reside in the parent FlexVol volume. The process can take a while to complete and proceeds in the background. Afterward, the volume will be an independent FlexVol volume with space guarantees reenabled.

(if it doesn't let you delete the snapshot, you'll need to do the split first, resulting in copying the data)

source: http://www.redbooks.ibm.com/redpapers/pdfs/redp4133.pdf

  • Ah, but does that split necessarily copy the data? What if it only exists in one of the two volumes? – Basil Jul 31 '12 at 15:31

You are correct.

From NetApp KB 3013526:

Immediately after the creation of a FlexClone volume, all data is shared between it and the reference snapshot of the parent volume, and splitting the FlexClone volume from the parent volume would require a storage capacity equal to the used capacity of the parent active filesystem at the time of the snapshot. As the FlexClone volume and the parent diverge due to writes, overwrites, and deletions, the amount of shared data decreases. Data ONTAP includes a command that estimates the amount of storage capacity required to split a FlexClone volume from its parent. ... For Data ONTAP in 7-Mode, use the vol clone split estimate command. The following is a sample usage and output of this command.

7-mode> vol clone split estimate quotas_c An estimated 10gb available storage is required in the aggregate to split clone volume 'quotas_c' from its parent.


It would be much easier just to use ndmpcopy on a filer to copy whatever directory you need to copy to a fresh volume. ndmpcopy also supports incremental copies. Or if your directory is a QTree, you can use QTree snapmirror to get your data where you want them to be.

  • That's what we were trying to avoid- lots of writes. – Basil Dec 21 '12 at 23:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.