VMware Solutions Discussions

fractional reserve % and available disk space


what is the correct amount to use for the snap reserve?

by default it uses 20%. Is it recommended to lower that to 0?

also I have 2 aggregates. how do I find out how much is left to create or expand the aggregate?




First of all, let's clarify what are you asking about:

- fractional reserve, as per the subject?


- snap reserve?

These are two different things: the former was designed to protect writes to a LUN if there are snapshots in a containing volume; the latter puts aside some space for snapshots in a volume.

Snap reserve setting is a subject of a personal preference really. In general, for volumes containing LUNs it makes sense to set it to 0%. For file shares, it really depends. If you set it too big, then potentially you may lose some space, as active file system cannot overflow into snap reserve area. The opposite is possible tough, so snapshots may overflow into the 'data' area, if they need more space than set by snap reserve.



these are vmware luns.

I created a lun inside a volume 1:1

so if I set the snap reserve to 0, does this mean if I need to recover a lun or vm from a snapshot, it will not be possible because there is 0% space for snaps?


I don't like making a LUN as big as a containing volume - if you meant that. Taking a snapshot in this case is asking for trouble, as LUN may go offline due to a lack of space.

Personally I prefer thinly provisioned volume (space reservation set to none) way bigger than a LUN it contains. If you take any snapshots (and make subsequent changes to the live data), some space will be of course taken from the containing aggregate.



hiow much bigger does the volume have to be?

if I create a 1tb lun, what should volume size be?

these are my vol options

nosnap=off, nosnapdir=off, minra=off, no_atime_update=off, nvfail=off,

ignore_inconsistent=off, snapmirrored=off, create_ucode=on,

convert_ucode=off, maxdirsize=45875, schedsnapname=ordinal,

fs_size_fixed=off, compression=off, guarantee=volume, svo_enable=off,

svo_checksum=off, svo_allow_rman=off, svo_reject_errors=off,

no_i2p=off, fractional_reserve=0, extent=off, try_first=volume_grow,

read_realloc=off, snapshot_clone_dependency=off, nbu_archival_snap=off

snap reserve is set to 0%

This email and any attachments thereto may contain private, confidential, and privileged material for the sole use of the intended recipient. Any review, copying, or distribution of this email (or any attachments thereto) by others is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.


my lun and vol is completely filled up

trying to set lun reservation to disable and it says no space left.

df -V -g -h

/vol/xxx/ 150GB 144GB 5131MB 97% /vol/xxx/

/vol/xxx/.snapshot 0MB 129MB 0MB ---% /vol/xxx/.snapshot

/vol/yyy/ 150GB 150GB 0GB 100% /vol/yyy/

/vol/yyy/.snapshot 0MB 217MB 0MB ---% /vol/yyy/.snapshot

/vol/zzz/ 150GB 150GB 0GB 100% /vol/zzz/

/vol/zzz/.snapshot 0MB 128MB 0MB ---% /vol/zzz/.snapshot


Perhaps some definitions will provide some clarity:

Volume Guarantee = reserve space in the aggregate.  If set to 'volume' that volume reserves its full size from the aggregate regardless of whether it has data in it or not.  If set to 'none' this is effectively thin provisioned. (vol options guarantee)

LUN Space Reservation = reserves the space for the LUN if set to enabled whether there is any data in it or not (lun set reservation ...)

Fractional Reserve = reserves blocks in the volume to use in the event that the volume fills up.  (often this is turned off these days).  Only comes into effect when there is one or more snapshots.  See how much is being used, if enabled, using df -r

Snapshot Reserve = used as an area for snapshots.  Snapshots do not need this to exist - if it's set to zero snapshot data consumes space in the volume just like the rest of the data.

Here's how I normally set things up, as an example:  Set your vol size to the size of the LUN plus about a third, so let's say 1.5TB in your case, but set the volume guarantee to 'none'.  This is more space efficient, but still allows the LUN to use it's full size if it wants to.  Set snapshot reserve to zero (snap reserve doesn't have much use when using LUN's).  Leave fractional_reserve set to zero, unless you're paranoid and have a decent budget for storage.  Set lun space reservation to disabled, as this combined with volume guarantee of none will realize any dedupe savings later on (since you're using vmware) - see the dedupe DIG for more info.  This way your LUN can grow to the full 1.1TB used if it likes, and still has ~400GB for snapshot space.  Now, if your snapshots grow beyond the 400GB available, your LUN will go offline, so to prevent this, set the volume autosize to on and set the max to 2t and the increment to, say, 100g.

There are all sorts of different ways of doing it, and different people have different preferences, so this is an example rather than a set of rules.  Try this and see how you get on.



It's fair to say, keeping a close eye on aggregate utilisation it's strongly recommended, as this is key with fully blown thin provisioning!



why does

Set snapshot reserve to zero (snap reserve doesn't have much use when using LUN's)?


Please read tr-3483 for a detailed explanation of space management with LUN.


Forgot about aggregates question:

To create new, or expand an existing aggregate you need spare disks - you can check it either via GUI, or CLI: sysconfig -r