Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Jul 2024 23:48:57 -0400
From:      "Kevin P. Neal" <kpn@neutralgood.org>
To:        William Dudley <wfdudley@gmail.com>
Cc:        freebsd-questions <freebsd-questions@freebsd.org>
Subject:   Re: help with full zfs "partitions" - can't delete files
Message-ID:  <ZoYbqfM06Yk7LF8j@neutralgood.org>
In-Reply-To: <CAFsnNZKH0A8FztcB9Ntq3CJK0jF1oAhgH02eJjds56s3-JAmFQ@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

I'm not sure this was ever answered, so I'll chime in with advice for
the future.

On Mon, Jun 03, 2024 at 04:28:12PM -0400, William Dudley wrote:
>    The problem:
>    FreeBSD 13.3 amd64 system, with
>    a zfs pool built from two physical drives.
>    The zfs pool has 7 "partitions" (is that what they're called?)

They're called "datasets". ZFS can use an entire disk, or it can live in
a partition. The whole disk or partition is the container for the pool.
Inside the pool are datasets.

>    I was copying files over from another machine and didn't realize that
>    I filled one of the partitions.
>    I can't proceed now with this one full partition.

Strictly speaking, the pool is full because of the size of the dataset.

The old-school advice for avoiding this is to set the property
refreservation=1G on the top dataset of the pool. I had heard that
this wasn't necessary anymore. But your report sounds like it actually
is still needed.

The reason this works is because it reserves 1G of space for that dataset
so if the pool is otherwise filled there will still be that 1G free. You
aren't supposed to use the top dataset for anything except child datasets.
By convention, at least.

Since ZFS is a copy-on-write filesystem you need free space to make any
changes, but if the pool is totally full you can't make any changes. This
leads to the absurd situation where the pool is so full you can't delete
anything. BUT, if you have that 1G of reserved space in the top dataset
then you'll always have free space and thus can always delete things or
whatever.

>    Every single command fails due to "out of space".

(Side note: It doesn't hurt to reserve that 1G of space unless you really,
really need that last little scrap of space. But at point fragmentation
becomes a very serious issue and you'll have terrible performance issues
so, really, don't let it get to that point.)
--
Kevin P. Neal                                http://www.pobox.com/~kpn/

 "Good grief, I've just noticed I've typed in a rant. Sorry chaps!"
                            Keir Finlow Bates, circa 1998


help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZoYbqfM06Yk7LF8j>