My costly mistakes on the path to a somewhat inexpensive home server

For the last few years, I’ve been using a couple of ZyXEL NSA320 NASs with Debian in place of the stock firmware as home servers for files, backup, and misc applications. Recently though, I figured out that one of them has a flakey SATA channel, plus, I’ve been wanting better performance for Time Machine backups, AND I’ve had the urge to build a new PC.  So, I decided to address all three issues at once.

In retrospect, the sensible thing would have been to buy an Gen 7 HP Microserver, but when I started out, I didn’t have as much information as I do now. I was drawn to a $95 bundle on NewEgg that included a Cooler Master Elite 130 Case, a ASRock AM1B-ITX mini-ITX motherboard, and an AMD Sempron 3850 quad-core Kabini APU. I thought I’d have a system ready for my existing drives for just $150.

I was shocked by the price of RAM, and irritated with the limited options for low-wattage, efficient power supplies. After much dithering, I realized that the hours I was wasting dithering over my sub-optimal choices was more valuable than just spending an extra ~$50. So I found the best price I could on 4GB of DDR3-1600 RAM, added a 90w pico-PSU + an efficient 80w, 12v AC-DC power brick and got on with the build.

The parts arrived in short order, but once I saw the size of the case, I realized I was going to need to rethink things. The Cooler Master Elite 130 is well made and quite compact for a case that can take a full-sized video card, optical drive, ATX PSU and a CPU with a big heatsink/fan combination on top. Its pretty huge though for a machine with an external power brick and two hard drives. I started looking for other options and wasn’t too happy with what I found.

As far as I can tell, cases with just enough room for an mini-ITX motherboard and two 3.5″ HDDs don’t really exist, or if they do, they are bigger than I’d like and cost more than I wanted to spend. I started to consider cases with room for more drives. Most of them were about as big as the Elite 130, which could hold 3 full sized drives along with some 2.5″ drives, but it was still bigger than I wanted.

I also considered building my own case, and quickly rejected the idea, but kept returning to it over and over. Again, I decided to loosen the purse-strings to save time and energy, but there just weren’t many choices. I didn’t need hot-swap drive bays, but most of the small cases came with them. I finally settled on the Norco ITX-S4 case for $100.

At about this time I got a notification about a special price on the HP Microservers. The cost was ~$270. For that price, I got the whole machine, including 2GB of ECC protected RAM, ready for my hard drives. It was too late though, I was already in for $200. I bit the bullet and ordered the Norco case. Since I had the room for it in the case, I decided to move up my plan to use an SSD as a cache drive to speed up performance, and bought a a 256GB Crucial MX100 for $110.

Soon thereafter, the Microserver went on special at least two more times, but now I was in for $300 (not including the SSD). The ECC memory would have been nice though, and I seriously considered setting aside the  CPU, motherboard and RAM I already had and buying something that supported ECC. After spending, again, much too much time determining my options, I decided against it, because it would have cost another $300 or so, and my limit was $200.

I wasn’t done yet though. Once I assembled the system in the new Norco case, I realized that I had another problem. The heatsink/fan combination that came with my CPU was too tall, and the space for it was too short — the top of the fan was pretty much flush with the bottom of the hard disk cage. Only now, as I’m writing this, do I realize that it would probably have been perfectly acceptable to Dremel cut a hole for the fan in the bottom of the HDD cage. Instead, I went looking for alternative CPU coolers that would fit better. There weren’t any, at least not any made for the AM1 platform. I took measurements and went looking for options that might fit, or that I could easily modify. I didn’t find much. I considered grinding down the top of the heat sink and reducing its height and cooling area by 10-20%, since it is a low-power CPU in a low-power application.

I was leaning towards ordering a generic heat-sink that would work with minimal modification when I realized a better solution. The stock fan was 15mm-thick. A 10mm-thick fan would open enough of a gap and solve my problem for less than $10 and 10 minutes work. Somehow though, the first fan I managed to order was also 15mm-thick…

The case had another problem too, the 80mm exhaust fan it shipped with was LOUD at full speed, and it ran at full speed ALL THE DAMN TIME because it only had 3 pins, and my motherboard required a 4-pin chassis fan for speed control (it does speed control on a 3 pin CPU fan though). This time though, I ordered the right thing, first time.

I did make another mistake though, I didn’t like my jumble of SATA cables and found them hard to route, so I decided to order some nice blue ones with round cables. Unfortunately, I missed the fact that they had 90° connectors on one end, which wouldn’t work with the positioning of the sockets on either the SATA backplane, or the motherboard. What’s more, the plastic molded on the ends of the cables was too thick, so 180° connectors wouldn’t have worked either. I ended up ordering more SATA cables!

Ah, but thats not the end of it. I decided to order a PCIe SATA card so I could mount the SATA drive on an internal bracket and save all the hot-swap bays for 3.5″ drives. I was happy to find an inexpensive card that used the same chip as the motherboard. Unfortunately, if I hook any devices up to it, Linux crashes on boot, shortly after detecting the device on the external card.

This post is long enough. I’ll document the actual build in a separate post after I have dinner.