Jump to content

Newb ZFS Migration Sanity Check


Go to solution Solved by JorgeB,

Recommended Posts

TL;DR: I want to reconfigure my array to get the fastest speeds while maintaining data duplication (parity/mirroring).

I've been migrating away from Synology for close to 2 months now. I've mostly been waiting on 6.12.0 to come out with ZFS pool support. From my limited research (this will be my first ZFS filesystem), it seems like a RAIDz2 will do what I want with the safety net I want.

 

 

What I have:

  • 2 * WD 14TB drives (currently set as Unraid Parity)
  • 2 * WD 10TB drives (currently set as Unraid data)
  • 2 * WD 10TB drives still in the Synology, they can be pulled from the Synology and put into Unraid quickly
  • 2 * Intel NVMe drives as cache pool (default configuration - BTRFS, only 1TB usable it seems so it must be mirrored?)
  • 1 * 1TB 2.5" SSD as Docker backup storage
  • 1 * 16GB flash drive for Unraid OS


What I'm getting today that doesn't really affect the array directly:

  • 4 * 4TB NVMe and an x16 card to house them. When I installed the 2 * Intel NVMe drives, I recall the x8 card having more room on the slot and think I recall the bifurcation settings having to go to x4x4x4x4 so I'm hoping it'll work. If not, I return the card and 2 of the drives, and use the 2 remaining drives to get at least 4TB of cache.


What I'd ultimately like to do for cache:

  • 8TB+ of cache. Parity would be nice
  • Increase the speed of my main array, most importantly write. If there's no benefit to write performance, I probably won't bother with the array side

 


Here's my thought (somewhat intentionally vague, see the questions below):
For the array

  1. Put the 2 spare 10TB drives in
  2. Create a RAIDz2 pool
  3. Copy the data from my array to the RAIDz2 pool, which as I understand it should have a 2x speed increase, I'd just be bottlenecked by the read speed of the existing array
  4. Once the copy is done, remove the existing Unraid array
  5. Put the original 2 * 10TB into the RAIDz2 pool
  6. Put the 2 14TB drives in the RAIDz2 pool

 

Questions that arise here:

  1. First and foremost, can you add to a RAIDz pool in Unraid and it work? I believe the answer is yes
  2. I suspect I won't be able to or shouldn't create a RAIDz2 pool with 2 10TB drives. If that's the case, what if I added one of the 14TB drives when I add the 2 10TB drives? At that point, my Unraid array and the RAIDz2 would be idential, each with a single 14TB drive and 2 * 10TB drives
  3. Would I actually see any speed advantage while copying data over?

 

Of course, if the answer to 1 or 2 are in the negative, then the only way I can do what I want is to backup my data to an external drive, nuke everything, build the new ZFS pool then put everything back. The question is what's the best way to configure the new setup where I can get the fastest performance without sacrificing fault tolerance? I still, from my research, think RAIDz2 is the way to go, but please educate me if I'm wrong.

 

 

 

Now, as for my cache:

  1. Copy all data off current cache
  2. Shut the system down
  3. Pull out the 2 * Intel drives and their card
  4. Put in the 4 * 4TB drives and their card
  5. Start it backup
  6. Now what? lol
  7. After figuring out how to configure the array and doing so, copy all the data back and spin my docker containers back up


Questions:

  1. Do another RAIDz2? SpaceInvaderOne mentioned something in a video regarding ZFS pools about losing one drive to parity, so I'd have 12TB of cache striped with 1 drive as parity?
  2. That would give me a pretty good speed boost?

 

 

Sorry if you're reading this and thinking these are newb questions, but I've copied this data 4x now and I'd really like to avoid having to do this again in a month. Particularly since I'll get 500GB-1TB into the transfer and my speeds go to about 1/4 of what I start with, even when copying from the array (no parity writing) to a USB drive. It's basically a 5 day process that I don't want to repeat any more than I have to. If I had enough drives to do a practice run (only 2 spares, 3 if I pull one of my parity drives out of the array). 

 

If you're asking yourself why I'm looking to bump the array speed, simple, it'll fall to 50MB/s or sometimes lower if I'm transferring a large amount of data. If you're asking yourself why go so big on cache, well that one's easier -> backups. I want to backup everything as quickly as possible. A great example of this is just now as I'm writing this, my desktop started backing up which dropped my Unraid data backup to 1.5MB/s.

Link to comment
1 hour ago, buee said:

First and foremost, can you add to a RAIDz pool in Unraid and it work? I believe the answer is yes

Only if you add a new vdev of the same with, this is a zfs limitation, e.g., if you have a 4 disk raidz you can add another 4 disks.

 

1 hour ago, buee said:

I suspect I won't be able to or shouldn't create a RAIDz2 pool with 2 10TB drives.

raidz2 requires 4 devices minimum, if you use different capacity disks usable space will be of the smallest one(s).

 

 

 

 

 

 

  • Like 1
Link to comment
20 minutes ago, JorgeB said:

Only if you add a new vdev of the same with, this is a zfs limitation, e.g., if you have a 4 disk raidz you can add another 4 disks.

 

raidz2 requires 4 devices minimum, if you use different capacity disks usable space will be of the smallest one(s).

Okay, so the only way to do this is to backup data, kill the unraid array, redo it as RAIDz2, correct?

Link to comment

My understanding is that you have to have at least a one (1) disk Array, then you can have as many ZFS pools configured how you like. Remeber this is Unraid, you NEED TO HAVE an Array, even if it's only one (1) disk. ZFS RaidZx, mirrors, etc are only for pools. You can put all your data on the ZFS pool(s) you create and point Dockers (i.e. Plex) to pull the data from them instead of a traditional array, BUT you still need at least a 1 disk Array.

 

You can format your Array disks as ZFS, put them in the Array, but they will not be a ZFS pool of any kind. They'll just be formatted as ZFS and get a few of the ZFS attributes.

 

I'm still learning this ZFS file sys, so confirm what I'm telling you.

 

Good Luck.

  • Like 1
Link to comment
6 hours ago, MFenix said:

My understanding is that you have to have at least a one (1) disk Array, then you can have as many ZFS pools configured how you like. Remeber this is Unraid, you NEED TO HAVE an Array, even if it's only one (1) disk

Correct, you can also use for example an old flash drive to fulfill that requirement.

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...