Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Dravinian Broke

Upgrading a filled FreeNAS - best way to do this?

Recommended Posts

Posted · Original PosterOP

So my FreeNAS is getting full, and my intention is to buy a pack of IronWolf drives and rebuild my server in a case that has space for more drives (current NAS has room for 3 HDD and 2 SSD - upgraded NAS has room for 9 drives - gives room for expansion in the future).

 

I run FreeNAS and Plex, and I wondered whether anyone had a better way of doing it than the way I had planned...

 

My plan was:


Build server;

Map drives in windows;

Copy pasta everything to new drives;

Mount Plex to new drives;

Re-scan libraries in Plex

Delete material on original drives for other data storage purposes; (I will of course be creating a new Pool for the new drives and a new data set for Plex)

 

It occured to me that this will be extremely slow, and will take quite literally days to complete due to the 3tb of data that will need to be shuffled around.

 

I do have a dim memory that through command prompt, you can actually copy data, especially large amounts of data, far faster.

 

Individual file size ranges from 500mb to 45gig per file, so we are not talking about < 10mb files (which are far slower to move).

 

Anyone know of a better way they would be kind enough to share?

 

Thanks

Link to post
Share on other sites
4 hours ago, Dravinian Broke said:

So my FreeNAS is getting full, and my intention is to buy a pack of IronWolf drives and rebuild my server in a case that has space for more drives (current NAS has room for 3 HDD and 2 SSD - upgraded NAS has room for 9 drives - gives room for expansion in the future).

 

I run FreeNAS and Plex, and I wondered whether anyone had a better way of doing it than the way I had planned...

 

My plan was:


Build server;

Map drives in windows;

Copy pasta everything to new drives;

Mount Plex to new drives;

Re-scan libraries in Plex

Delete material on original drives for other data storage purposes; (I will of course be creating a new Pool for the new drives and a new data set for Plex)

 

It occured to me that this will be extremely slow, and will take quite literally days to complete due to the 3tb of data that will need to be shuffled around.

 

I do have a dim memory that through command prompt, you can actually copy data, especially large amounts of data, far faster.

 

Individual file size ranges from 500mb to 45gig per file, so we are not talking about < 10mb files (which are far slower to move).

 

Anyone know of a better way they would be kind enough to share?

 

Thanks

This wouldn't be as slow as you think. There are faster ways but they potentially would require additional hardware. So your biggest bottleneck would probably be your network connection (assuming its gigabit), not necessarily file explorer overhead. If you had a way to connect all your new drives to your old system (or connect all the old drives to the new system and import the array) you could create the zfs pool on it and copy everything locally which may be faster, but that would be a lot of work assuming the system can handle that many drives to begin with. CMD may be every-so-slightly faster than explorer but again the biggest bottleneck would be a gigabit network connection.

However, if you are able to set up (or already have) a multi-gigabit network connection your bottleneck would most likely be your array at that point. TLDR: File explorer overhead for the most part isn't too noticeable at this kind of scale.

Link to post
Share on other sites

I would just plug the new drives into the existing FreeNAS. Build a new Pool, and then run an rsync on your datasets from console. 

Once everything is copied, then destroy the old pool. 3TB should be done in less than a day. 

 

Or if you don't have enough connections, build the new FreeNAS as you want. Move the other drives over and import the zpool, then again the above. 

rsync is like robocopy in windows...you can use the --archive switch to retain all your file attributes. 


Spoiler

Desktop: Ryzen 7 2700x | Aorus X470 Gaming Ultra | EVGA RTX2080 Super | 32GB (4x8GB) Corsair Vengeance RGB Pro 3200Mhz | Corsair H105 AIO, NZXT Sentry 3 | Corsair SP120's | 1TB Crucial P1 NVMe, 4TB WD Black | Phanteks Enthoo Pro | Corsair RM650v2 PSU | LG 32" 32GK850G Monitor | Ducky Shine 3 Keyboard, Logitech G502, MicroLab Solo 7C Speakers, Razer Goliathus Extended, X360 Controller | Windows 10 Pro | SteelSeries Siberia 350 Headphones

 

Spoiler

Server 1: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM650v2 PSU | Fractal S36 Triple AIO | 10 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 1TB Crucial P1 NVMe | LSI 9211-8i HBA

 

Server 2: Corsair 400R | IcyDock MB998SP & MB455SPF | Seasonic Focus Plus 650w PSU | 2 x Xeon X5650's | 48GB DDR3-ECC | Asus Z8NA-D6C Motherboard | AOC-SAS2LP-MV8 | LSI MegaRAID 9271-8i | RES2SV240 SAS Expander | Samsung 840Evo 120GB | 5 x 8TB Seagate Archives | 10 x 3TB WD Red

 

Link to post
Share on other sites
Posted · Original PosterOP
2 hours ago, RobinD said:

Are you keeping the old physical drives?

if so see:
1) https://www.ixsystems.com/community/threads/migrating-to-new-hardware.58140/


 

Not sure it applies fully, as my new NAS will have the same CPU/Motherboard and SSD boot device and the drives will be connected in the same way.

 

As far as FreeNAS is concerned, nothing would have changed, it would just have been down for a couple of hours while hardware is migrated to a new case, and new hardware is wired in.

 

My issue is about migrating data from those drives, as recognised, to new drives in a new pool.

 

On a gigabit connection, my best transfer speeds are 80mbs, it takes 10 minutes to copy a 50gb file from one drive to another drive (both HDD) currently, my back of a napkin math is about 7-8 hours give or take, so not days as I thought, at least, but it is a whole day.

4 minutes ago, Jarsky said:

Build a new Pool, and then run an rsync on your datasets from console. 

I am assuming that rysnc is a command, and you posted while I was posting, and I will go have a look, but is this essentially cloning the datasets to a new pool?

 

Would it be faster given that it is not going through windows?

Link to post
Share on other sites
1 minute ago, Dravinian Broke said:

On a gigabit connection, my best transfer speeds are 80mbs, it takes 10 minutes to copy a 50gb file from one drive to another drive (both HDD) currently, my back of a napkin math is about 7-8 hours give or take, so not days as I thought, at least, but it is a whole day.

If you do an rsync through console on the box from pool to pool (dataset to dataset really), then it doesn't utilize the network, its a local transfer between mounts. 

 

1 minute ago, Dravinian Broke said:

I am assuming that rysnc is a command, and you posted while I was posting, and I will go have a look, but is this essentially cloning the datasets to a new pool?

 

Would it be faster given that it is not going through windows?

 

Yes, it's a standard *nix* tool, and I believe if you open the console in FreeNas and type 'rsync' then you should get a response, I think its included in BSD. 

Then its as simple as

 

rsync -a /mnt/to/oldpool/dataset /mnt/to/newpool/dataset

 


Spoiler

Desktop: Ryzen 7 2700x | Aorus X470 Gaming Ultra | EVGA RTX2080 Super | 32GB (4x8GB) Corsair Vengeance RGB Pro 3200Mhz | Corsair H105 AIO, NZXT Sentry 3 | Corsair SP120's | 1TB Crucial P1 NVMe, 4TB WD Black | Phanteks Enthoo Pro | Corsair RM650v2 PSU | LG 32" 32GK850G Monitor | Ducky Shine 3 Keyboard, Logitech G502, MicroLab Solo 7C Speakers, Razer Goliathus Extended, X360 Controller | Windows 10 Pro | SteelSeries Siberia 350 Headphones

 

Spoiler

Server 1: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM650v2 PSU | Fractal S36 Triple AIO | 10 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 1TB Crucial P1 NVMe | LSI 9211-8i HBA

 

Server 2: Corsair 400R | IcyDock MB998SP & MB455SPF | Seasonic Focus Plus 650w PSU | 2 x Xeon X5650's | 48GB DDR3-ECC | Asus Z8NA-D6C Motherboard | AOC-SAS2LP-MV8 | LSI MegaRAID 9271-8i | RES2SV240 SAS Expander | Samsung 840Evo 120GB | 5 x 8TB Seagate Archives | 10 x 3TB WD Red

 

Link to post
Share on other sites
Posted · Original PosterOP
Just now, Jarsky said:

If you do an rsync through console on the box from pool to pool (dataset to dataset really), then it doesn't utilize the network, its a local transfer between mounts. 

 

 

Yes, it's a standard *nix* tool, and I believe if you open the console in FreeNas and type 'rsync' then you should get a response, I think its included in BSD. 

Then its as simple as

 


rsync -a /mnt/to/oldpool/dataset /mnt/to/newpool/dataset

 

Cheers watching a video on it now.


Interestingly, at the start of the video he spoke about ZFS replication and references another video he has on that.  So will likely watch that one afterwards.


Thanks for the heads up.

 

I also noted that rsync appears to be a service in FreeNAS, but going to watch the video and see what it is all about.

Link to post
Share on other sites

I just checked my FreeNAS, and yes it does have the rsync tool 

 

300145b22e68b3cf1abfd91c08024273.png


Spoiler

Desktop: Ryzen 7 2700x | Aorus X470 Gaming Ultra | EVGA RTX2080 Super | 32GB (4x8GB) Corsair Vengeance RGB Pro 3200Mhz | Corsair H105 AIO, NZXT Sentry 3 | Corsair SP120's | 1TB Crucial P1 NVMe, 4TB WD Black | Phanteks Enthoo Pro | Corsair RM650v2 PSU | LG 32" 32GK850G Monitor | Ducky Shine 3 Keyboard, Logitech G502, MicroLab Solo 7C Speakers, Razer Goliathus Extended, X360 Controller | Windows 10 Pro | SteelSeries Siberia 350 Headphones

 

Spoiler

Server 1: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM650v2 PSU | Fractal S36 Triple AIO | 10 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 1TB Crucial P1 NVMe | LSI 9211-8i HBA

 

Server 2: Corsair 400R | IcyDock MB998SP & MB455SPF | Seasonic Focus Plus 650w PSU | 2 x Xeon X5650's | 48GB DDR3-ECC | Asus Z8NA-D6C Motherboard | AOC-SAS2LP-MV8 | LSI MegaRAID 9271-8i | RES2SV240 SAS Expander | Samsung 840Evo 120GB | 5 x 8TB Seagate Archives | 10 x 3TB WD Red

 

Link to post
Share on other sites
Posted · Original PosterOP

Oh, not to be an arse in case anyone comes to this thread seeking the same answers.

 

Video is here that I am watching now: 

 

https://www.youtube.com/watch?v=Qhlp18QTUTo

 

Can't vouch for it, since my knowledge is so limited, I doubt I will be able to vouch for it after watching it, but I have watched a few of this guys videos on other things and found them helpful.  So you takes your chances!

Link to post
Share on other sites
Posted · Original PosterOP
19 minutes ago, Jarsky said:

I just checked my FreeNAS, and yes it does have the rsync tool 

 

300145b22e68b3cf1abfd91c08024273.png

This is the replication video and I think this might be the way to go:

 

https://www.youtube.com/watch?v=et7JyacV_hA

 

He talks at the start about why replication if rsync is so good (which he says it is) but refers to an article that talks about the fact that it replicates one pool to another pool at the block level, so isn't looking for or copying files, but just the entire poo;l and is, to quote, "really fast".

 

Also looking at it, it is possible to do one dataset to another pool, so sounds perfect, he talks about the fact that being in the same place isn't a back up, but this isn't my back up provision this is a one time upgrade (well for now anyway).

 

All gibberish to me until I finish watching them both and get an understanding, but thought it was worth adding to the thread for posterity.

 

Thanks for the assistance and the push in the right direction, I doubt very much I would have found this on my own.

Link to post
Share on other sites
2 minutes ago, Dravinian Broke said:

This is the replication video and I think this might be the way to go:

 

https://www.youtube.com/watch?v=et7JyacV_hA

 

He talks at the start about why replication if rsync is so good (which he says it is) but refers to an article that talks about the fact that it replicates one pool to another pool at the block level, so isn't looking for or copying files, but just the entire poo;l and is, to quote, "really fast"

 

All gibberish to me until I finish watching them both and get an understanding, but thought it was worth adding to the thread for posterity.

 

Tom does really good videos, especially around UniFi - but this really goes above and beyond what you need. 

This is for setting up a timer job for constant syncing. Since you just want to copy the data once, you can just run it manually from 'Shell' in the FreeNAS Menu

 

It would look like this.  If you pretend /storage/ISO is my old dataset, and /storage/VM is my new dataset. 

(this is on unraid, but its the same commands for freenas, i dont have any ZFS pools on my freenas which is an iscsi server)

 

rsync -av --progress --stats <source path> <destination path>

 

ab19c684bb3afa7fa71a853e092c70bc.png

 


Spoiler

Desktop: Ryzen 7 2700x | Aorus X470 Gaming Ultra | EVGA RTX2080 Super | 32GB (4x8GB) Corsair Vengeance RGB Pro 3200Mhz | Corsair H105 AIO, NZXT Sentry 3 | Corsair SP120's | 1TB Crucial P1 NVMe, 4TB WD Black | Phanteks Enthoo Pro | Corsair RM650v2 PSU | LG 32" 32GK850G Monitor | Ducky Shine 3 Keyboard, Logitech G502, MicroLab Solo 7C Speakers, Razer Goliathus Extended, X360 Controller | Windows 10 Pro | SteelSeries Siberia 350 Headphones

 

Spoiler

Server 1: Fractal Design Define R6 | Ryzen 3950x | ASRock X570 Taichi | EVGA GTX1070 FTW | 64GB (4x16GB) Corsair Vengeance LPX 3000Mhz | Corsair RM650v2 PSU | Fractal S36 Triple AIO | 10 x 8TB HGST Ultrastar He10 (WD Whitelabel) | 500GB Aorus Gen4 NVMe | 2 x 1TB Crucial P1 NVMe | LSI 9211-8i HBA

 

Server 2: Corsair 400R | IcyDock MB998SP & MB455SPF | Seasonic Focus Plus 650w PSU | 2 x Xeon X5650's | 48GB DDR3-ECC | Asus Z8NA-D6C Motherboard | AOC-SAS2LP-MV8 | LSI MegaRAID 9271-8i | RES2SV240 SAS Expander | Samsung 840Evo 120GB | 5 x 8TB Seagate Archives | 10 x 3TB WD Red

 

Link to post
Share on other sites
Posted · Original PosterOP
10 minutes ago, Jarsky said:

 

Tom does really good videos, especially around UniFi - but this really goes above and beyond what you need. 

This is for setting up a timer job for constant syncing. Since you just want to copy the data once, you can just run it manually from 'Shell' in the FreeNAS Menu

 

It would look like this.  If you pretend /storage/ISO is my old dataset, and /storage/VM is my new dataset. 

(this is on unraid, but its the same commands for freenas, i dont have any ZFS pools on my freenas which is an iscsi server)

 


rsync -av --progress --stats <source path> <destination path>

 

ab19c684bb3afa7fa71a853e092c70bc.png

 

Cheers for that, nice to have the commands set out in a way that I would understand.

 

Do appreciate you taking the time.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×