Welcome to Part 2 of our Media Tank, Mark I project. If you missed it, last week's article covered the specs behind the Tank, why my wife and I built it, and what we use it for. Today is all about the build itself.
Our fundamental goal was to build an array that could handle as many hard drives as possible. Because I had a bunch of old, spare, Windows XP licenses floating around, I decided to base the machine on XP. I wasn’t terribly concerned about Web security (a big problem for XP), since I had no intention of surfing the Web from this machine and, once built, it would live behind an enterprise-grade firewall. The Tank was going to be headless (no monitor), and that meant all I needed was the ability to create Windows shares.
We work from home, so the network here is more than just something for family fun. It’s a serious professional tool. My wife co-founded our publishing business with me way back in the 1990s, and we worked together for more than a decade before we got married.
I’m telling you this because our network has been built to run our office, even though that office is located in a house – a house that’s been pretty much optimized to function as a network operations center as well as a family dwelling (although my mom thinks we should have a rarely-if-ever-used sitting area for guests instead of what looks to her like a computer lab).
Here at Camp David, we have a bunch of Windows machines, as well as four Macs, and a few Linux VMs. Because most of our day-to-day work is on Windows, we optimized for Windows shares, and XP did the trick. The Linux VMs and Macs understand SMB moderately well, so they’re playing along nicely.
And yes, I could have set up the Tank as a Linux box, but I didn’t want to. Linux regularly finds a way to annoy me or ruin my week. XP was easy, cooperative, and available. That’s all there is to that story.
You may have noticed that this project is about the Media Tank, Mark I. That’s because this is a first iteration implementation. This build is logically drive-centric. Each share lives on a drive and if that drive runs out of space, that share gets full – even if another drive has a ton of spare space.
This works, but storage pooling is a viable technology. At some point, we may embark on a Mark II project that pools storage across all the drives. But for now, shares don’t cross drives.
Before I move on to tell you about the gear, I want to post a disclaimer. When possible, I’m sharing a link to the item I bought. In most cases, those links are on Newegg, because I generally have pretty good luck buying from them. So, when you see the link and it takes to you Newegg, that’s because that’s the item I bought, not necessarily a pitch for you to go there and buy. I’m also using images from Newegg, so it seems fair to throw them some link love in return.
The Media Tank has the capacity to run ten drives: nine shared data drives and one boot drive. For the boot drive, I used an old spare drive. I loaded XP on it, and it runs. Since very little needs to live on the boot drive, as long as it’s not dog slow, it works for my purposes here. As I recall, it’s an old 300GB 7200 RPM platter.
Next up, choosing the components...
Choosing the right mobo got the first six drive interfaces
When looking for a motherboard, I had one simple requirement: lots and lots of SATA ports. Okay, I had a second requirement: relatively inexpensive. I wasn’t about to go buy a multi-thousand buck enterprise-quality motherboard. That would blow the whole budget in one go. I still needed to build a second backup Tank (and we were saving to buy our house).
I wound up settling on the ASUS M4A88T-M motherboard (now discontinued), which as you’ll notice sports six (count ‘em, six!) SATA ports. The board also has USB 3.0 (which was nice for future growth), HDMI, and a bunch of other yada yada. The nice thing was that the entire board (six SATA ports and all), was $94.
Processor didn’t matter much, so I threw a hundred buck Athlon into it, along with 4GB of RAM. I was running 32-bit XP, so RAM also didn’t matter much.
The drive cages
I’ll come back to the drive interfaces in a minute, but first let’s talk about the drive cages. There was a physical issue: how many drives could I fit into one mid-tower case? As it turned out, I found a set of very slick drive bays, the iStarUSA BPU Hot-Swap Cages. Each cage holds five hard drives, and fits where you’d normally put three 5.25-inch drives (think CD-ROM or DVD-ROM drive).
These beasts were $115, and – if I could find a case with six open, full-size bays, I could use two of them. That’s how I got to my ten drive requirement for the Media Tank. Each drive screws into a sliding carrier and can slide in and out of the Tank body without opening the whole thing up.
One note: I actually bought four bays (one set for the main Tank and one set for the backup Tank). One of the drive slots in the backup Tank just doesn’t work. It’s unfortunate, but it was just such a hassle putting all these parts together that I’ve just ignored that drive slot for now. If it ever becomes a storage issue, I’ll deal with it.
Extra SATA ports
By now, you’ve probably done a tiny little bit of math. You’ve calculated that with ten drive bays, and only six SATA ports, there’s a shortfall of four SATA ports. I needed to add ports.
This time it was off to Amazon, where I scored two StarTech.com 2 Port PCI Express internal SATA II controller cards for under $25 each.
Each card uses up a single PCI Express port and as luck (and my purchasing choices) would have it, the ASUS mobo I picked up had two PCI slots. Two 2-port SATA II cards would buy me my extra four ports.
These cards are also designed to work as RAID devices, but I just configured them to give me ports. I now had SATA ports for each of my drive slots.
Next up, the case, power and the price/performance curve...
The next problem was the case. I wanted a moderately compact case, and one that wasn’t ugly. This was going to be sitting in the media room and it had to at least look vaguely stereo-equipment-ish. As it turns out, it looks more like a Dalek than a stereo component, but that works, too.
Key to this requirement was at least two sets of contiguous three-bay (5.25-inch) drive slots. I was going to slide the drive cages into those slots, so I needed to be able to fit them in the gap.
I really like the case we found, the Thermaltake V5 Black Edition, which is also, unfortunately, no longer available. These are really sweet cases, and they were only $60 each. They also have a very robust handle on top, which is surprisingly helpful (especially when we were moving).
Like most DIY-IT projects, If you decide to go off and build one of your own, you’ll never find the exact components I used, but you’ll want to find equivalent units that do the same job.
As you might imagine, ten drives draw a considerable amount of power. However, since the Tank was not hosting other power-sucking PC components (like honking video cards or overclocked processors), I could get away with a big, but not huge, power supply.
I eventually settled on a $90 Corsair 650 watt ATX supply, which has behaved itself reasonably well since we first fired it up.
Riding the technology price/performance curve
Now, as you may have noticed, the cases actually came with a pile of internal drive bays. I didn’t, technically, have to install my sliding trays, because I could have just mounted all the drives (or most of them, anyway) inside the case. But I wanted the ability to add, remove, and swap drives from the Tank without having to open everything up.
The ability to easily swap drives without opening the box was actually one of the key parts of our design strategy. That’s why I used the sliding trays.
I approached it this way because I didn’t want to have to buy all the drives at once. As the drives filled up, we added more. Also, I know that drives fail, and I wanted replacement to be easy without tearing apart the whole case. In fact, one drive did fail a few months ago, and replacement was a snap.
In terms of strategic drive purchasing, drives usually have a sweet spot (unless there’s a major flood in Thailand). There always seems to be one drive capacity that’s comparatively cheap for the amount stored compared to the other drives.
Drives also regularly come down in price. When we first started equipping the Tank, 1TB 7200RPM drives were in the $169 range. Last week, I bought four 2TB 7200RPM drives for $85 each.
So, the idea was that as we digitized our media content, we’d add drives. Over the time it took us to use up more capacity, the higher capacity drives came down in price, making the whole thing more cost effective. I started off by re-using a bunch of leftover 1TB drives, and then as we needed more space, I moved the content over to 2TB drives, which is where we are now.
Had I bought the larger capacity drives all at once, I would have spent roughly three times as much, and incurred more wear and tear on always-spinning platters.
Assembling the Tank
Assembling the Tank was a lot of fun, in large part because projects are really fun to do with my wife. We work well as a team, both when pulling the components together and during the assembly phase, where she’s a lot more patient with fiddly parts than I am.
There are a lot of cables jammed into that case, and opening it is non-trivial (which is why I haven’t taken any interior pictures for you). But the big challenge was mounting the drive cages inside the case’s 5.25-inch drive bays. As it turned out, there were some metal mounting brackets that got in the way.
My wife went to town with some hand tools, swiftly and efficiently removing those brackets, and actually performing precision alterations (as well as some profanity-fueled brute-force bashing) on the interior of the case so everything would fit right. I love my geeky girl!
So there you go. The guts of the Media Tank, Mark I. There’s more to come with this story. Stay tuned.