From owner-freebsd-questions@FreeBSD.ORG Mon Feb 9 17:08:04 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37E8F1065686 for ; Mon, 9 Feb 2009 17:08:04 +0000 (UTC) (envelope-from nrml@att.net) Received: from web83814.mail.sp1.yahoo.com (web83814.mail.sp1.yahoo.com [69.147.85.91]) by mx1.freebsd.org (Postfix) with SMTP id 3B5B98FC20 for ; Mon, 9 Feb 2009 17:08:03 +0000 (UTC) (envelope-from nrml@att.net) Received: (qmail 3301 invoked by uid 60001); 9 Feb 2009 17:08:02 -0000 X-YMail-OSG: X_cv.9MVM1ky_BetLTcpeR6Fl8Oe0yBlJpvElB4WDIsrkdoNriXclCKk Received: from [76.252.235.221] by web83814.mail.sp1.yahoo.com via HTTP; Mon, 09 Feb 2009 09:08:02 PST X-Mailer: YahooMailWebService/0.7.260.1 Date: Mon, 9 Feb 2009 09:08:02 -0800 (PST) From: Gabe To: freebsd-questions@freebsd.org In-Reply-To: <498F38A7.8000602@infracaninophile.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Message-ID: <935744.1303.qm@web83814.mail.sp1.yahoo.com> Cc: Subject: Re: FreeBSD Preferred RAID controllers X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: nrml@att.net List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2009 17:08:05 -0000 --- On Sun, 2/8/09, Matthew Seaman wrote: > From: Matthew Seaman > Subject: Re: FreeBSD Preferred RAID controllers > To: nrml@att.net > Cc: "Wojciech Puchar" , freebsd-questions@freebsd.org > Date: Sunday, February 8, 2009, 11:55 AM > Gabe wrote: > > --- On Sun, 2/8/09, Wojciech Puchar > wrote: > > > >> From: Wojciech Puchar > > > >>> 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 Thank you, this is a very well-written response and I appreciate the time you took to type it all up. Now with a gstripe+gmirror setup, would it be possible to fail a specific drive on purpose? I mean fail a (good) drive, pull it out, replace it and rebuild(?) it. I know I know, but humor me.