ZFS pool expansion

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Nnyan

Active Member
Mar 5, 2012
146
51
28
I just wanted to make sure I had my facts straight since I've found some contradictory information online. I want to build my own home NAS, mostly for backing up PC's, media storage, DLNA media streaming, etc... Typical home use. I'm OK with getting 50-60Mbit performance (single drive) and I really like the ZFS feature set. The one thing that makes me nervous is how to go about expanding a ZFS pool. Here is my current config:

I will have Nine 3TB hard drives (as soon as the last 3 I just ordered get here) and I was going to do a RAIDZ2 with the 9th drive a 3 way stripe (18tb capacity). If I understand this correctly if I want to expand the storage pool I can't just get another two 3TB drives and add them to the array I have to basically build another 8 drive VDEV???? That's crazy if true.
 

sotech

Member
Jul 13, 2011
305
1
18
Australia
You cannot expand a vdev after you create it; you can add more vdevs to the pool to expand the pool, however. The vdevs do not have to be the same type but for performance reasons you probably want to keep them that way.

You could always create a smaller pool down the track with more drives if you ran out of space and didn't want to buy a matching vdev. Or make use of smaller vdevs so it's easier to expand with matching vdevs.

When you say the 9th drive as a 3-way stripe... what precisely do you mean? Are you talking about three drive redundancy - i.e. raidz3?
 

Nnyan

Active Member
Mar 5, 2012
146
51
28
Yes I meant Z3. But with with this way of expanding I may just do a three way mirror
 

sotech

Member
Jul 13, 2011
305
1
18
Australia
Yes I meant Z3. But with with this way of expanding I may just do a three way mirror
A pool made up of three 3x3TB mirrors will only give you 9TB of raw space in the pool from 27TB of drives - though performance would be quite nice...
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,513
5,804
113
A pool made up of three 3x3TB mirrors will only give you 9TB of raw space in the pool from 27TB of drives - though performance would be quite nice...
You could also do 3x 3TB RAID-Z arrays and and still get 18TB usable, get a bit more performance, and adding additional matching vdevs would involve 3 disks.
 

Nnyan

Active Member
Mar 5, 2012
146
51
28
That's a thought. I was considering a ZFS 3 way mirror for 12tb of storage but the 3x3tb is interesting
 

gigatexal

I'm here to learn
Nov 25, 2012
2,913
607
113
Portland, Oregon
alexandarnarayan.com
You cannot expand a vdev after you create it; you can add more vdevs to the pool to expand the pool, however. The vdevs do not have to be the same type but for performance reasons you probably want to keep them that way.

You could always create a smaller pool down the track with more drives if you ran out of space and didn't want to buy a matching vdev. Or make use of smaller vdevs so it's easier to expand with matching vdevs.

When you say the 9th drive as a 3-way stripe... what precisely do you mean? Are you talking about three drive redundancy - i.e. raidz3?
when you say add another vdev to the pool what are you thinking the pool is? is it a raidz pool of raidz vdevs? i'm trying to come up with a similar solution as the OP and this thread came up in my research
 

spazoid

Member
Apr 26, 2011
92
10
8
Copenhagen, Denmark
when you say add another vdev to the pool what are you thinking the pool is? is it a raidz pool of raidz vdevs? i'm trying to come up with a similar solution as the OP and this thread came up in my research
There is no such thing as a raidz pool. A pool consists of vdevs. Vdevs have redundancy levels (raidz, mirror, etc).

You can always add a vdev to a pool. The type of vdev(s) already in the pool can be different from what you're adding, but it is generally considered sub-optimal to mix vdev types and sizes within a single pool.
 

sotech

Member
Jul 13, 2011
305
1
18
Australia
when you say add another vdev to the pool what are you thinking the pool is? is it a raidz pool of raidz vdevs? i'm trying to come up with a similar solution as the OP and this thread came up in my research
As spazoid has mentioned, there's no such thing as a raidz* pool in itself... are you trying to combine pools?