Hi
I would like to know if the file flags on OpenZFS are compatible between FreeBSD and Linux.
On FreeBSD, the command is chflags
, on Linux the command is chattr
If they are not compatible, it means that I should not use them with dataset replication between heterogeneous operating systems.
What file flags are you specifically concerned about? In SCALE we use the DOS-related flags and manipulate via ioctl.
I am mainly concerned by sappend and schange
Finally I have decided to check myself the file flags interoperability.
Flags that work on FreeBSD and Linux OpenZFS
- sappend (append)
- schange (immutable)
Flags that are preserved with zfs-send
but without effect on TrueNAS Scale.
- hidden
- nodump
- sparse
- rdonly
- sunlnk
- system
Nevertheless, these flags are still preserved when retrieving back the dataset to FreeBSD.
The other flags are unsupported on OpenZFS
https://man.freebsd.org/cgi/man.cgi?chflags(1)
https://man7.org/linux/man-pages/man1/chattr.1.html
hidden | rdonly | system are preserved and used as-needed in SCALE.
1 Like
To conclude:
I can still use sappend and schange on TrueNAS Scale with their new Linux name (i)mmutable and (a)ppend.
Unfortunately I cannot use anymore sunlnk
According to @awalkerix the DOS attributes hidden, rdonly and system should still work for the Windows clients.
Well, SUNLINK is also exposed via ioctl if you need to use it. Remember these attrs are implemented internally in ZFS.
This is where I’ve plumbed in dosmode handling in middleware:
To give some context on ioctl details.
ZFS_NOUNLINK is:
#define ZFS_NOUNLINK 0x0000002000000000ull
2 Likes
Indeed I would prefer a shell command like on FreeBSD, it is easier for me. ![:wink: :wink:](https://forums.truenas.com/images/emoji/twitter/wink.png?v=12)
Fortunately the two most important flags schange and sappend are still configurable from the shell.