Monday, January 24, 2005


A 120GB RAID Server for $250?

How I built my own RAID file server for next to nothing

At home we have various laptops we use about the place, connected wirelessly to the Internet and to each other. Important business files, digital photographs, software code and so on were located all over the place and infrequently backed up to CD, DVD and USB-connected portable disk drives. I was never very happy about this arrangement, and recently resolved to do something about it.

The first problem is: what do you use for backup? CD and DVDs are slow and unreliable. It's quite common to burn files to CD and find they cannot be retrieved. Sure, I'm only using the lousy bug-riddled ROXIO software which came with my Thinkpad, but I didn't want to spend money on NERO when I was not convinced backing up to DVD was the way to go, anyway.

For a while I looked into getting a DAT tape drive. I have always hated tape of every sort since I started using 1600BPI reel to reel tapes on minis in the 1980s and later Quarter-Inch cartridges on SUN workstations and PCs. The sound of the tape buzzing back and forth while my colleagues placed bets as to whether the data would be retrievable or not remains with me to this day. A quick google search revealed that the situation has not improved in the past ten years. Not only that, the drives and tapes are still really expensive.

Around 1997 I'd experimented with the IOMEGA Zip drive but did not want to go that route either.

My solution was, therefore, as follows.

I decided to build a custom file server with two largish hard drives on it. One drive would be the 'primary' and would contain a shared directory below which I would organize all of our important files. The other would be the 'secondary' which would be hidden from the network but to which all changes to the shared directory on the primary would be reflected.

I first wrote a program in C++ which monitors file system activity and reflects changes from the main drive to the backup. Testing revealed that this worked acceptably.

The next step was to source the hardware. Itherefore scoured the Internet for a cheap tower system to act as the host. I found one at Monitorman. $60 bought a 1998 vintage IBM PC300GL, P-II 350Mhz with a 4GB internal drive, 64MB memory, 2xUSB, monitor, mouse and keyboard. You can't beat IBM, in my opinion. If I am buying a six year old computer, I want quality, and IBM kit is something I would be happy going into battle with.

Next, I bought two 60GB MAXTOR drives from a source which shall remain anonymous for the moment. I then bought a cheap authentic copy of Windows 2000, and finally a Netgear WG111 Wireless USB network adapter from CompUSA. Not only is the USB wireless card cheaper than its PCI equivalent, it's a lot more flexible too.

The first thing I did was dump the slow, clunky 4GB drive in the PC300 and install the two shiny new Maxtors. I got Windows 2000 installed and started the process of copying files. However, I started to get random Bugcheck errors and blue screens. After some pointless trial and error I tried installing Linux. The installer consistently failed with a Segmentation Fault (signal 11). This, apparently, is a sign of bad memory. I therefore headed over to and downloaded the superb, free, standalone memory test utility there. This revealed that I had a bad memory chip with a consistent failure around the 6.5MB mark.

Monitorman didn't respond to my email asking for a replacement SIMM. To be fair to him, what did I expect for $60? To be even fairer, I may have fried the SIMM by stupidly running the machine overnight copying files with the lid off. Anyway, I purchased a replacement SIMM, a 128MB, from the absolutely excellent UpgradeMemory site for $33 excluding shipping.

With this in place I repeated the task of installing Windows 2000 and assembling all of our files into some sort of order. I left the Primary drive formatted as FAT to allow easy access from a boot disk, and formatted the secondary drive as NTFS to get the additional robustness that system provides.

With the server relegated to the basement, we now hit it over the wireless network. Any files we save to it get copied within about sixty seconds of a cessation of disk activity over to the shadow drive.

I still back up key files to DVD from time to time, but I can rest easy in the knowledge that our day to day work is now automatically saved to two different drives.

OK -- I know it's not really RAID. But in its favour, it's simple, cheap, and I can actually understand it. I can have either of those drives in another machine and have all my files back inside five minutes. All without setting up drivers, RAID arrays, and so on.

Was there a problem with using Windows 2000's software RAID for mirroring the drives?

Admittedly it would make things more complicated for retrieving the files from another computer, then what you rolled on your own. But it would have saved the trouble of writing the C++ file copier.
That's the problem these days, you want to write some cool software and it turns out someone's already beaten you to it.

Seriously, though, it took me an hour to write this program, and as you said it would be more complicated retrieve the files from a RAID system in the event of a crash!

Thanks for reading!
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?