On Jun 28, 2006, at 17:25, Erik Trimble wrote:

On Wed, 2006-06-28 at 13:24 -0400, Jonathan Edwards wrote:

On Jun 28, 2006, at 12:32, Erik Trimble wrote:

The main reason I don't see ZFS mirror / HW RAID5 as useful is this:


ZFS mirror/ RAID5:      capacity =  (N / 2) -1

                                    speed <<  N / 2 -1

                                    minimum # disks to lose before
loss of data:  4

                                    maximum # disks to lose before
loss of data:  (N / 2) + 2



shouldn't that be capacity = ((N -1) / 2) ?

Nope.  For instance, 12 drives:  2 mirrors of 6 drive RAID5, which
actually has 5 drives capacity. N=12, so (12 / 2) -1 = 6 -1 = 5.

right, sorry - was thinking of the case where i've got 2 luns built out of single R5 parity group .. but there's not much point to using a mirror there since disk failure is typically much more common than LDEV failure. If you're really concerned with reliability (the only reason you should be thinking about doing both R5 and R1) - you'd be better off mirroring each component of a RAID stripe before you construct the parity group. This will still give you an effective capacity of (N-2)/2 or ((N/2) -1) but now you would have to lose 2 complete mirrors before you would fail. To me this would say that the best case for reliability here should be to plat with HW mirrored drives and RAID-Z on top. Of course, you're not going to be able to split mirrors very easily if you ever have that intention.

<snip>

And, a N-drive striped array will always outperform a N-drive RAID5/6
array.  Always.

true - but with some modern hardware, I think you'll find that it's pretty negligible.

I agree that there is some latitude for array design/cache
performance/workload variance in this, but I've compared what would be
the generally optimal RAID-5 workload (large size streaming writes/
streaming reads) against a identical number of striped drives, and you
are looking at BEST CASE the RAID5 performing at (N-1)/N of the stripe.

right, and you'll also have a read/<modify>/write penalty that will happen somewhere that can degrade performance particularly when you blow your cache in a large streaming write. Realistically you'll typically give up the performance addition of a drive or two for parity to get basic redundancy and then realign your stripe width for your filesystem allocation unit or block commit based on the number of data drives in your RAID set (N-1 for R5 or N-2 for R6). You'll probably be giving up another couple drives for hot spares .. you're never doing R5 for performance - it's the recoverability aspect with less capacity overhead than a full mirror.

.je

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to