Migrate zfs pool from Solaris to FreeNAS

Status
Not open for further replies.

mm_half3

Dabbler
Joined
Sep 16, 2017
Messages
21
Hello,

New to FreeNAS, and just finished weeks of testing/burnin of my first build attempt, like to thank the users in the hardware section of this forum who posted great HowTo threads and scripts for this, they were extremely helpful :D . Even though I am new to FreeNAS, have a pretty good background in zfs on Solaris. Currently have a 43.5TB zfs raidz2 pool that is 64% full, and want to move it from its current Solaris 10 sparc system to the new FreeNAS build. The Solaris data pool has four vdevs each with six two TB hdds, and the FreeNAS build has six eight TB hdds; the raidz2 zfs pool on it will have one vdev using the six eight TB hdds.

The transfer of data between the pools is going to be over a 1Gb home LAN. The two options I am looking at are:

a) create the raidz2 pool, and setup the entire zfs filesystem structure on the FreeNAS server using zpool history on the data pool of the solaris system to get the zfs commands required to replicate the zfs structure on the FreeNAS system; then use a ncftp script to copy the data between the two systems.

b) create the raidz2 pool, and use a nc zfs receive session listening on a local port of the FreeNAS system & on the Solaris system run a zfs send command piped to an nc session that sends to the port on the FreeNAS system the nc command is listening with a zfs receive command.


Does anyone see either of the above options having distinct advantages/disadvantages over the other? Or does anyone have suggestions for a better approach to move the data from the Solaris system to the new FreeNAS build. I know the data transfer is going to probably take close to a week, or maybe a bit more, trying to find the approach that will have the fastest transfer times, and is why I am looking at these two unencrypted transfer options....its too bad zfs export/import is a no go here.

I have used ncftp scripts in the past to migrate a similar data pool between an unstable Ubuntu VM with a raidz2 data pool and the current Solaris data pool...at that time is was only about 30% utilized. I seem to remember it required significant "massaging" of the ncftp scripts to get them to work with the many directory and file names in the data pool. The pool has my home media collection on it, and most directory/file names have spaces and some other special characters in them. Pretty sure I still have the working versions of these scripts...at least I hope so, need to find/test them...the Solaris pool has been operational for a couple of years now, and have not required the ncftp scripts for a while.

Thanks,
 
Last edited by a moderator:

danb35

Hall of Famer
Joined
Aug 16, 2011
Messages
15,504
I'd vote for ZFS replication, though I think we more often see it done using ssh than nc. There's the possibility that it won't work, what with incompatible ZFS versions, but that would be my first try. It's likely to be faster, and would preserve your dataset structure, permissions, etc.
 

mm_half3

Dabbler
Joined
Sep 16, 2017
Messages
21
Thanks danb35. I was leaning toward zfs replication anyway, at least testing it to see if it will work between OS's, and with nc. I've used zfs replication in the past with smaller pools between solaris systems, still have cron's running incremental zfs replications between operational and backup systems; and the initial full replication over ssh does take a while. This would be my first attempt at using nc to lower the transfer times, if it works probably going to test it on a smaller subset of the overall pool to compare transfer speeds.
 

mm_half3

Dabbler
Joined
Sep 16, 2017
Messages
21
well guess the features incompatibility between solaris 10 zfs 5 and freeNAS zfs 5 pretty much rules out using zfs send/receive:

zfs send -R media_NAS/test_patterns@20170916173511|ssh xxx.xxx.xxx.xxx zfs recv -Fdu media_NAS

cannot receive: stream has unsupported feature, feature flags = 24

its explained in this thread: https://forums.freenas.org/index.php?threads/cannot-receive-zfs-stream-from-solaris-11-2.30307/

anyone know if the iscsi solution proposed in that thread might cause any problems later on? I could test it, but not sure if its even worth it if there may be problems down the road...probably best to just dig up the ncftp scripts and transfer the data that way. What a shame, but not really unexpected.
 

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
And I'm guessing with the feature flags you can't simply import the pool.
 

mm_half3

Dabbler
Joined
Sep 16, 2017
Messages
21
danb35: rsync over rsh is an option..but seem to think I ran into problems when using rsync across multiple zfs file systems in a pool when trying that in the past...could be wrong on that, will need to run some tests. Still going to need to recreate the zfs file system structure like when using ftp, there are about 16 of them, but rsync should not choke on the file names with special chars, like the ftp scripts did.

diedrichg: even if there are not issues with the features flag between Solaris and FreeBSD for the export/import functions, can't just move the drives from the Solaris system to my FreeNAS build. The solaris system has a supermicro jbod case with twenty four hdds attached to it, and as configured that won't connect to the FreeNAS build I have.
 
Last edited by a moderator:

mm_half3

Dabbler
Joined
Sep 16, 2017
Messages
21
Tested rsync between the two systems and it was getting between 25MB/sec - 28 MB/sec transfer rates over the Gb LAN. Using the ncftp scripts the transfers between them was between 81MB/sec - 90 MB/sec (600-700Mb/sec), which is about the max of what my home LAN can do between devices on the switches for each of the systems. Since FreeNAS does not have a non encrypted transport app for rsync (no rsh in FreeBSD), have started to migrate the data over using the ncftp scripts.
 
Last edited by a moderator:
Status
Not open for further replies.
Top