On 05/16/2012 04:41 PM, Richard Pieri wrote:

Richard, I read this and say to myself, this sounds more like you want to solve a problem with ZFS instead of wanting to solve a problem the best way possible. If you want to do it with ZFS because you think you can, then cool, have fun.

If you want to solve a problem, what is the specific problem? and is there a solution that is less of the hoop jumping through kind? Usually when I start seeing the need to do the sorts of things you seem to be doing, I think to my self, "Someone else must be doing something similar, it should not be this hard to do." Sometimes I find, yes, no one else is doing this. Other times I get a "doh!" moment. I'm not judging, I'm just saying. I get worried about my data when I start to do "interesting" things with it.

One of the things missing from zfs-fuse is the encryption subsystem. ZFS encryption was introduced by Oracle after closing the Solaris 10 source code so we don't yet have an open source reference for it. So, how to get encrypted ZFS?

Every disk-based device is a block device and they all share the same APIs. This is what makes nesting LVM + DRBD + dm-crypt possible.

Nested block devices! It's an all-or-nothing solution, not as elegant as a native dataset encryption subsystem, but it can work.

What I did:

Started out making backups of everything courtesy of snapshots and zfs send. This would be a good opportunity to test a full recovery.

Destroyed the zpool.

Used gdisk to create single partitions on each of the storage disks. gdisk (GPT fdisk) is an fdisk-like tool that works on GUID disks. It's also aware of 4k disks and automatically sets the partition boundaries appropriately.

Used cryptsetup/LUKS to create dm-crypt devices on the partitions. Then created a new raidz pool on top of those. And it works. There is some CPU overhead in the encryption layer but it is unnoticeable in normal operation.

Restored everything via zfs receive. And it all works. Which means my notebook backups remain encrypted on disk. It's overkill for my music and video libraries but that comes with encrypting the vdev block devices.

Finally wrote a little script to handle opening the encrypted devices and importing the zpool since it can't work unattended.


_______________________________________________
Discuss mailing list
[email protected]
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to