Hard drive failures have taught me to be very careful about backing up my data. Currently, I use a Redundant Array of Independent Disks (RAID) and Super Flexible File Synchronizer (SFFS) to provide two levels of data redundancy. I use RAID 1 (where two hard drives are exact copies of each other) which allows one drive to fail without shutting the system down. I don’t like the native backup utilities in Windows XP, so I bought SFFS to automatically backup my main machine’s data to a secondary computer every morning at 4AM.
This is the second PC I’ve built with a RAID 1 array. It’s also the last. RAID certainly has a place in the server environment where downtime is unacceptable, but I’ve come to believe that it doesn’t belong in home computers. Instead, I recommend building or buying a computer with a single internal hard drive and an identically-sized external hard drive. The external drive should be synchronized with the internal one at regular intervals, but whenever it’s not being synchronized it should be kept unpowered and unplugged at a different physical address (e.g. your office or a safety deposit box).
My primary reason for abandoning RAID is that it adds complexity which often results in unexpected conflicts. For example, in 2005 my first RAID machine inexplicably and spontaneously split its (single) RAID 1 array into two separate and degraded RAID 1 arrays. I asked for advice on a forum, and was deluged with five pages of responses like “Hey, that happened to me too!”. Unfortunately, no one seemed to know what to do, so I replaced a lot of components, reinstalled XP and prayed to Zeus that the computer wouldn’t repeat this bizarre behavior. (It did anyway. Screw you, Zeus!)
Sadly, I didn’t recognize this bad omen for what it was. My next PC also included a RAID 1 array, but a different motherboard with a better software RAID controller seemed to prevent the “duplicating RAID” problem from reoccurring. Life was good.
…until I tried to install Kubuntu 7.04 alongside my XP partition, that is. Once I finished the install process, Windows failed to boot! When I turned on my computer, I simply saw a chilling “Error loading operating system” error. Being a Linux noob, I immediately appealed for help. It turns out that most Linux distributions have spotty support for software RAID, and none of it works out of the box (have things changed?). Again, I had to reinstall my operating system from scratch.
Trying to install Kubuntu onto a software RAID array was my dumb mistake- I could easily have googled the issue and discovered this lack of support for myself. It just never occurred to me that it would be a problem, and I guess I thought that Kubuntu would fail gracefully instead of nuking my MBR (or whatever happened) in the process of screwing up the installation. And lest you think I’m slamming Linux, I’ve had Ubuntu 7.04 running on my laptop for almost two years. It was a cinch to install and has been rock-solid stable all that time. And honestly, if it weren’t for the fact that I’m a gamer, I would have switched all my machines over to some flavor of Linux long ago.
Furthermore, I don’t plan on using RAID even after the software support is perfected because it has more fundamental deficiencies. First of all, RAID only protects against physical hard drive failures. A short circuit in the power supply or a surge in the electrical power could easily damage both drives. A virus that wipes your hard drive will erase both drives. If a critical file is overwritten, it’s overwritten on both hard drives. If your home is destroyed by fire or flood or wind, both drives are destroyed. If someone steals your computer, they automatically get both drives. RAID is simply not a way to backup your computer.
The only real advantages of RAID 1 are slightly increased reading speed (right?) and the fact that the computer won’t shut down even if one of the primary drives fails. But for home users I doubt this feature is worth the extra power required to run both drives, the beefier power supply needed to handle that current, the added cooling requirements and the extra space needed inside the case for the second drive.
Keeping the system running after one hard drive has failed is also riskier than most RAID manufacturers admit. They often say that someone using RAID 1 is very unlikely to have both drives fail at the same time. Both drives failing simultaneously would destroy the data in the RAID array, but they don’t actually have to fail simultaneously to destroy the data. The second failure merely has to occur before the first failed drive is replaced.
At first I thought this was a fairly weak objection because I can usually get a replacement drive from Newegg within a couple of days. Since hard drives don’t fail that often, another failure within days of the first would be an astonishing coincidence, right?
Well, not really. The problem is that RAID works best if both drives are the exact same model from the same manufacturer. They’re also attached to the same power supply in the same case, cooled by the same fans. Their read/write patterns are nearly identical and their duty cycles are the same. As a result, the failure rates of the two drives are not statistically independent.
What this means is that if the first drive fails, the second drive is likely to fail too. For example, suppose one drive fails because the computer’s main fan fails, causing the case to heat up. The other drive is likely to fail too because it’s being exposed to the same high temperature. More subtly, the identical wear patterns increase the chance that both drives will fail simultaneously. Furthermore, two drives running 24-7 will probably require replacements around twice as often compared to keeping the second drive turned off except for weekly backups.
Once again, I recommend building or buying a computer with a single internal hard drive and an identically-sized external hard drive. Make sure you synchronize the two drives using a program that only copies the files that have changed since the last synch, otherwise it will take weeks instead of minutes. In Windows XP I prefer SFFS, and in Linux rsync is probably your best bet.
I say “nearly” because as far as I understand it, even RAID 1 performs striped reading (right?). This speeds up reading data because at any given moment each hard drive is reading a stripe of data that the other drive is skipping.
However, reading isn’t twice as fast because of overhead (anyone know a realistic figure?) and rarely makes a difference to me because modern hard drives are fast enough to play HD video already. It helps gamers by reducing the time needed to load a level into memory, but shouldn’t affect the framerate or performance of the game. I think this might help people who want to stream multiple files at once off the disk, though?↩ back