Jump to content

Upgrading a filled FreeNAS - best way to do this?

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 comment
Share on other sites

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 comment
Share on other sites

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: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

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

 

Link to comment
Share on other sites

Link to post
Share on other sites

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 comment
Share on other sites

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: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

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

 

Link to comment
Share on other sites

Link to post
Share on other sites

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 comment
Share on other sites

Link to post
Share on other sites

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

 

300145b22e68b3cf1abfd91c08024273.png

Spoiler

Desktop: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

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

 

Link to comment
Share on other sites

Link to post
Share on other sites

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 comment
Share on other sites

Link to post
Share on other sites

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 comment
Share on other sites

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: Ryzen9 5950X | ASUS ROG Crosshair VIII Hero (Wifi) | EVGA RTX 3080Ti FTW3 | 32GB (2x16GB) Corsair Dominator Platinum RGB Pro 3600Mhz | EKWB EK-AIO 360D-RGB | EKWB EK-Vardar RGB Fans | 1TB Samsung 980 Pro, 4TB Samsung 980 Pro | Corsair 5000D Airflow | Corsair HX850 Platinum PSU | Asus ROG 42" OLED PG42UQ + LG 32" 32GK850G Monitor | Roccat Vulcan TKL Pro Keyboard | Logitech G Pro X Superlight  | MicroLab Solo 7C Speakers | Audio-Technica ATH-M50xBT2 LE Headphones | TC-Helicon GoXLR | Audio-Technica AT2035 | LTT Desk Mat | XBOX-X Controller | Windows 11 Pro

 

Spoiler

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

 

Link to comment
Share on other sites

Link to post
Share on other sites

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 comment
Share on other sites

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

×