Well, that was incredibly easy. Software RAID under linux using mdadm:
$ mdadm --create /dev/md0 --chunk=32 --level=1 --raid-disks=2 /dev/hdc /dev/hdd mdadm: array /dev/md0 started. $ sudo mdadm --detail /dev/md0 /dev/md0: Version : 00.90.00 Creation Time : Fri May 10 20:57:01 2002 Raid Level : raid1 Array Size : 39082560 (37.27 GiB 40.02 GB) Device Size : 39082560 (37.27 GiB 40.02 GB) Raid Disks : 2 Total Disks : 2 Preferred Minor : 0 Persistance : Superblock is persistant Update Time : Fri May 10 20:57:02 2002 State : dirty, no-errors Active Drives : 2 Working Drives : 2 Failed Drives : 0 Spare Drives : 0 Number Major Minor RaidDisk State 0 22 0 0 active sync /dev/hdc 1 22 64 1 active sync /dev/hdd UUID : 678d4abe:00f7f2c6:cebff360:4438e01f $ mkfs -t xfs /dev/md0 meta-data=/dev/md0 isize=256 agcount=38, agsize=262144 blks data = bsize=4096 blocks=9770640, imaxpct=25 = sunit=8 swidth=16 blks, unwritten=0 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=1200 realtime =none extsz=65536 blocks=0, rtextents=0 $
Basically, this means I have two hard drives that are a complete mirror image of each other. Additionally, I have journalling on the drive (via XFS) so that if the power fails suddenly, the machine doesn’t have to fsck (“scandisk” for you Windows users) on the way back up. It makes the machine that much more reliable.
And it only took three commands under a minute to do it.
Now… Lets see if I can figure out how to make this the root partition.
Caveat: Since I’m just experiementing, I put the drives on the same IDE chain. Don’t do that for production purposes. Each drive should have its own controller if you are going with IDE. SCSI lets you have more flexiblity, but the drives are much more expensive.
And, with a little looking, you could find something like the Adaptec ATA RAID, a hardware IDE controller that will free up your CPU cycles.