FreeBSD Preferred RAID controllers

Matthew Seaman m.seaman at infracaninophile.co.uk
Sun Feb 8 11:55:35 PST 2009


Gabe wrote:
> --- On Sun, 2/8/09, Wojciech Puchar <wojtek at wojtek.tensor.gdynia.pl> wrote:
> 
>> From: Wojciech Puchar <wojtek at wojtek.tensor.gdynia.pl>

>>> I have to build a file server that will need to run a
>> RAID 0+1 config

If you want reliability, then use RAID10, not RAID0+1.  For RAID10,
you first create mirrored pairs of drives, then you stripe across all
the mirrors.  This is superior to RAID0+1 where you divide your
drives into two equal pools, create a stripe across all the drives in
each pool, and then mirror the stripes.

Raw to usable space ratio is the same, performance characteristics
are similar and good either way (some workloads, particularly those
involving lots of small random IOs are particularly favourable on
RAID10 (eg like the usage pattern of most RDBMses) whereas
sequentially  streaming large single files is happiest on RAID0+1
(eg. recording or playing video streams)). However imagine a RAID
consisting of 2N drives.  If one drive fails, then in RAID10, *one*
of your N mirrors is degraded, and the rest work normally. In
RAID0+1, it's one of the 2 *stripes* that is degraded -- effectively
taking out half of your drives.  Or to put it another way: given
one drive has already died and the RAID is degraded, in either
scenario, just one more disk death can take the RAID out completely.
However with RAID10 there's exactly 1 drive whose death could have
that effect -- failure of any of the other 2N-2 drives will degrade
the RAID further, but it will still keep working.  With RAID0+1 if
the second disk to fail is any of the N drives from the other stripe,
it will kill the whole RAID array.

>> the best is gmirror+gstripe. of course for those who want
>> to pay there are a lot of "hardware" solutions.

> Hey I'm all for saving money, but I'm unsure of the reliability of a
> 'software' solution vs a hardware one. Not to mention my biggest
> concern which is the failure of the Boot drive and how to recover
> from that using software raid.

Software striping and mirroring is extremely reliable -- probably more
so than using a hardware RAID card as there's simply less to go wrong.
On the other hand hardware RAID offers some big performance advantages
by being able to cache data in battery backed RAM[*] on the card, instead
of requiring you to wait until it's been written to persistent storage on
the drives themselves. 

While you can certaily boot from a gmirror RAID1, I don't believe it's
possible to boot from a gstripe -- but because this all works via the
geom framework, you can create stripes / mirrors at the filesystem level
-- so you can have a small separate RAID1 to boot from and to hold the
OS (either a dedicated pair of disks, or a pair of equal sized partitions,
and then create a RAID10 over the rest of the disks to hold your data.
I believe there is no requirement for the component parts of a gstripe
to all be the same size 

	Cheers,

	Matthew

[*] For mirroring and striping, the only real justification for using
hardware RAID is the performance benefit from the Battery Backup Unit on
the RAID card.  For RAID5 while a BBU is a *really good idea* it can
justify itself by offloading parity calculations from the main CPU.

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20090208/b4c684d9/signature.pgp


More information about the freebsd-questions mailing list