How would you rebuild your raid stack in the event of OS corruption?
(note: I'm an old hand with UNIX-type systems and command lines...)
In my case, I'm running OpenSolaris on a mirrored pair of drives. If one side of the mirror goes bad, I can pull out the drive (it's in a hot-swap cage), chuck in a new drive, put a Solaris partition on it, and tell the OS to "replace" the old device. I'd also have to make sure to install GRUB (the boot loader) on the new drive, but that's a single command.
If *both* drives went bad, I'd have to boot OpenSolaris from a live USB stick (no CD-ROMS in my storage box) and restore the root pool (the OS installation) from backups. Yes, I keep backups.
My main storage pool is separate from the OS, with 8x500 GB drives arranged as a RAIDZ2 (two drives can fail without data loss). All of those are in hot-swap cages as well, and the storage pool works on entire drives (no partitioning needed) and the autoreplace property is set. If a drive fails in that pool, I can just swap in a new one on-the-fly with no command line intervention. The ZFS RAID-Z system can support one to three drives worth of redundancy (a RAIDZ3 can take three drive failures without data loss). There are tradeoffs, of course; more redundant drives means less capacity, and very large RAIDZ3 arrays (greater than 8-10 drives) start to run into performance issues. ZFS arrays can be built from groups of mirrors or groups of RAID-Z arrays, and if you started out with just a mirrored pair, you can readily add additional mirrored pairs to increase storage capacity.
ZFS also has a snapshot capability; you can quickly take a snapshot of a file system, and then roll back future changes if something went bad (or fetch an old version of a file from the snapshot). If you are sharing a ZFS data set over CIFS (Windows file sharing), Windows can access previous versions of files or folders (right-click the file or folder, select Properties, click the "Previous Versions" tab). Snapshots don't occupy extra disk space unless files are modified, and only the modified disk blocks occupy extra space.
In ZFS, all disk blocks are checksummed, and all reads verify the checksums; it doesn't trust the drives to maintain data integrity. Since I've actually experienced a drive that silently corrupted data (fortunately, I didn't lose anything), this is very important to me. For extra paranoia, I use ECC RAM - all recent AMD chipsets support ECC, and the Asus boards I use enable it in the BIOS.
Note that FreeNAS and NexentaStor are small enough to run from USB sticks, disk-on-module devices, CF cards, etc. They also have web-based interfaces to manage the system, so they'd be easier for most people to use. They are "appliances" rather than full OS installations...
One disadvantage of OpenSolaris in the current time frame: After Oracle took over Sun, they wasted no time in shutting off further development of OpenSolaris in favor of commercial Solaris (and quit releasing binary snapshots of OpenSolaris). Things are a bit in flux right now, but the
Illumos Project is now working on a fork of the final public release of OpenSolaris source code, and the
OpenIndiana Project has just released a beta distribution currently based on the final OpenSolaris code, with plans to move to Illumos in the near future. (To analogize with Linux, Illumos is the kernel and support utilities, OpenIndiana is a distribution that has desktop and server software, and so on.)