Adding a mirror pair to an already existing mirror pair

NavyLCDR

Dabbler
Joined
Jul 17, 2019
Messages
26
Hi!

Very noob here! Been using FreeNAS for all of 1 week now and absolutely LOVE it! I am migrating from 2 RAID 0 NAS boxes with 2x 3TB drives each to a FreeNAS server. I had 2 spare 3TB drives so here is what I have done so far:
Installed the 2 spare 3TB drives in the FreeNAS server and set up a mirror pool. I am assuming that is essentially the same as my RAID 0 NAS boxes since the pool size was the same as 1 3TB drive? Then I installed Windows in a VM on FreeNAS and used FreeFileSync to copy everything from one of my RAID 0 NAS boxes to the FreeNAS pool.

What I wanted to do was then take the 2 3TB drives from the old NAS box and add them as striped drives to the existing mirrored pool. I wanted to end up with 2 3TB drives striped to a 6TB pool and mirrored onto the second pair of 3TB drives also striped to 6TB. But I couldn't figure out how to do that. So I ended up creating a second mirrored pool with those two drives and I am now copying the contents of the second RAID 0 NAS box to that pool.

Once the second NAS box has been copied, I'll have the 3TB drives free from it. So is there a way to do what I originally hoped to do? Extend one of the mirrored pools to the free pair of drives to end up with 2 drives striped together mirrored with 2 other drives striped together?

Thank you!
Very Respectfully,
John
 
Joined
Oct 18, 2018
Messages
969
Hi @NavyLCDR, welcome to the forums! Happy to hear you're loving FreeNAS. It can be quite addicting.

Installed the 2 spare 3TB drives in the FreeNAS server and set up a mirror pool.
I'm gunna nit on the terminology here a little, but I promise I mean it in a helpful way. ;). I think you mean that you set up a pool with 1 vdev which is a mirror vdev composed of 2 disks. The reason I make this annoying nit and distinction is because in FreeNAS the disks are managed by ZFS which exposes pools for storage. Pools are made of vdevs and if a single one of those fails you lose your pool. vdevs are built from physical disks and are where redundancy is important. Thus, when you're looking to use mirrors for data safety it is at the vdev level. If you're looking for redundancy at a higher level you'll want backups of your pool. I highly recommend backups at this level because FreeNAS is NOT a substitute for a backup. ZFS hasn't yet introduced parity bits immune to fire, flooding, etc.

Then I installed Windows in a VM on FreeNAS and used FreeFileSync to copy everything from one of my RAID 0 NAS boxes to the FreeNAS pool.
Interesting way to do that but it sounds like it worked?

What I wanted to do was then take the 2 3TB drives from the old NAS box and add them as striped drives to the existing mirrored pool. I wanted to end up with 2 3TB drives striped to a 6TB pool and mirrored onto the second pair of 3TB drives also striped to 6TB. But I couldn't figure out how to do that. So I ended up creating a second mirrored pool with those two drives and I am now copying the contents of the second RAID 0 NAS box to that pool.
I'm not 100% sure what you mean here, but I think it may have to do with confusions from above. What I think you may want is a setup like the following.

Code:
pool:
  vdev1 (mirror)
    3TB disk
    3TB disk
  vdev 2 (mirror)
    3TB disk
    3TB disk


In FreeNAS vdevs don't mirror each other, rather the disks within a vdev are what create the mirror.

Once the second NAS box has been copied, I'll have the 3TB drives free from it. So is there a way to do what I originally hoped to do? Extend one of the mirrored pools to the free pair of drives to end up with 2 drives striped together mirrored with 2 other drives striped together?
Absolutely! What you'll want to do is select your pool and click "extend", you can then add an additional vdev composed of the new disks.

If I understand your post you have a total of 6 3TB drives. If you want to stick with mirrors you can do the following

It sounds like what you already have set up is the following

Code:
pool 1:
  vdev1 (mirror)
    3TB disk
    3TB disk
pool 2:
  vdev 1 (mirror)
    3TB disk
    3TB disk


And you have 2 more 3TB disks you'd like to add. If you want to stick with mirrors I would suggest you extend your original pool with the two new drives so that you have the following.

Code:
pool 1:
  vdev1 (mirror)
    3TB disk
    3TB disk
  vdev 2 (mirror)
    3TB disk
    3TB disk
pool 2:
  vdev 1 (mirror)
    3TB disk
    3TB disk


Then, copy everything from pool 2 to pool 1, delete pool 2, and use those two disks to extend pool 1 one last time so that you end up with the following.

Code:
pool 1:
  vdev1 (mirror)
    3TB disk
    3TB disk
  vdev 2 (mirror)
    3TB disk
    3TB disk
  vdev 3 (mirror)
    3TB disk
    3TB disk


This will give you the optimal speed for the amount of space if you stick with all mirrors.


Since you said you are new I would recommend you do some reading on how to protect your data and how each vdev type works. In the above a single vdev could suffer a single disk failure and be fine, if you lose a second in the same vdev you'd be in trouble. Keep this in mind. If you wanted something a bit more secure but slower (but also with better space utilization) you could look into RAIDZ2.


I realize I've rambled somewhat here. I hope this is helpful. Let me know if you have questions. Other folks may chime in with opinions as well.
 

NavyLCDR

Dabbler
Joined
Jul 17, 2019
Messages
26
Thank you, @PhiloEpisteme for your reply! I guess let's start with, please, if I have the setup that I think I have.


Capture.JPG


Now, let's say ada0p2 fails. To me, that means one physical hard drive. Would I be able to replace that drive and then resilver ada2p2 to the new ada0p2 drive? I created this pool by clicking on the storage menu, then pools, then add, Create Pool, selected the 2 available drives, then the right arrow to move them to the Data VDevs section. I selected Mirror, then the create button. So, if I am understanding this correctly, what I did was create Pool1 which consists of 1 Vdev, and that Vdev consists of two physical drives that are mirrors of each other. If one drive fails, I should be able to replace it, and resilver from the other drive in that Vdev?

What I can't figure out how to do, which I think what I need to do is....create a new Vdev consisting of 2 drives mirrored, then stripe that Vdev with the pool pictured above which, I think, consists of 1 Vdev with 2 mirrored drives?

So my question would be, how do I create a Vdev with 2 mirrored drives and not have be assigned to a pool? Then how do I attach that second Vdev to an already existing pool as a stripe?

P.S. Nit away at my improper terminology! It just bugs the heck out of me when people refer to UEFI settings as BIOS! The dang computer has one or the other, a UEFI computer does not have a BIOS!

EDIT: I think I figured it out! I'll bet I have to click on the Add Data button, don't I?!? Will a second Data VDev "box" open then and that is where I add the two new drives to create the second VDev, then I can stripe those two VDevs together?
 
Last edited:

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
You want the extend function (using the cogwheel on the right of the GUI for that pool).
 
Top