This is my first post here and looking forward to hearing your answers!
TLDR: Migrate from Unraid Array to ZFS (hopefully without having to buy more storage)
I have currently a NAS (CWWK cw-at-10g-8p with 6x10TB WD RED drives, 2 TB NVME). It was running Unraid but I was having a lot of kernel issues with it so I switched to proxmox with Unraid in a VM (sata controllers passed through/nvme) and it has been running smoothly since. As I migrate my applications from docker in unraid to LXCs in an aim to simplify management, I would like to also migrate the data to ZFS so I don’t have to run Unraid anymore/setup proper snapshot management/etc.
My case is the Jonsbo N3 so I still have a couple of sata ports available. Open to adding more via PCIe during the migration if needed.
I have 27 TB of data that needs to be migrated off the unraid array
(1 parity drive - 5 data drives). Most of it is Raw images I took with my DSLR so pretty difficult for me to replace if something goes wrong. However that means the data is “chunkable”.
I do have some older hard drives lying around that I would be able to repurpose for the migration efforts. 5x4 TB WD Greens and 4x4TB Samsung SSDs (all my storage was purchased years ago thankfully).
I am looking for help on what kind of strategy to use to start moving the data to maybe a holding array? I would prefer to not use another machine to copy the data to but I would if that’s absolutely needed. (my plan for the disks after migration is setting up a backup server).
Since the data is just a bunch of files you can probably get away with formatting each spare drive with btrfs or zfs, as single drive, copy files over, run a scrub to confirm the data is ok, disconnect the drive.
Rinse and repeat until all your data is copied over, then reformat the main array and then copy the data from each drive.
This exposes you to data loss if a drive dies during migration or develops bad sectors, but its a very short time window, so it may be an acceptable tradeoff for the speed and simplicity of the process.
if you really really need maximum safety you will have to make a zfs array with the spare drives, but to do that you will need more sata ports obviously.
If you are fine with a zfs raid5, so same redundancy as you currently have, it should be possible to use the spare drives in pairs, making mirrors and move over the data until you have freed 3 drives of the main array, then you use them to make a new zfs array, move the data you stored in the spare drives, and then repeat the process.
Free a drive in old array, disconnect and add it to zfs array (now you can grow zfs raid5 and raid6) RAIDZ Extension Calculator | TrueNAS Documentation Hub copy data over.
This is a huge PITA and thats why my first proposal takes a more calculated risk approach for the sake of getting it done
One consideration - you could move to mergerfs + snapraid. Works in a similar way to unraid, but can be done on Proxmox. SnapRAID - Perfect Media Server . This makes the move much simpler.
Besides that you could consider some cheap SAS2 HBA cards, get more drives into your NAS or other PCs to give yourself more space for the move. You could even setup a backup of your important data from all your old drives.
Proxmox is a great Hypervisor, not so great NAS. You could run a TrueNAS VM with HDD passtrough for storage. I like to have Proxmox, TrueNAS and OPNsense bare metal on their own hardware, but many people are fine with having an AIO.
Copy stuff off to external drives is fine. Doing like @starshipeleven said, is even better. In case anything goes wrong, you restore from a backup. You do have a backup, right? Insert star wars meme
I would go with RAIDZ2. These disks are huge, restore will take a few days.
Agreed on proxmox not being a great NAS. I am just annoyed by how many times the unraid VM fails to start (most of it is after kernel updates and having to recompile i915-dkms to get the igpu working) and most of the rest of the infra is not available because the shares are not mounted. My goal was to have ZFS volumes mounted directly in proxmox and using something lightweight to expose SMB/NFS as needed. Not sure yet about how backups will work.
I don’t have a full backup just the family photos backed up to Google Drive (~400G non raw files). If I lose stuff I would be very upset but it is not total loss
Thanks for the detailed breakdown. So the 27 TB are on 5 data disks, I can probably squeeze all of it onto 3 drives. After reducing the array and taking those two empty drives out, I can use them in raid5 zfs? Then grow that as I move data onto it (freeing up more disks)?
One more thing. Zfs does not rebalance automatically the data across the drives when you grow it. So after adding a drive you probably need to rebalance stuff
use the command to rebalance all files in the pool, so the blocks are rebalanced on all drives. Use the path to were the dataset is mounted instead than my example