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.
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.
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.
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.