Does FreeBSD's ZFS reserve 1/64 of the capacity for COW?

Trond Endrestøl Trond.Endrestol at fagskolen.gjovik.no
Mon Dec 9 07:15:12 UTC 2013


On Fri, 6 Dec 2013 08:47-0800, Freddie Cash wrote:

> On Fri, Dec 6, 2013 at 4:46 AM, Trond Endrestøl <
> Trond.Endrestol at fagskolen.gjovik.no> wrote:
> 
> > Hi,
> >
> > Today I came across "Becoming a ZFS Ninja Part 1"
> > http://www.youtube.com/watch?v=tPsV_8k-aVU featuring Ben Rockwood who
> > stated that ZFS reserves 1/64 of the capacity for COW safe-guarding.
> > Fast forward to 00:49:44. Thus, one should take this fact into account
> > when planning the storage capacity of your (larger) zpools.
> >
> > Does FreeBSD's ZFS also reserve 1/64 of the capacity for COW?
> >
> > If it's true, then I guess this should be noted in zpool(8) and in the
> > Handbook.
> >
> > Any comments or insights?
> > Do you think I should file a PR?
> >
> > Have a nice weekend! ;-)
> >
> 
> Based on the experience I went through a week or so ago, I would have to
> say, no.  (Unless this is an unrelated issue.)
> 
> I filled a 75 TB pool 100% full, 0 bytes left.  Was unable to delete files,
> was unable to "cp /dev/null" files, was unable to truncate files.??  Mostly
> due to snapshots and "deleting" a file actually marks the blocks as part of
> the previous snapshot and updates a bunch of metadata.  And, was unable to
> destroy any snapshots as there was 0 space to write out metadata.
> 
> Thankfully, I had 1 ZFS filesystem without any snapshots, and I was able to
> successfully delete files from that dataset.  Once a few MB of free space
> was made available, then I was able to start deleting snapshots
> 
> ?I now have a dataset on each ZFS pool called "do-not-delete" with a 1 GB
> reservation (and no snapshots).  This way, if the pool ever gets filled to
> 100% (and it did a few days later), it's a simple matter to "create" free
> space:
>   # zfs set reservation=512M storage/do-not-delete
> ?
> Then delete some snapshots, and set the reservation back to 1 GB.
> 
> I've now hit the 100% full issue 3 times.  Twice, the do-not-delete
> reservation saved me.

That's a handy tip. Thanks.

-- 
+-------------------------------+------------------------------------+
| Vennlig hilsen,               | Best regards,                      |
| Trond Endrestøl,              | Trond Endrestøl,                   |
| IT-ansvarlig,                 | System administrator,              |
| Fagskolen Innlandet,          | Gjøvik Technical College, Norway,  |
| tlf. mob.   952 62 567,       | Cellular...: +47 952 62 567,       |
| sentralbord 61 14 54 00.      | Switchboard: +47 61 14 54 00.      |
+-------------------------------+------------------------------------+


More information about the freebsd-stable mailing list