Date: Wed, 15 Dec 2004 18:48:52 -0500 From: asym <asym@rfnj.org> To: ghost@kzsu.org, freebsd-stable@freebsd.org Subject: Re: drive failure during rebuild causes page fault Message-ID: <6.1.2.0.2.20041215183830.030013b0@mail.rfnj.org> In-Reply-To: <a9ef27270412151516fcc7720@mail.gmail.com> References: <20041213052628.GB78120@meer.net> <20041213054159.GC78120@meer.net><20041213060549.GE78120@meer.net> <20041213192119.GB4781@meer.net><41BE8F2D.8000407@DeepCore.dk> <a9ef27270412151516fcc7720@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
At 18:16 12/15/2004, Gianluca wrote: >barracudas and at this point I wonder if it's best to go w/ a small hw >raid controller like the 3ware 7506-4LP or use sw raid. I don't really >care about speed (I know RAID5 is not the best for that) nor hot >swapping, my main concern is data integrity. I tried to look online >but I couldn't find anything w/ practical suggestions except for >tutorials on how to configure vinum. If you don't care about hot-swapping, then you don't really care about (or need) RAID-5. It doesn't offer any additional "data integrity", but no RAID level does. What RAID does for you is allow you to survive an outright drive failure without losing any data. No RAID level can save you from buggy software writing garbage to the disk, transient disk errors, or the myriad other events that are far more common than a single drive just dying on you. Using RAID-5 as an example, during normal operations, a chunk is written to the "disk" and the controller (or software) calculates the bitwise XOR of all the blocks involved and writes that value into the parity stripe. During read operations, this parity data is not read or verified -- doing so would be pointless because there is no way to tell if it's the parity-stripe or the data-stripe that's "lying" if the two don't jive. So, during "normal" operations (all drives up and functioning) RAID-5 functions readwise as a RAID-0 with one less disk than you really have, and as a somewhat slower array during writes. If a drive completely fails, then the parity stripe is always read up, and the missing data stripe is reconstructed from the parity data -- unless the parity stripe happens to fall on the missing drive for the stripe set you're currently accessing, in which case it is ignored and for that single access the array functions just as it would if a drive hadnot failed. If you're thinking of using RAID instead of good timely backups, you need to go back to the drawing board, because that is not what RAID is intended to replace -- and is something it cannot replace.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.1.2.0.2.20041215183830.030013b0>