When Making a Volume Smaller Makes the Free Space Larger!

If you have Qtree tracking quotas enabled, and a user connects to a share via the Qtree (or a lower level), the Windows Client will report the logical size of data in the Qtree and the logical size of the volume.

Q: But what about if you have dedupe?

Very roughly ...

The Windows Client will report the logical size of the data whilst logical data in qtree is less than the logical size of the volume.
If the logical data in the qtree is greater than the logical size of the volume, the Windows Client will report the deduped size.

Q: But what happens when we go from logical size of data in the Qtree is less than the logical size of the volume, to logical size of data in the Qtree is greater than the logical size of the volume?

Firstly, setting up our demo 1 GB volume in CDOT ::>

vol create testvol1 -vserver CIFSV1 -aggregate N1_aggr1 -size 1g -space-guarantee none -percent-snapshot-space 0
vol mount testvol1 -vserver CIFSV1 -junction-path /testvol1
qtree create -vserver CIFSV1 -volume testvol1 -qtree qtree1
cifs share create -vserver CIFSV1 -share-name testvol1 -path /testvol1
cifs share create -vserver CIFSV1 -share-name qtree1 -path /testvol1/qtree1
quota policy rule create -vserver CIFSV1 -policy-name default -volume testvol1 -type tree -target qtree1 -threshold "-"
vol quota on -vserver CIFSV1 -volume testvol1
sis on -vserver CIFSV1 -volume testvol1

And mapping via a Windows client and the DOS prompt to the volume share and qtree share >

net use T: \\CIFSV1\testvol1
net use Q: \\CIFSV1\qtree1

We fill the Qtree with 4 sets of the same ~250 MB of data (but not quite) and run dedupe (we’ll roughly get a 4:1 dedupe ratio) ::>

sis start -vserver CIFSV1 -volume testvol1

After the dedupe has finished, this is what our client sees:

Image: Volume share with 761 MB free

Image: Qtree share with 12.4 MB free
So, there’s only 12.4 MB space left according to the Qtree mapped drive, but 761 MB space left according to the volume mapped drive.

What happens when we try and add more than 12.4 MB to the Qtree (say another set of ~250 MB)?

The answer is that it won’t go!

Image: Unable to add to the Qtree when the volume has plenty of space!

Q: But what if instead of increasing the size of the volume we reduce the size of the volume, so that the logical size of data in the Qtree is greater than in the volume? ::>

vol size testvol1 -vserver CIFSV1 -new-size 750m

Our Windows client now reports the deduped size of data in the volume over the Qtree share!

Image: Volume share with 487 MB free
Image: Qtree share with 487 MB free
And now we can add our fifth set of ~250 MB data to the Qtree!

Image: Now we can add more data to the Qtree!

Comments