Pool with no space left on device

ichikasuto

Cadet
Joined
Mar 29, 2019
Messages
5
Hi everyone,

I realize I flew too close to the sun and one of my pools (x2 14TB drives) had <100GB left and when I updated from TrueNAS 12.0 to 13.0 the pool ended up reporting 0B. I tried to truncate some files to delete but had no luck. And since there's no snapshots stored on this pool, I can't delete any to free up space. After reading up on some threads of similar situations it seems I'm left with the following options:

  1. Transfer all of the files from this pool into separate pool(s) and recreate the pool from scratch and retransfer any desired data back in.
  2. Buy another 14TB drive so that I can add another vdev into the pool.
Does this seem about right? My likely option is #2 since I don't have enough available storage to migrate the data elsewhere and I need to increase the storage capacity of my server anyways. I've tried looking at some suggested solutions on this forum but these options seem to be the only ideal choices. I also considered rolling back to 12.0 but I'm doubtful that would magically change the capacity of my affected pool.
 

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
If you have any ZFS datasets with a "reservation", and that dataset is not using all it's space, you can reduce or remove that reservation to obtain some usable space.

In fact, this is a common tool to prevent filling up a ZFS pool by having a throw away dataset with a few 100Megabytes, (or a gig), of reservation. If the pool becomes full, you can reset that reservation and get enough space for cleanup.

If you have any zVols you can sacrifice, you can change one of them to use a lower value. It might corrupt any data in it, thus the warning of "sacrifice". That's using something like zfs set volsize=X ZVOL with X being smaller than it is now and ZVOL being the zVol you can shrink.

There is supposed to be a way to get out of this, using some specially reserved space. I don't remember the details.
 

ichikasuto

Cadet
Joined
Mar 29, 2019
Messages
5
If you have any ZFS datasets with a "reservation", and that dataset is not using all it's space, you can reduce or remove that reservation to obtain some usable space.

In fact, this is a common tool to prevent filling up a ZFS pool by having a throw away dataset with a few 100Megabytes, (or a gig), of reservation. If the pool becomes full, you can reset that reservation and get enough space for cleanup.

If you have any zVols you can sacrifice, you can change one of them to use a lower value. It might corrupt any data in it, thus the warning of "sacrifice". That's using something like zfs set volsize=X ZVOL with X being smaller than it is now and ZVOL being the zVol you can shrink.

There is supposed to be a way to get out of this, using some specially reserved space. I don't remember the details.
I assume by reservation, you are referring to the "Reserved space for this dataset" section of the dataset options? I sadly left that empty (guessing defaults to 0?) so it sounds like there's no reservation for me to remove for some usable space.

And I also do not have any zVols in my datasets so I can't utilize that as well. :frown:
 
Top