NFS Clients See Pool's Available Space as Total Capacity

7824c5a4

Cadet
Joined
Jan 19, 2023
Messages
2
Hello! First post on the forum!

I have an NFS share on a ~196TiB pool, and it has about 88TiB free. However, NFS clients are reporting the 88TiB number as the total capacity of the share, and that is causing issues on the client end.

Ive attached the output of df from the client, the NFS share settings, and the pool statistics. The machine is running Core 13.0-U3.1

Is this a ZFS accounting quirk, an issue with the client, or expected behavior? Is there any workaround?

Thank you!
 

Attachments

  • NFS_df.png
    NFS_df.png
    19.1 KB · Views: 188
  • TrueNAS_NFS.png
    TrueNAS_NFS.png
    472.3 KB · Views: 198
  • TrueNAS_Pool.png
    TrueNAS_Pool.png
    218.6 KB · Views: 175

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
Yes, if I understand it correctly, it is a quirk of ZFS.

If you have snapshots or child datasets, the "SIZE" will be the dataset used+free space, not the total space in the pool.

If anyone has more complete, (or correct), information, please add to it.
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,553
Yes, if I understand it correctly, it is a quirk of ZFS.

If you have snapshots or child datasets, the "SIZE" will be the dataset used+free space, not the total space in the pool.

If anyone has more complete, (or correct), information, please add to it.


Applications generally rely on statvfs (Linux) / statfs (FreeBSD) to report space. Ultimately, it all relies on:
```
dmu_objset_space(zfsvfs->z_os,
&refdbytes, &availbytes, &usedobjs, &availobjs);
```
Which in case of bytes counters means that response to statvfs is calculated from REFERENCED and AVAILABLE (though dmu_object_space() will also account for quota / reservation appropriately).

I have a feeling this user's issue is that the dataset in question has only 88 MiB available. I can't recall any applications that care about numbers other than `available` here.
 
Top