I am relatively new to ONTAP and am currently reading through the NetApp article 'An Introduction to FlexClone Volumes'. I am also simulating the examples in the article.

My interpretation of the content is that a FleClone volume does not take any space in the aggregate because the space guarantee for the cloned volume is set to disabled. (guarantee=volume(disabled)).

When I clone a volume, either on my simulator or my filer, the space is instantly reserved in the aggregate and the space guarantee is not set to disabled. (guarantee=volume).

I have investigated the -s switch, which has the effect of not taking up space in the aggregate, but the option is displayed as guarantee=none, which is not the same thing.

I would be appreciate it if someone could advise why this should be.

Many thanks in advance.


Re: guarantee=volume(disabled)?


Volume clones do not initially *account* for any space in the aggregate because they are referencing the Parent Volume's Snapshot and tracking only changes (it's a kind or hologram of the original volume). The full size of the clone is *allocated* out of the aggregate (even before writes start taking up new aggregate space) because the clone is set to a guarantee of "volume" by default (a guarantee that the entire size of the volume is available in the aggregate for that clone.)

If you use the -s flag and force the clone's guarantee to "none", then the clone will not allocate space from the aggregate (thin provisioned). Once you "split" a clone off from its Parent Snapshot, it will abide by its guarantee and have full accounting of the blocks (in duplicate of the original volume.)

I hope this helps.