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