Updating Dataset ACL - Error: [ENOTSUP] NFSv4 ACLS are not supported

hoiber

Cadet
Joined
Apr 24, 2021
Messages
4
Dear All,

Trying to to add Dataset ACL's to various datasets and receiving the below error on each one of them. Just moved back to CORE from testing in SCALE, found a thread that said that there shouldn't be any issues with importing the pools back in assuming it is related but am not sure if this is linked to that or something different, Cant really seem to find much info related to it from a TrueNAS point of view.

Screen Shot 2021-04-25 at 11.19.03 am.png
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,694
Were these datasets created or modified in SCALE?
 

hoiber

Cadet
Joined
Apr 24, 2021
Messages
4
ah they were created in Core but the ACL's were changed in SCALE. Do i realistically need to roll 'back' to SCALE?
 

hoiber

Cadet
Joined
Apr 24, 2021
Messages
4
Spun up a new instance of TrueNAS-SCALE-21.04-ALPHA.1 and imported the pools but still getting NFSv4 ACL errors. Though this is slightly different.

1619396291731.png
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,694
The NFSv4 ACLs are still a work in progress on SCALE... its one of the primary reasons we still call it ALPHA. I think you should describe in detail how you changed the ACLs. Perhaps someone will be able to work out what should be done.
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,553
In ZFS on Linux and ZFS on FreeBSD there is an "acltype" dataset parameter. Options are none / off, posix, nfsv4. FreeBSD defaults to NFSv4, Linux defaults to POSIX1E. NFSv4 ACLs are not currently implemented in SCALE. Attempts to set / modify them will fail with EOPNOTSUP. POSIX ACLs are unlikely to be implemented in ZFS on FreeBSD for the foreseeable future, but on FreeBSD you should be able to simply switch acltype form POSIX1E to NFSv4 (with the caveat that all permissions information that is not represented by the POSIX mode _will_ be lost). Situation with FreeBSD->SCALE is more complex, since the internal ZFS ACL (nfsv4) _will_ be evaluated by any call to zfs_zaccess() in ZFS. This means that whatever was set on FreeBSD will somewhat be applied, but Linux kernel / vfs will have almost zero insight into it and will strip them during file copy / rsync / chmod / any other operation that may impact ACLs. At best, behavior can be stated to be "undefined". Hence, it is not recommended to simply import a CORE zpool into SCALE and use if (1) you were sharing files, and (2) you care about permissions (which we almost always do care about them in some form).

Current state of development of NFSv4 ACLs in SCALE is that it's currently passing > 90% of the regression / functional tests for NFSv4 ACLs on FreeBSD, but considering the potential ramifications of an incomplete or buggy implementation, I won't push into nightlies until we're passing 100%.
 

skittlebrau

Explorer
Joined
Sep 1, 2017
Messages
54
How does one change the acltype parameter assigned to an existing dataset? Assuming someone was using a dataset with TN SCALE and now wants to use it in TN Core.
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,694
How does one change the acltype parameter assigned to an existing dataset? Assuming someone was using a dataset with TN SCALE and now wants to use it in TN Core.
It should be noted that all work is being targeted at migrating from TrueNAS CORE to SCALE. There is no plan to enable migrating from TrueNAS SCALE back to CORE. This decision enables the SCALE developers to do whatever is best for SCALE users without requiring backward compatibility. ZFS replication will still work between CORE and SCALE.
 

skittlebrau

Explorer
Joined
Sep 1, 2017
Messages
54
Understandable. Main reason I’m just asking is to just save me a few hours of restoring from an offline backup.

Do I need to destroy the whole pool or just individual datasets and recreate in Core to get NFSv4 ACLs working?

Edit: I think I'll just restore from backup with a fresh pool.
 
Last edited:

Jecvay

Cadet
Joined
Jul 20, 2021
Messages
8
I have the same problem
created zpool in SCALE and reinstall a CORE
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,553
NFSv4 acltype is currently in SCALE. In beta1 Core pools were importing with dataset acltype set to off /noacl. This will be fixed in next beta. For now if you migrate you will have to manually convert acltype to the correct one. There are still some compatibility items that are not present in current beta (xattr compatibility for instance).

As far as changing acltype, I believe it is exposed in the gui, but if not `zfs set acltype=<something> pool/dataset`
 
Top