Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jun 2008 19:01:13 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        prad <prad@towardsfreedom.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: first pre-emptive raid
Message-ID:  <48667C69.2060109@infracaninophile.co.uk>
In-Reply-To: <20080628095613.38e92182@gom.home>
References:  <20080628005702.2137bb8c@gom.home>	<200806281302.20814.pieter@degoeje.nl> <20080628095613.38e92182@gom.home>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig20A678F7FC6998F6733F7F0D
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

prad wrote:

> why in diagram 20-3 of the handbook do they show 2 parity blocks though=

> for disk3 and disk4? why would you ever have more than 1 for any single=

> disk?

The diagram shows a RAID5 made out of a number of disk stripes spread
across 4 physical drives.  It's the /stripes/ that are the basic building=

block, not the disks in that implementation.  What RAID5 does is take
N-1 data blocks and adds a Nth parity block as a stripe across the N
drives. ie. reading across the diagram the first stripe consists of the
top row of 3 data blocks on the first three disks plus the 1 parity block=

on the top row on the 4th disk. The next stripe (the 2nd row down) arrang=
es=20
it as data data parity data, and so forth for the succeeding stripes.

The parity blocks are staggered across the drives to even out the traffic=
=20
levels on each spindle. As the diagram shows, it's not always possible to=
=20
have an exactly equal balance of parity and data blocks per drive.  The
diagram is simplistic though -- in a real system the stripe size would be=

something like N*128k -- which means that there would be millions of stri=
pes
on typical GB sized disks, so the differences between drives are entirely=
=20
neglible.

You have to have at least three disks to make a RAID5, and while=20
theoretically you can have as many disks as you want, there's a practical=

limit somewhere around 12-13 drives [Remember, you have to calculate the
XOR of all the data blocks in the stripe on any IO operation, and with so=
=20
many drives, that rapidly becomes onerous.] The sweet spot seems to be
around 7 drives.

There is a variant not supported by vinum called RAID6 -- this is simply
RAID5 with the parity block doubled up as a backup.  It's relatively new
and available under FreeBSD only by using hardware cards (Areca, 3ware et=
c.)
All this does is allow the file system to survive loss of any *two* disks=
 --=20
something that is more likely to occur than you might think, particularly=

as the number of disks per RAID goes up.

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
                                                  Kent, CT11 9PW


--------------enig20A678F7FC6998F6733F7F0D
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkhmfG8ACgkQ8Mjk52CukIx9WwCcDTcEGJg36OYFd73bY5QD2hzf
Vs0Anib/FI/bSZUG+LNRoNGs9Y2uXtoJ
=RyEz
-----END PGP SIGNATURE-----

--------------enig20A678F7FC6998F6733F7F0D--



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