I know that less exciting feature of ZFS 2.2.x line is Blake3 and wonder if I should switch to it? (Blake3, 2.2.x is decided, because RefLinks and ZSTD Early Abort)
I don’t know if it has any downsides (there was something about incompatibility with boot pool…but WTF is a boot pool? [Ubuntu invention? I plan to use [depending on machine] ArchLinux and TrueNAS[or proxmox for backup).
Machines will be pretty old (LGA 115x times, i5-4460 SR1QK and i7-4790K), so both will have AVX2, so both should use optimized implementation
I’m sure my new ZFS array will be created using ZFS 2.2.x
Blake3 is a cryptographic hash. Unless you need cryptographically-strong checksums (either you’re using dedup, or you have a particular application), then the default fletcher4 is still faster.
As for Zstd, I personally prefer it in the general case. The tradeoff has mostly been that Zstd is faster but LZ4 gives better compression. The early-abort behaviour was a winner for LZ4 for large uncompressible blocks; now Zstd has that I like it even more.
“Boot pool” is what you have if the filesystem your OS boots from is OpenZFS. In that case, your bootloader (eg GRUB) has to know enough OpenZFS to be able to load the kernel etc. So if you upgrade your boot pool to use a new feature and your bootloader doesn’t support it, then you won’t be able to boot your system. You can still upgrade OpenZFS, you just shouldn’t run
zpool upgrade on your boot pool.
I wouldn’t recommend ZSTD over LZ4 unless you don’t mind giving up performance in return for slightly higher compression ratios. It’s a tunable algorithm, but when I tested it, I couldn’t find any settings that didn’t perform noticeably worse than LZ4.