Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Oct 2000 20:24:38 -0700 (PDT)
From:      Matt Dillon <dillon@earth.backplane.com>
To:        Tom <tom@uniserve.com>
Cc:        Mike Hoskins <mike@adept.org>, Danny Braniss <danny@cs.huji.ac.il>, Gerhard Sittig <Gerhard.Sittig@gmx.net>, freebsd-stable@FreeBSD.ORG
Subject:   Re: PERC2 RAID support in 4.1-STABLE 
Message-ID:  <200010190324.e9J3Oco92249@earth.backplane.com>
References:   <Pine.BSF.4.05.10010181731440.526-100000@shell.uniserve.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
:> :RAID 5.  RAID 1 seems fast and reliable given a decent controller with
:> :good recovery options, and RAID 10 sounds like a better solution with a
:> :larger quantity of drives.
:> 
:>     A mirrored setup (RAID-1) will be a whole lot faster then a parity
:>     setup (RAID-5), since different read requests can be dispatched to
:>     both sides of the mirror simultaniously and writing does not require
:>     parity calculation.
:
:  A RAID5 system can also send different read requests to different disks.
:
:  Writing is another issue.  Writing to a RAID5 volume can be costly.
:Writing is ususally one third the speed of reading, especially small
:random writes.
:
:Tom
:Uniserve

    Well, yes, but only if the requests wind up on different disks.
    In a RAID-5 system, two wildly different requests might still
    *always* wind up on the same physical disk.  There isn't anything the
    controller can do about it -- that disk is going to have to do a full
    random seek.

    This means that the worst case per-disk seek delay in a RAID-5 system
    can be just as bad as if you had a single hard drive.

    A RAID-1 system, however, can choose which of two disks to issue the
    read to.   For example, a RAID-1 system can pull the first 12.5GB of a 
    25GB partition off of disk A and the second 12.5GB off of disk A's mirror,
    resulting in a worst case per-disk seek delay that is 2/3 the worst
    case in a RAID-5 system.  (That's just an example.  In truth the RAID-1
    system can zone the I/O dynamically, breaking requests up however it
    wishes).

    This is in addition to the doubling of performance the RAID-1 system
    gets by virtue of having twice as many disks.  The actual realized
    benefit of a RAID-1 system isn't just 2x a RAID-5 system, it's more
    like 2.5x a RAID-5 system due to the ability to zone.

    When RAID-1 zones its requests, it also has the side effect of making
    the hard drive's internal caches more effective.  A hard drive's internal
    caches are themselves zoned, but generally too small to be of real benefit
    in a completely random-seeking environment.  RAID-1's own zoning has the
    effect of improving the hard drive's internal zoning effectiveness
    by reducing the amount of randomness the hard drive sees and making it
    more likely that the hard drive will be able to service some of the
    read requests from its internal cache.  It isn't a big improvement,
    but it is an improvement.

    Do not underestimate the importance of seek delays.  This illustrates
    the importance, and also demonstrates the hard drive's internal 
    cache zoning:

      tty             da0             cpu
 tin tout  KB/t tps  MB/s  us ni sy in id
   0   22  1.00 8775  8.57   0  0 14 10 76	one sequential reader
   0   22  1.00 8811  8.60   0  0 13  9 78
   3   41  1.00 2522  2.47   0  0  3  4 93	two sequential readers
   0   22  1.00 2556  2.50   0  0  3  7 90	(reading from different areas)
   0   23  1.00 102  0.10   0  0  1  0 99	three sequential readers
   0   21  1.00 112  0.11   0  0  0  0100

    My particular drive is internally optimized for two zones, then
    performance goes to hell.

    Here's the same test using only half the disk:

      tty             da0             cpu
 tin tout  KB/t tps  MB/s  us ni sy in id
   0   22  1.00 8648  8.45   0  0 12 10 78	one sequential reader
   0   29  1.00 8630  8.43   1  0 14 10 76
   0   22  1.00 2625  2.56   0  0  4  1 95	two sequential readers
   0   22  1.00 2619  2.56   0  0  5  3 92	
   0   21  1.00 166  0.16   0  0  0  0 99	three sequential readers
   0   21  1.00 164  0.16   0  0  0  0 99

    As you can see, worst case seek performance is higher ... 165 transfers
    per second rather then 108 transfers per second. 

    The ability for a RAID-1 system to control the distribution of
    I/O requests adds another dimension to the worst case seek performance.
    With a good RAID-1 system, I could take the above disk, mirror it,
    and the worst case seek performance would not occur until I had 5
    sequential readers reading from different portions of the RAID volume.
    The very best RAID-5 configuration would still blow up at 3.

    So this is our tradeoff... cost verses performance for a given amount of
    storage.  If you need performance X for amount Y of disk space, RAID-5
    will give you less performance but cost less (fewer disks), and RAID-1
    will give you higher performance and cost more (more disks). 

    Ultimately what matters is not the amount of disk space you have, but
    the amount of disk space you need.  This is why you can't approach the
    problem from an equal-cost point of view.  If your application needs
    50GB of disk storage then having a RAID-5 system capable of storing
    100GB verses a RAID-1 system capable of storing 50GB, for the same price,
    doesn't buy you anything but lower performance.

						-Matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010190324.e9J3Oco92249>