Easiest way to move my data from old Proxmox ZFS Pool to new FreeNAS Scale pool?

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

billbillw

New Member
Feb 5, 2018
22
12
3
53
Sorry for the vague open question, but I'm driving myself mad tonight trying to figure out the best (safest/fastest) way to populate the empty 20TB ZFS Pool in a new TrueNAS Scale build. I think we are talking about 6-7TB of movies, photos, music. Each in folders specific to the type of media. Ideally, I would do something to sync each major folder.

I am definitely what you call a hobbyist.

~5 years ago, I built my 1st server on a Proxmox VE platform with a ZFS Pool following some tutorials at Level1. It was mostly over my head, but it came together after some struggles and I'm amazed at how well it has worked for the last 5 years considering my lack of linux experience. I can say without embarasment that I never really understood some aspects of what I put together. Because of its age I decided to upgrade. I also wanted to move to something simpler with better community support, so I chose FreeNAS Scale.

I can say that I am enjoying the setup process with TrueNAS Scale much more so far. I've got everything installed, tested (a week of badblocks and smartctl long tests with no errors). I've got my new Pool setup and SMB shares/file structures that should closely match my old server Pool. Most of it has been frustration free.

Now, how to move it? I know I could use my Windows PC to Copy/Paste everything using a combination of SMB shares and/or mounted drives.
I would prefer to keep the time stamps on everything the same though and I know sometimes Windows will put the current date on everything. (I like to sort music and movies by recently added).

I followed some videos on using rsync and setup modules in TrueNAS for each main folder. But what is next? I went to the old server which uses TurnKey File Server and I don't see any GUI features for rsync, so I'm not sure if any of that effort was worthwhile. I'm hesitant to jump into command line for that because I haven't found any recent tutorials. Also, I'm afraid that my TurnKey is running such an old version (still on Deb 8) that I might have issues with the rsync versions?

I've seen some mention of doing a ZFS replication, but most of those tutorials seem to be going from one TrueNAS to another. Furthermore, I don't want the entire pool copies. I want to leave behind my all the VM Storage that was on the pool.

Any guidance would be helpful. I'd prefer something that could be done with a GUI, but if command line is the best way, I can do that.
 

Bjorn Smith

Well-Known Member
Sep 3, 2019
876
481
63
49
r00t.dk
What you should do is ssh to the proxmox server and simply do a zfs send to the trunas scale server.

That will allow you to send the dataset you want and its really simple to do.

So an example - lets say your pool is called tank - and you have a dataset called vms.

This will usually be stored as a folder called /tank/vms - or possibly /mnt/tank/vms - but that is not relevant.

So if you wanted to transfer the vms dataset to the truenas scale server, you would simply create a snapshot and do a zfs send of that, ie.

Bash:
zfs snapshot tank/vms@migrate
And then zfs send

Bash:
zfs send -R tank/vms@migrate | ssh youruser@truenas_scale zfs recv tank/vms
This last bit will send the snapshot and dataset to the truenas scale server into the dataset tank/vms

If your truenas scale pool is called something else, you replace tank with thatever its called.

And you simply repeat the two steps for each dataset you have on your proxmox server

But moving from proxmox -> truenas scale is only a good option if you do not want to host virtual machines. The VM management in truenas scale are laughable compared to proxmox. It is the same underlying VM technology, but proxmox is light years ahead. ZFS is the same - but truenas scale obviously have better ZFS management, since it started out as a NAS platform.

So if you still want to run VM's - I would stick with a newer version of proxmox on your new machine - but if VM's are not important but storage is the primary usage - truenas scale is a good solution.

Personally I run my storage for media on my proxmox server besides my VM's - in a separate pool - so anything works :)
 
Last edited:
  • Like
Reactions: Stephan

billbillw

New Member
Feb 5, 2018
22
12
3
53
Does that require me to have SSH keys setup or will it just work with my root login credentials for the TrueNAS server?

What you should do is ssh to the proxmox server and simply do a zfs send to the trunas scale server.

That will allow you to send the dataset you want and its really simple to do.

So an example - lets say your pool is called tank - and you have a dataset called vms.

This will usually be stored as a folder called /tank/vms - or possibly /mnt/tank/vms - but that is not relevant.

So if you wanted to transfer the vms dataset to the truenas scale server, you would simply create a snapshot and do a zfs send of that, ie.

Bash:
zfs snapshot tank/vms@migrate
And then zfs send

Bash:
zfs send -R tank/vms@migrate | ssh youruser@truenas_scale zfs recv tank/vms
This last bit will send the snapshot and dataset to the truenas scale server into the dataset tank/vms

If your truenas scale pool is called something else, you replace tank with thatever its called.

And you simply repeat the two steps for each dataset you have on your proxmox server
 

Bjorn Smith

Well-Known Member
Sep 3, 2019
876
481
63
49
r00t.dk
Does that require me to have SSH keys setup or will it just work with my root login credentials for the TrueNAS server?
No you should be prompted to enter the password - of course it will be easier to just set up ssh keys, since then you dont have to enter any passwords - but it should work without - if your truenas scale allows root login with password.
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
No you should be prompted to enter the password - of course it will be easier to just set up ssh keys, since then you dont have to enter any passwords - but it should work without - if your truenas scale allows root login with password.
It does. I made that setting change. Thanks. About to give this a try.
 

Bjorn Smith

Well-Known Member
Sep 3, 2019
876
481
63
49
r00t.dk
But a word of warning - it will take a looong time to transfer many TB of data depending on your network speed - possibly days.
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
But a word of warning - it will take a looong time to transfer many TB of data depending on your network speed - possibly days.
I figured it would take some time. My movie collection is about 3TB, and music/photos are a combined 1TB. The servers are on the same 1GbE switch and each has a pair of aggregated connections.
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
If you post the result of
Bash:
zfs list
Its easier to give you the correct commands
The Proxmox has this:

root@billx2:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
storage 3.92T 6.77T 34.4K /storage
storage/share 3.92T 6.77T 41.9K /storage/share
storage/share/Files 12.0G 6.77T 12.0G /storage/share/Files
storage/share/Music 595G 6.77T 595G /storage/share/Music
storage/share/Photos 419G 6.77T 419G /storage/share/Photos
storage/share/Video 2.92T 6.77T 2.92T /storage/share/Video
storage/share/downloads 32.9K 1000G 32.9K /storage/share/downloads
storage/share/iso 439M 6.77T 439M /storage/share/iso
storage/vmstorage 65.8K 6.77T 32.9K /storage/vmstorage
storage/vmstorage/limited 32.9K 1000G 32.9K /storage/vmstorage/limited
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
The Scale server has this (Plus a bunch of other non-relevant ones)

root@truenas[~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
STORAGE1 1.06M 21.0T 140K /mnt/STORAGE1
STORAGE1/share1 140K 21.0T

I'm am curious though, I set up SMB shares with 4 different folders and they are not showing here. Does the SMB not create a folder structure? I had one for Video, Photos, Music, and Files.

Should I create folders using zfs create for each? If I do that, would I need to go back and re-do my SMB shares?
 
Last edited:

billbillw

New Member
Feb 5, 2018
22
12
3
53
I think I got it working. I am trying my smallest dataset first to see if it is successful. It appears I don't need to create file subfolder. ZFS will do that.
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
It appears to be working. I'm seeing files populated in the TrueNAS subfolder. I am also seeing it show in the SMB folder on my Windows PC, so that is good. Thanks for the help. No need to write out commands. I've got it.
 
  • Like
Reactions: Stephan

billbillw

New Member
Feb 5, 2018
22
12
3
53
But moving from proxmox -> truenas scale is only a good option if you do not want to host virtual machines. The VM management in truenas scale are laughable compared to proxmox. It is the same underlying VM technology, but proxmox is light years ahead. ZFS is the same - but truenas scale obviously have better ZFS management, since it started out as a NAS platform.

So if you still want to run VM's - I would stick with a newer version of proxmox on your new machine - but if VM's are not important but storage is the primary usage - truenas scale is a good solution.

Personally I run my storage for media on my proxmox server besides my VM's - in a separate pool - so anything works :)
In 5 years, I haven't really done much with VMs. In my Proxmox setup, I had one Ubuntu container that ran Plex and Taotulli, and the other was TurnKey File server. I had a Windows 10 VM running at one point, but I never really did much with it and it was using too much space. I never fully comprehended the storage setup on the Proxmox server or how to expand when it was needed. I tried to clone and upsize my SSD for it, but I couldn't get it to boot after that so I went back to the original. I mostly just used it for storage so I think TrueNAS will be a better fit. It should run Plex and do the other things I need using the Official and TrueCharts.
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
I'm really wishing I had taken the time to make sure jumbo frames were enabled prior to starting my video folder transfer...
Such a newb...
 

billbillw

New Member
Feb 5, 2018
22
12
3
53
usually its underlying hw limting your, not the jumboframes
I would think a twin E5 2430 server with 4 SAS2 drives in raid z1 configuation and a bonded/trunked 1GBE connection could move data faster than my desktop with individual SATA drives and a single GBE connection. For some reason, the incoming bonded GBE on the new server (running 4x SAS3 drives also in raid z1) is only saturating one of the connections. The other is just trickling in. Probably not because of the MTU setting of 1500, but something doesn't seem right. I've got trunks setup for both servers on my HP 1810G switch and both servers are configured for LACP with Layer 2+3 hash policy. Shrug? Anyway, less than 1TB to go. Should be done transferring around midnight by my estimation.
 

itronin

Well-Known Member
Nov 24, 2018
1,234
794
113
Denver, Colorado
Probably not because of the MTU setting of 1500, but something doesn't seem right. I've got trunks setup for both servers on my HP 1810G switch and both servers are configured for LACP with Layer 2+3 hash policy. Shrug? Anyway, less than 1TB to go. Should be done transferring around midnight by my estimation.
its not mtu. Trust me - be glad you didn't mess around with jumbo which is unlikely to get you measurable performance boost on a 1gbe link anyway.

the zfs send is basically single stream. LAG is useful for redundancy and when you have multiple clients.

edit: I realized I wasn't totally clear with my comment:
Max bandwidth you can achieve with a single stream is that of a single connection in the LAG.
 
Last edited: