gabriel rosenkoetter on Sat, 1 Jun 2002 04:59:30 -0400


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Linux Raid


On Sat, Jun 01, 2002 at 05:25:36PM +1000, Bradley Molnar wrote:
> My understanding was that Raid 0 (striping) increases read/write b/c it
> alternates between 2 disks, it can write data faster than any one disk can
> write, and the same goes for reading.

Only if the bus can handle the full throughput of however many
drives you've got, though. If you've got, say, four disks and two
controllers, and each disk is capable of saturating the controller,
read and write speed will be exactly the same as if you had one large
disk. Even beyond that, you're going to be limited by your PCI bus.
(Is that a 32 bit or 64 bit PCI slot? If the latter, is it running
at 33 MHz or 66 MHz?)

Also, note that the size of your write is relevant. If it's not larger
than a block, you're not buying any speed.

> Raid 1 (mirroring) as you said, can increase read speed, but, it doesn't
> speed up writing, as, it has to write the same data to 2 independent disks
> at the same time.

And, again, if you've only got one controller, this will slow your
write speed down (unless you've got, let's say, two disks that only
write half as fast as the bus can supply them with data).

> Then there are the really weird ones, Raid 5 and 10.

RAID 5 is weird? But it's the most commonly used in the real
world...

> Raid 10 is a Raid 1 where each 'disk' is in actuality a raid 0
> disk.

You mean RAID 0+1, not RAID 10. RAID 10 is the other way around
(RAID 0 across RAID 1 arrays.)

> Raid 2 isn't used (I think) and Raid 3 and 5
> have stuff to do with parity disks (a whole disk is set up for verifying
> data in the case of 3, in 5 the parity is spread over various disks --
> basically, faster than just 1 disk, but, has safety built in [at the cost of
> a whole disk]).

That's not exactly correct.

RAID 2 is used infrequently; it provides error correction by way of
hamming codes (which wastes more of your disk on error correction,
leaving less for real data). It's expensive, but it does a better
(by which I mean faster) job of error correcting on the fly.

RAID 3 and 4 both keep a separate parity disk (you lose one disk out
of your set to parity; more disks in your set mean you get more of
your purchased capacity). 3 stripes each block across the disks, 4
writes a full block to each disk. (So 3's parity is of a block,
whereas 4's parity is of n-1 blocks.) Each of these makes sense in
different places.

RAID 5 (which is *quite* common, not weird at all) does writes a
block to each disk, then a parity block to the last disk. Which disk
gets parity migrates in consecutive passes across the disks. RAID 6
is this, but with two parity blocks. (With RAID 5, you can continue
to function with one bad disk in the set; with RAID 6 you can
continue to function with two bad disks. Mttf of three disks in a
set of four disks--the minimum necessary for RAID 6, though you
really want more like 16, probably--is ludicrously large.)

That's all I ever actually remember, though there's some other
funky stuff (somebody's proprietary controller design to allow
access directly to all blocks in a stripe simultaneously, striping
across RAID 3, so forth). In any case, this needn't be a point for
speculation. Google's first hit on the topic (presuming it's still
the first hit for "raid levels") is what I usually check when I
forget the RAID distinctions (I always reverse 0 and 1). See:

  http://www.acnc.com/04_00.html

-- 
gabriel rosenkoetter
gr@eclipsed.net

Attachment: pgpx3jtL3m2G2.pgp
Description: PGP signature