Network Storage Protocols Discussions

Highlighted

fractional reserve

I am reading that if I set fractional reserve to 100% I can overwrite my LUN

I've tried that and it doesn't work

I created a 2GB volume

I created a 1GB LUN

mapped the LUN to a windows box

filled up the disk with 700MB of data

took a snapshot

tried to put another 500MB and I get 'disk is full' from windows

(guarantee=volume)

(fractional reserve=100)

what am I missing?

22 REPLIES 22
Highlighted

Re: fractional reserve

My understanding (which is not great!)  is that the Fractional Reserve is used to ensure snapshots can still be taken when the volume is full.

When you took the snapshot, the volume size was reduced by the fractional reserve value a df -r would show the change.

What you have done is used 700MB of your 1GB LUN and then attempted to add another 500MB which exceeds the LUN capacity of 1GB. Hence the windows error that the disk is full.

If you added another 300MB file, the LUN will be full. With Fractional reserve = 100% you can still take a snapshot and ensure both LUN and snaphot data can be accommodated in the volume.

The 100% value allows a snapshot to be taken in the instance that 100% of the LUN changed since the previous snapshot.

I hope this helps.

Highlighted

Re: fractional reserve

Hi guys,

I recommend reading this post (plus comments) for better understanding of fractional reserve:

https://communities.netapp.com/groups/chris-kranz-hardware-pro/blog/2009/03/05/fractional-reservation--lun-overwrite

In a nutshell, fractional reserve purpose is to make sure writes to a LUN will not fail due to the volume being filled with growing snapshots. This is because how NetApp snapshots work - existing blocks are locked in snapshot, so if there is new (or changed) data to be written, some free space in a volume is required.

Regards,
Radek

Highlighted

Re: fractional reserve

thanks guys

I understand what it's supposed to do but why is it not doing that?

there is enough space in the volume - we only using 700MB in the LUN - the volume is 2GB

the purpose of fractional_reserve is to allow overwrite in a LUN, meaning, is I have a 1 GB LUN in a 2GB volume, I should be able to overwrite the 1GB

I hope someone can figure it out because so far I couldn't get any answer other than "read this document", which describes the expected procedure (which doesn't happen in my case)

Highlighted

Re: fractional reserve

You tried to put 500GB of data on a 1GB LUN and now you are surprised that you get “disk full” from Windows?

Highlighted

Re: fractional reserve

Volume size is irrelevant in your particular case, as the host sees the LUN size & is not aware what is going on outside of it.

Think about NetApp volume as a container for LUN, pretty much invisible from the host side in a SAN environment.

Highlighted

Re: fractional reserve

I understand what it's supposed to do but why is it not doing that?

It is behaving exactly as designed, it's your understanding that is lacking detail. Fractional Reserve will allow LUN data to extend into the remaining volume space, but not from the Windows side.

When the first snapshot is taken, the space is reserved in the volume and the volume available space is reduced accordingly.

When you take any snapshot, ONTAP marks all blocks in use by the active file system as read only. If one of these blocks is required to be changed in the future, a copy of that block is made, and it is that copy which is modified. With a fractional reserve, if there is not enough space to allocate this new block in your 1GB LUN it will be allocated in the fractional reserve taken off the Volume when you performed the first snapshot.

Highlighted

Re: fractional reserve

"You tried to put 500GB of data on a 1GB LUN and now you are surprised that you get “disk full” from Windows?"

check again - it is 500MB - it was a mistake

"Volume size is irrelevant in your particular case, as the host sees the LUN size & is not aware what is going on outside of it.

Think about NetApp volume as a container for LUN, pretty much invisible from the host side in a SAN environment"

- not true

the more replies a get, the more I see how people are confused about this

the below screen shots were taken from an official NetApp document that describes fractional reserve scenario (100% first and then 0%)

you can clearly see 50GB LUN that was filled with 100GB of data ("overwrite 25GB...)

Anyone else?

Highlighted

Re: fractional reserve

"Fractional Reserve will allow LUN data to extend into the remaining volume space, but not from the Windows side"

not from windows? from where would it get the overwrite then?

Highlighted

Re: fractional reserve

you can clearly see 50GB LUN that was filled with 100GB of data ("overwrite 25GB...)

This diagram actually gives a very good description of how fractional reserve works.

Bear in mind though "overwrite" means you are changing the data, not appending data - so at any point in time there was not more than 50GB of data within the LUN.

Highlighted

Re: fractional reserve

"changing the data, not appending data" - you have to explain that please...

let's try a different approach. How do I reproduce the scenario in the diagram above?

Highlighted

Re: fractional reserve

You can repeat the above by modifying over 300MB of the 700MB file contents you initially created and snapshot.

Highlighted

Re: fractional reserve

Changing the content of data blocks already allocated by the active file system, in your terms 'writing' to blocks already allocated by the 700MB file created on the LUN. The point is that the snapshot marks the 700MB file data blocks as read only. When an attempt is made to change data held in these blocks a copy is made and the copy is changed.

Highlighted

Re: fractional reserve

"attempt is made to change data" - you mean more writes, correct?

OK, so we're back to 'writing' - I've tried that (see above) already

what do I need to do to generate an overwrite according to the diagram? (or offline a LUN)

Highlighted

Re: fractional reserve

This is a WAG but I think the confusion here is in the word "overwrite".  The OP states:

> I created a 1GB LUN

> mapped the LUN to a windows box

> filled up the disk with 700MB of data

> tried to put another 500MB and I get 'disk is full' from windows

If you have a 1GB lun, it can only hold 1GB of data.  You can't put 1200MB of data in it.  The "overwrite" doesn't mean there is some hidden "reserve" space there in case you fill up your lun.  What other posters are referring to as overwrite is if you write over existing data.

Windows only sees 1GB of space, even though your 1GB lun is in a 2GB volume.  The rest of the space on the volume is for Ontap's use (snapshots).  HTH.

Highlighted

Re: fractional reserve

"write over existing data" - what does that mean?

Check out the KB!
Knowledge Base
All Community Forums