A while back, I posted a pathetic plea for help in putting together a home server. After considerable thrashing in both hardware and software, I finally got it working a couple of weeks ago. For those who’re interested, here’s what I did (and for those who aren’t, Martini Boy will be back with something considerably more entertaining than this in a couple of days):
I’ve been planning to add a home media server for a while now. I wanted to save my DVD collection to hard disc for instant access (bite me, MPAA, they’re my DVDs), plus have a place to store all out digitized music, as well as any new video extracted from my DVRs, all to be playable anywhere in the house, but mostly at the main entertainment system in the living room.
My requirements were something like this:
1. It’s gotta be cheap.
2. It’s gotta have a lot of capacity.
3. It’s gotta feed high-definition video to a playback device (probably a Mac Mini).
4. It’d be nice if it were robust enough to recover from a hard drive failure.
After doing a mind-numbing amount of research and niggling price comparisons, I settled on building a server with six 300GB hard drives configured in a software RAID 5 array. In English, that means taking a bunch of hard drives and telling a piece of software to view them as one huge drive (that’s the RAID part) with the extra feature of being able to recover all the data on the array if any single drive fails (that’s the “5” part). That would give me just under 1.5 terabytes of storage, since under the rules of RAID 5, you lose roughly one drive’s worth of capacity in order to save all the just-in-case recovery data.
Once I had the basic plan in place, it was time to start buying hardware. I found what looked like an ideal enclosure and motherboard on eBay for $50, and since the seller was local, I didn’t even have to pay shipping; I just met up with him. I got a lucky break with the box, since it came with an unadvertised Gigabit Ethernet card (I also got a considerably less lucky break with the motherboard, but more about that later). A boot hard drive to run the thing was $13 (used), and the six 300GB drives wound up costing $425 total, using every demon-customer trick in the book. Three cheap Rosewill PCI cards to handle the hard drives totaled $51. I could have spent a lot more if a wanted/needed the higher performance of hardware RAID, but my requirements just didn’t merit either the expenditure or the added umph. Eleven bucks worth of cables and a second fan for the case, and I was ready to go–or so I thought.
The first major roadblock was chronicled in my previous post. In brief, the Shuttle AK12 motherboard that I’d bought with the computer case just didn’t want to boot with the hard drive controller PCI cards installed. A couple of weeks of fruitless tweaking later, I gave up on the Shuttle board and spent another $37 on an Intel D815EEA board with an 867MHz Pentium III CPU, again from eBay (this kind of home-use server with no more than three or four clients connecting on a really busy day just doesn’t need a super-fast chip).
The Intel board worked like a charm, recognizing the PCI cards and booting without a hitch, and I was finally in business–or so I thought. Now it was time for software problems.
I’d planned all along to use a little OS package called FreeNAS to run the server. FreeNAS is basically a stripped-down version of FreeBSD (an open-source UNIX variant, similar to Linux) that’s tweaked for home server use. “Perfect,” I said when I ran across it. “It even supports software RAID 5. What’s not to love?”
As it turned out, plenty. While FreeNAS does advertise RAID 5 support, once you dig into the documentation (and bad on me for not doing so before installing it), you find out that the RAID 5 implementation is, as C-3PO would say, “not entirely stable.” In real life, that meant the array fell apart the first time the server was rebooted, and couldn’t be recovered. Lucky for me, I hadn’t saved anything of note on it yet.
To be fair to FreeNAS, it’s a great idea, and one that’s very openly still in the development stage. That said, my experience with it indicates that like so many open-source projects, it’s just not ready for prime time. I’m sure I’ll get plenty of messages from *NIX gurus telling me if I’d just recompiled the fargle in the kernel and tweaked the shazbot files in the wkjtb program, the supercalifragilisticness of the open source world would have become clear immediately–but that’s not why I picked out FreeNAS in the first place. I picked it because it had a great feature set and a friendly GUI (the latter of which really is very nice). When the feature set is solid, I’ll have another look, but in the meantime, I needed something that “just works.”
Now, I am not a Microsoft fan. I am most definitely not a Windows fan. But when I ran across this site describing how to hack Windows XP so that it will create and maintain a software RAID 5, I figured I’d at least give it a shot. I had an extra Windows license laying around from the wife’s deceased lightning-struck Dell, so I installed a copy on the server’s boot drive and proceeded to walk through the RAID hack.
And what the heck, it works. The main downside is, recovering after a reboot is painful–you have to re-start the RAID from the Disk Management tool, and re-set its sharing preferences so the rest of the network can see it–but the data stored on the array pops right back up as soon as the RAID is running again. Performance is, as you would expect, not anything to write home about, but it does work well enough for my needs.
So there you have it, the story of the cheapest excuse for a 1.5TB network server known to man. Like they used to say on “Jackass,” we must insist that no one attempt to recreate or reenact this stunt at home…