I made a mistake in calculating the mttdl-drop for adding stripes - it
should have read:
2 disks: space=500 GB, mttdl=760.42 years, iops=158
4 disks: space=1000 GB, mttdl=380 years, iops=316
6 disks: space=1500 GB, mttdl=*253* years, iops=474
8 disks: space=2000 GB, mttdl=*190* years, iops=632
So, in my conclusion, it should have read
1. is less expensive per addition (its always just two disks)
2. not limited in number of stripes (a raidz should only hold up to 8
data disks)
3. *drops mttdl much less quickly (in fact, you'd need 12 stripes
before hitting the 8+1 mttdl)*
4. increases performance (adding disks to a raidz set has no impact)
5. increases space more slowly (the only negative - can you live with
it?)
Sorry!
Kent
Kent Watsen wrote:
I think I have managed to confuse myself so i am asking outright hoping for a straight answer.
Straight answer:
ZFS does not (yet) support adding a disk to an existing raidz set
- the only way to expand an existing pool is by adding a stripe.
Stripes can either be mirror, raid5, or raid6 (raidz w/ single or
double parity) - these striped pools are also known as raid10,
raid50, and raid60 respectively. Each stripe in a pool may be
different in both size and type - essentially, each offers space
at a resiliency rating. However, since apps can't control which
stripe their data is written to, all stripes in a pool generally
have the same amount of parity. Thus, in practice, stripes differ
only in size, which can be achieved either by using larger disks
or by using more disks (in a raidz). When stripes are of
different size, ZFS will, in time, consume all the space each
stripe offers - assuming data-access is completely balanced,
larger stripes effectively have more I/O. Regarding matching the
amount of parity in each stripe, note that a 2-disk mirror has the
same amount of parity as RAID5 and a 3-disk mirror has the same
parity as RAID6.
So, if the primary goal is to grow a pool over time by adding as few
disks as possible each time while having 1 bit of parity, you need to
plan on each time adding two disks in a mirrored configuration. Thus
your number of disks would grow like this: 2, 4, 6, 8, 10, etc.
But since folks apparently want to be able to just add disks to a
RAIDZ, lets compare that to adding 2-disk mirror stripes in terms of
impact to space, resiliency, and performance. In both cases I'm
assuming 500GB disks having a MTBF of 4 years,7,200 rpm, and 8.5 ms
average read seek.
Lets first consider adding disks to a RAID5:
Following the ZFS best-practice rule of (N+P), where N={2,4,8} and
P={1,2}, the disk-count should grow as follows: 3, 5, 9. That is,
you would start with 3, add 2, and then add 4 - note: this would
be the limit of the raidz expansion since ZFS discourages N>8.
So, the pool's MTTDL would be:
3 disks: space=1000 GB, mttdl=760.42 years, iops=79
5 disks: space=2000 GB, mttdl=228.12 years, iops=79
9 disks: space=4000 GB, mttdl=63.37 years, iops=79
Now lets consider adding 2-disk mirror stripes:
We already said that the disks would grow by twos: 2, 4, 6, 8, 10,
etc. - so the pool's MTTDL would be:
2 disks: space=500 GB, mttdl=760.42 years, iops=158
4 disks: space=1000 GB, mttdl=380 years, iops=316
6 disks: space=1500 GB, mttdl=190 years, iops=474
8 disks: space=2000 GB, mttdl=95 years, iops=632
So, adding 2-disk mirrors:
1. is less expensive per addition (its always just two disks)
2. not limited in number of stripes (a raidz should only hold up to
8 data disks)
3. drops mttdl at about the same rate (though the raidz is dropping
a little faster)
4. increases performance (adding disks to a raidz set has no impact)
5. increases space more slowly (the only negative - can you live
with it?)
Highly Recommended Resources:
http://blogs.sun.com/relling/entry/zfs_raid_recommendations_space_performance
http://blogs.sun.com/relling/entry/raid_recommendations_space_vs_mttdl
Hope that helps,
Kent
------------------------------------------------------------------------
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss