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

[-- Attachment #1 --]
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) arranges 
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 
levels on each spindle. As the diagram shows, it's not always possible to 
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 stripes
on typical GB sized disks, so the differences between drives are entirely 
neglible.

You have to have at least three disks to make a RAID5, and while 
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 
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 etc.)
All this does is allow the file system to survive loss of any *two* disks -- 
something that is more likely to occur than you might think, particularly
as the number of disks per RAID goes up.

	Cheers,

	Matthew

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


[-- Attachment #2 --]
-----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-----

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