Migrating from MS Storage Spaces to FreeNAS ZFS

Status
Not open for further replies.
Joined
Jan 18, 2018
Messages
8
Hello-

I need some help migrating away from MS Storage Spaces to a FreeNAS ZFS setup. My current MS Storage Spaces hardware is:

CPU: Intel Core-i7 4790K 4GHz
Mobo: ASUS Z97-A-USB31
RAM: 16 GB DDR3 Non-ECC <-- Looking at upgrading this to ECC depending on overall cost
HDD: 8 x 8TB WD Red Hard Drives configured in a 64TB MS Storage Pool with parity.

I currently use about 35 TB of the MS Storage Pool. I have one spare 8TB drive and possibly 2 6TB drives spare at the moment. I want to setup the FreeNAS ZFS pool as a RAIDZ-2 with 8x8TB drives. I will need to remove drives from the MS Storage Pool and add them to the ZFS Pool as I migrate the data, since I cannot afford to have two 8x8TB drive arrays.

My question is what initial setup should I use for the FreeNAS ZFS Storage Pool to make sure I don't see any performance issues down the road as I move drives from one pool to another?
 

danb35

Hall of Famer
Joined
Aug 16, 2011
Messages
15,504
Looking at upgrading this to ECC depending on overall cost
This would require replacement of your CPU and motherboard as well.
I will need to remove drives from the MS Storage Pool and add them to the ZFS Pool as I migrate the data,
That isn't going to be possible. If you're going to create an 8-disk RAIDZ2 pool, you need to have 8 disks on hand to do it*. Those 8 disks don't all have to be 8 TB in size, but the capacity will be based on the capacity of the smallest disk in the vdev.

* Yes, there are a couple of hacks that allow you to somewhat circumvent this requirement, but if you have to ask what they are, you probably aren't ready for them. They'd require a good deal of CLI-fu, with the corresponding possibility of inadvertently nuking your data.
 
Joined
Jan 18, 2018
Messages
8
This would require replacement of your CPU and motherboard as well.

That isn't going to be possible. If you're going to create an 8-disk RAIDZ2 pool, you need to have 8 disks on hand to do it*. Those 8 disks don't all have to be 8 TB in size, but the capacity will be based on the capacity of the smallest disk in the vdev.

* Yes, there are a couple of hacks that allow you to somewhat circumvent this requirement, but if you have to ask what they are, you probably aren't ready for them. They'd require a good deal of CLI-fu, with the corresponding possibility of inadvertently nuking your data.

Thank you for your response. Maybe I am going in the wrong direction with RAIDZ2. I see some people recommend using mirrored vdevs instead of RAIDZ. Would that allow me a little more flexibility in the number of drives I start with? I need a single storage pool that can store at least 32TB of data and withstand the loss of at least one drive, preferably two. What kind of setup would you recommend for that situation?
 

Nick2253

Wizard
Joined
Apr 21, 2014
Messages
1,633
There's really no good solution for migrating the data.

I believe your end goal of using RAIDZ2 with your 8 drives is correct. However, it's getting there that's the problem.

You could go with stripped mirrors. However, your 8x drives would only give you 32TB. When you factor the decimal to binary conversion, and the FreeNAS overhead, you won't have 32TiB of usable space. An additional problem of doing it this way is that your pairs won't be filled evenly, causing a bit of a performance issue.

I would instead tackle this problem with the following strategy. Be advised, these steps create a significant risk of data loss during the procedure. Once everything is done, your data will be safe again, but you'll be looking at multiple days with near zero redundancy:
  • Delete everything you can get rid of. If it's recreateable/recoverable, even if somewhat painfully, get rid of it.
  • Compress the bajeezus out of the data. 7z is probably the best compression algorithm. You generally don't want to compress too much data in each archive, because huge archives will cause problems in the next steps.
  • Get 4x misc hard drives (at least 4TB or larger).
  • Create the 8x drive RAIDZ2 in FreeNAS
  • Begin copying the data. As you copy the data, remove drives from the storage pool, and replace the misc drives in FreeNAS with these 8TB drives.
If you can get your initial footprint under 32TB, you'll be able to free up 3 drives from your storage pool. This will provide you 4x 8TB drives for you FreeNAS setup. Plus your 4x 4TB drives, this will give you a pool with 24TB of storage (limited by the smallest drive). You can move most of the data to your new FreeNAS pool, removing one more drive from the Windows pool. At the end, you'll be left with about 8TB in Windows and three 8TB drives (minimum of 3 drives required for parity storage pool). You should be able to now add your spare 4TB drive to the pool, and subsequently remove an 8TB drive. Now add that drive to FreeNAS to free up another 4TB drive. Go back and forth doing this until you have all the data moved.

I have never done anything like this, but based on my understanding of ZFS and Storage Pools, this should be doable. Your biggest challenge is getting your initial data footprint down small enough that you can get the needed drives out of the pool.

Obviously, standard warnings apply: it is entirely your choice to do anything like this, and I won't be held responsible if this doesn't work.
 

danb35

Hall of Famer
Joined
Aug 16, 2011
Messages
15,504
I see some people recommend using mirrored vdevs instead of RAIDZ. Would that allow me a little more flexibility in the number of drives I start with?
It would, but at the cost of capacity. With 8 disks in RAIDZ2, 75% of your total disk space will be usable. With mirrors, it's only 50%. So, your 8 x 8 TB disks in mirrors would give you 32 TB, or 29 TiB, of pool capacity, which you'd want to fill no more than 80% full--so you'd have about 23 TiB of usable space there. In RAIDZ2, you'd have 48 TB, or 43 TiB available, of which 34 TiB would be usable.
 
Status
Not open for further replies.
Top