Transferring Files from FreeNAS to TrueNas

linus12

Explorer
Joined
Oct 12, 2018
Messages
65
I am finalizing the Pools on my new server (See Signature). Looking for the fastest way to transfer to the files from the old server (See Signature) to the new server. It is not possible to to physically move the Hard Drives to the new system.

Ideally I'd like to transfer them without going through my Windows machine, i.e. directly from one system to the other.
Is this even possible?
 

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
Yes, ZFS has a feature specifically for the purpose. It is called ZFS Send & Receive. But TrueNAS refers to it as Replication.

Basically you do something like this on the source server as user "root". Replace DATE with current date, (without spaces or special characters).
zfs snap -r source_pool@DATE zfs send -Rpv source_pool@DATE | ssh DEST_SERVER zfs receive -dFu dest_pool

It will munch away at your data, copying it from source to destination via your network. You may be network limited. Or disk limited, (on either the source or destination).

Whence done, you will want to clean up;

On the Source server
zfs destroy -r source_pool@DATE

On the Destination server:
zfs destroy -r dest_pool@DATE

This can be done from the GUI's Replication, but I am not as familiar with that option as I don't replicate.

It is also possible to use RSync to copy your pool. And the GUI has options for that too, (that I don't use, so I don't know them well).
 

linus12

Explorer
Joined
Oct 12, 2018
Messages
65
Thanks @Arwen
Looks like I'll be switching to TrueNAS Scale on the new server, but if I understand correctly, since this is a ZFS utility, it should work between them, even though the Pool Names may be different and the underlying VDevs are different.... correct? :eek:
 

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
Yes, this ZFS Send & Receive is a available on both CORE & SCALE. The GUI for SCALE has been "improved", so it might look different. But it should have the same features as CORE, (except for the various App / Jail / Container support).

If it is a different server, you can use the same pool name. The requirement to have unique pool names only applies to the same server or cluster of servers. But, their is benefit to having unique pool names everywhere. It helps clarify where the data is located.

Yes, ZFS Send & Receive works on pool, dataset & zVol level. It won't care if their are differences in vDev layout between the source and destination. Their are even some options to change compression during transfer. But, I know less about that.


For your future reference, their are options to ZFS Send an encrypted dataset or pool, still encrypted, to a remote server that does not have the ability to un-encrypt the data. This allows you to make secure copies of your encrypted data. And if their is a problem on the source, you can either copy the remote backup, to the source again. Or, supply the remote server the encryption keys or password to un-encrypt the data.
 

linus12

Explorer
Joined
Oct 12, 2018
Messages
65
Thanks so much. Reading up on Replication now. Once my drives have finished checking (going on 82 hours now and almost done with the second pattern reading, 2 more patterns to go!) I'll install Scale, create my pools, and then start the replication!
 

Arwen

MVP
Joined
May 17, 2014
Messages
3,611
Oh, one word of caution. Their are different ZFS pool feature sets. iXsystems has tried to make CORE & SCALE similar. But, different releases may have different ZFS pool features.

In general, sending from a pool with X features to a pool with X+Y features works fine. It is the opposite case where problems can arise.

If you don't need the latest ZFS features, you can build a pool without them. And then enable features one by one.
 
Top