danb35
Hall of Famer
- Joined
- Aug 16, 2011
- Messages
- 15,462
Intrigued by a suggestion from @garm, I'm trying to set up an Odroid HC2 as a replication target for FreeNAS. The HC2 is a single-board computer with a SATA interface, mounted to a heatsink that'll easily hold a 3.5" HDD. It runs Linux (among other things, though not FreeBSD) and should make for a handy, low-power, low-price storage brick.
I'm writing up what I'm doing as I go on my wiki. Since the shipped kernel is compiled for 32-bit, and the ZFS packages require 64-bit, I'm needing to build ZFS from source--and since there doesn't seem to be a kernel-headers package available that matches the installed kernel, that means also rebuilding the kernel from source. Straightforward enough, though, as far as it goes.
So I've got ZFSonLinux running on the thing, I've created a pool, and I've created an encrypted dataset on that pool (since ZoL supports dataset encryption, and the idea is that this might live remotely). (the wiki also notes that I've created a non-privileged replication user, but I'm seeing issues with that--that's a separate thread if I can't figure it out)
So, thinking I should be ready to go (ignoring the byzantine process to set up a replication task in the FreeNAS GUI), I run
...and it fails, complaining that it can't overwrite an encrypted dataset. Bother. If I send it to a non-encrypted dataset (creatively named dozer/cleartext), the replication goes merrily along, but of course it isn't encrypted on disk. Is it possible to do what I'm trying to do here? Or would FreeNAS's ZFS need to support encrypted datasets for this to work?
I'm writing up what I'm doing as I go on my wiki. Since the shipped kernel is compiled for 32-bit, and the ZFS packages require 64-bit, I'm needing to build ZFS from source--and since there doesn't seem to be a kernel-headers package available that matches the installed kernel, that means also rebuilding the kernel from source. Straightforward enough, though, as far as it goes.
So I've got ZFSonLinux running on the thing, I've created a pool, and I've created an encrypted dataset on that pool (since ZoL supports dataset encryption, and the idea is that this might live remotely). (the wiki also notes that I've created a non-privileged replication user, but I'm seeing issues with that--that's a separate thread if I can't figure it out)
So, thinking I should be ready to go (ignoring the byzantine process to set up a replication task in the FreeNAS GUI), I run
Code:
zfs send -Rv pool/dataset@snapshot | ssh root@odroid_ip zfs recv -F dozer/encrypted
...and it fails, complaining that it can't overwrite an encrypted dataset. Bother. If I send it to a non-encrypted dataset (creatively named dozer/cleartext), the replication goes merrily along, but of course it isn't encrypted on disk. Is it possible to do what I'm trying to do here? Or would FreeNAS's ZFS need to support encrypted datasets for this to work?