-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reconsider pool-level native encryption #354
Comments
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
I think you're incorrect. In the Debian and Ubuntu, it's not like this: the entire
thanks, that's interesting. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
|
I tested this with encryption at the root and (only) on a child. I get exactly the same result: So I'm not seeing how doing the encryption one level down provides any benefit on this particular concern. I'm certainly no fan of the fact that I scripted around that limitation for my replication. My script reads the properties from the source and sets them on the destination, like this: (That |
|
On 2022-10-17 13:47:35, Richard Laager wrote:
Let's keep this issue focused on the merits of encrypting the whole
pool.
Sure.
For what it's worth, I don't have an opinion for or against, I just
found myself in a bind, in a situation where the whole pool encryption
is hurting me pretty bad...
If you want to discuss cross-distro layout consistency, file a separate issue. (But also keep in mind that the Ubuntu HOWTOs already need to change to drop all the zsys stuff, which will bring Ubuntu and Debian in sync again.)
well, i filed this issue about that inconsistency i guess. ;)
…--
If you have come here to help me, you are wasting our time.
But if you have come because your liberation is bound up with mine, then
let us work together. - Aboriginal activists group, Queensland, 1970s
|
I still don't understand how having the encryption on "rpool/debian" vs "rpool" would make a difference. |
|
On 2022-10-17 23:27:16, Richard Laager wrote:
> I just found myself in a bind, in a situation where the whole pool encryption is hurting me pretty bad...
I still don't understand how having the encryption on "rpool/debian" vs "rpool" would make a difference. `zfs send -R` still wouldn't work. Can you explain more about how you think that a separate dataset would help? Is `--raw` somehow involved in the proposed solution?
From what I understand, the problem is not as much with `-R` as with
`-F` on the receive side, as the receiver is not allowed to delete the
root dataset.
Does that make sense?
|
|
You make a good point about I am able to reproduce such a failure with: But, there's no real data in the root dataset. I did this: That gets the datasets over. But they failing to mount??? I exported and re-imported the pool. They're still failing. They show an encryptionroot of "new", but I can't get it to load the key: It feels like the raw send got the data over, but the encryptionroot is messed up in some way! So...that's really bad! It should have worked, with an encryptionroot of either "new/srv" (what it sounds like you expected, and what I think I expected), or "new"; being broken is definitely not okay. So I definitely have to say that the current situation is bad overall. If the encryptionroot was not the top of the pool, that would definitely be safer. |
The instructions provided at least in the Debian side of the world, include something like this:
From what I understand, what the above does is it creates a pool named
rpooland its associatedrpooldataset, with native encryption. This is pretty nice, but it has significant caveats in my experience. Most notable, it makes it hard (or impossible?) to send/receive with--replicate(-R). This was a surprise to me: the guide mentions nowhere this kind of limitation, and it's a rather big one because many things don't work as expected.For example, after installing a server following the procedure, I wanted to move between HDD and (smaller) SDD disks. Normally, I should have been able to just create a new pool, and
zfs send/receivethe data between the two. But that doesn't work:Now yes, I could pass the
--rawflag here, but it doesn't work as one would expect: what that would do would be to recreate encrypted datasets under the encrypted pool, essentially double-encrypting the datasets. The resulting data, from what I can tell, is not something I can readily open. Maybe there's a way to stream it back to the original pool, but I haven't actually figured out how.I ended up doing something like this:
... but that feels rather clunky and weird. I think setting up encryption at the dataset (as opposed to "root dataset") level might be more appropriate, and maybe this is something the guide should suggest as well.
At the very least, the guide should certainly discuss the limitations of ZFS native encryption. Those are also discussed in zfs-load-key but that's kind of buried out there.
The FAQ doesn't mention anything in that regard either.
Would you be open to a PR that would start moving encryption downwards in the datasets?
thanks
The text was updated successfully, but these errors were encountered: