With ZoL in use, any reason not to use xattr=sa and dnodesize=auto?

Stilez

Guru
Joined
Apr 8, 2016
Messages
529
These properties apparently make a significant performance difference for Samba shares and are widely recommended for ZoL, but were not made the default (even on ZoL itself) due to compatibility between Ilumos ZFS/ZFS on Linux. (link)

With TrueNAS being based on ZoL, and me not caring at all about non-FreeBSD compatibility, or older versions of TrueNAS, is there any reason not to set those 2 settings?

Useful information on these properties (I found more on zattr than dnodesize):
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
xattr = sa is default for new SMB shares in TrueNAS Core.
Worth changing on an older system that has been upgraded?
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,554
Worth changing on an older system that has been upgraded?
Not really unless you intend to migrate the data. It affects on-disk format when xattrs are written. I also personally am conservative about changes to existing datasets that are not backwards-compatible with older versions of FreeNAS (but other people may have different levels of risk tolerance).
 

Stilez

Guru
Joined
Apr 8, 2016
Messages
529
Most of performance improvements vis-a-vis directory listing and DOS attributes can be achieved by simply using vfs_ixnas in 11.3+.
As a point of interest, I don't see a control for vfs options in 12. Where is this set, or unset? More generally, where can one see a list of vfs modules available, and selectable?
 

indy

Patron
Joined
Dec 28, 2013
Messages
287

For anyone else interested in the xattr=sa functionality in Core, the above link shows the current status in OpenZFS.
Currently it is in master but not in any release.
 

Stilez

Guru
Joined
Apr 8, 2016
Messages
529
I'm confused too. Anodos and PRs say it was integrated in 2020/2021. But there's no GUI control for it. Should there be? And, if one wishes to change how future file writes are done, to take advantage (but not rewrite older files via migration), what is the right shell code or aux. params.for it?
 

indy

Patron
Joined
Dec 28, 2013
Messages
287
I think the confusing part is that OpenZFS on FreeBSD currently lets you set xattr=sa but then ignores it and uses xattr=on.

when I look at this pull request and the releases it seems like xattr=sa was integrated in 2021?
It was integrated into master, but not everything that is in master makes it into the next release, especially new features.
I would assume honoring xattr=sa is considered a significant on-disk change and consequently would be kept back until a major version release, like 2.2 or 3.0.

Ixsystems backported the feature for v13 however.
 

indy

Patron
Joined
Dec 28, 2013
Messages
287
If anyone else is wondering what dnodesize=auto actually means...
dnodesize=auto is (currently) the same as dnodesize=1k
 

veritas

Dabbler
Joined
Mar 12, 2022
Messages
10
What is dnodesize, and when would one want to change it? Search didn't really help me.
 

indy

Patron
Joined
Dec 28, 2013
Messages
287
From my understanding it only affects the amount of space that system attributes can use (without the need for an additional block).
If you do not make heavy use of system attributes it is probably best to just leave it on auto.
 

thulle

Cadet
Joined
Jan 23, 2019
Messages
7

For anyone else interested in the xattr=sa functionality in Core, the above link shows the current status in OpenZFS.
Currently it is in master but not in any release.

Got interested in this since I heavily use samba and posixacl. Apparently it's merged for zfs-2.2.0, and if I'm reading the tickets on the truenas bugtracker correctly that's scheduled for the 13.1 release.
 
Top