OpenZFS bug reports for native encryption
docs.google.com
docs.google.com
Don't get me wrong, I like zfs and use it every day, but that code should have never been merged, and given more scrutiny considering it completely changes how your data is written to disk. Thankfully not many people use encryption.
Software is buggy, and it's going to have bugs you don't find no matter how much you tested it. The problem was that (AFAIR) one developer at the company that developed this contributed fixes, and then he left, and then almost nobody did.
I often wonder if encryption would have been merged if Matt had usurped ZOL sooner.
That's unfortunate, stripping anyone's name off anything is always unpleasant and shouldn't happen. I rather wish they hadn't just serialized a snapshot of the wiki out into GH pages and then said "just open PRs to edit this", but here we are, I guess.
Web search yielded https://papers.freebsd.org/2019/BSDCan/jude-The_Future_of_Op...
I believe FreeBSD didn't have any qualms with putting zfs on geli, but I'm not the best person to ask about that. In what little I've used FreeBSD, I never bothered with geli.
Not sure what the issues are with luks, as I'm mainly on FreeBSD.
> A new ticket has been opened for OpenZFS as well in proposing to add warnings against using ZFS native encryption and the send/receive support in production environments.
"Among experienced zfs users and developers, it's conventional wisdom that zfs native encryption is not suitable for production usage, particularly when combined with snapshotting and zfs send/recv. There is a long standing data corruption issue with many firsthand user reports...Additionally, if you join #zfs or #zfsonlinux on freenode and mention that you're having an issue with zfs native encryption, you'll be met with advice from developers that zfs native encryption is simply not reliable."
From Phoronix comments, a suggestion on implementation:> It should be something like that:
ERROR: RAID 5/6 support has know problems and shouldn't be used on production systems.
If you really want to use it please type "Enable dangerous RAID5/6 support" or add argument "--enable-dangerous-raid56-support" to this commandSource: it's my document, though I didn't submit it here, and haven't updated it in a while after I gave up trying to convince other people about how bad an idea using it is.
The feature should be emblazoned as experimental and advertised as seeking developers/funding, to protect ZFS reputation.
I wasn't a fan of that change, it serves no purpose other than to sweep issues under the carpet (which can be said of any project that uses one).
Which is funny because they have just as many open issues now as they did when it was implemented.
Had they had better user/developer relations and documentation, it's possible that a lot of open issues would have never been opened. (edit: or remained open otherwise)
All the advice you'll get from anybody experienced (which I am not very with ZFS, but have been setting up some NAS projects with it so am researching) is to not even touch encryption with a 10 foot pole. As long as you don't enable it (and I expect a lot of GUI driven NAS products probably don't even let you through the GUI or warn you if they do), you're good.
Another one of them got what looks like a duplicate posted that triggered on pool creation in the test suite sometimes.
So I don't think it's accurate to say "it's safe if you don't use zfs send" - while some of the bugs might actually be exclusive to send/recv, it seems like a number of them are just most easily triggered that way.
It clearly works "fine" for some people - e.g. I believe the original authors of the feature still use it in production, last I knew, because their workflow doesn't hit any of these issues. But "using this feature adds a 1% chance of a lion eating your face" seems like something worth warning people about, if there was not a face-eating risk prior.
(Especially because a number of them seem to be races, so how much the problem comes up is really going to be hard to predict a priori...)