Building a Network Attached Storage box

Introduction

In an earlier post I compared a Drobo to a custom built storage system based on OpenSolaris, with the conclusion that while a Drobo is convenient, building your own server offers many advantages. In this post I want to show how I went about building a new storage system based on an article that came out at the end of last year. Among the improvements over my old server are lower power consumption and a smaller form factor. In fact, the case that I’ve chosen has the same footprint as the Drobo, and only about five inches taller. In addition, this particular case has hot swappable drive bays, so disks can be replaced while the system is powered on.

Before I get into the particulars, I want to share some useful links that may help if you’re new to OpenSolaris and/or building a system from parts. First of all, there’s the First-Timer’s Guide to Building a Computer from Scratch at LifeHacker. I find that the hardest part of building your own system is getting the parts list right. To that end, check out Ars Technica’s excellent system buyer’s guide, which offers recipes for various types of systems and provides advice on choosing suitable parts. Once the system is put together you might be asking yourself which operating system to choose. For me, OpenSolaris with ZFS is a no-brainer — it really is an excellent software stack that gives me piece of mind knowing my that data is as safe as it can be (for the amount of money I’m willing to spend). But you don’t have to take my word for it, see what Simon and Scott have to say about OpenSolaris and ZFS. If setting up and administering OpenSolaris is too daunting for you, then check out FreeNAS — it’s based on FreeBSD with a port of ZFS and is designed to be easier to set up and maintain.

Power Consumption

One of the primary goals with building a new storage server was to minimize power consumption. According to a recently purchased Kill-A-Watt device, my original web server box consumes about 100W while idle, and 120W while the disks are active. During power-on, the consumption peaks at around 260W. This is actually not too bad for a server-class machine. As for the new server, it starts off at around 36W, then hits 117 when everything spins up at once, then levels out at 62. During active reading and writing, the consumption peaks at 71W and typically hovers around 67W. Not too bad, around half of the consumption of my original machine.

Bill of Materials

These prices are based on what was available in March of 2009, so these may have changed by now. Nonetheless, it shows just how little there is to buy, with half of the parts available from a single retailer.

Chenbro ES34069 eWiz.com $153
Intel D945GCLF2 newegg.com $79
Kingston 2GB RAM newegg.com $22
Panasonic CD/DVD-ROM logicsupply.com $51
Seagate 80GB 2.5″ HDD newegg.com $50
SYBA SATA II NCQ eforcity.com $43
Flexible PCI riser logicsupply.com $22

That adds up to $420 for everything you need to equal a Drobo and DroboShare. That’s $150 less than the price of the Drobo plus DroboShare on Amazon, and this system is faster and the components can be sourced from multiple vendors. That, by the way, was one of my goals in building a new system; I didn’t want to be locked in to a particular hardware vendor.

Regarding the selection of the Chenbro case, it was a luxury. It’s rather pricey for an ITX case, but the LogicSupply review convinced me it was worth it. Another option would be to use the Enlight PR-42A1 which can be had for around $60. The major difference is the Enlight is an ATX case, so you would have to get a different mainboard, and chances are it would not have a low power chipset.

You may have noticed that the mainboard does not support ECC (error-checking and correcting) memory. Yes, that was a bit of a let down, but to get ECC you typically have to go with server-grade parts, which cost more and often consume more power.

Operating System

Unlike with pre-built systems, you get to choose your operating system when building your own system. There are many people who go with Windows Home Server, but obviously that costs money. Free options include FreeBSD, FreeNAS, Linux and OpenSolaris. Being a long time user of Solaris, I went with OpenSolaris. It has the advantage of including the reference implementation of ZFS. While I had been a Linux user for 10 years, and ran a software project/web server on Linux for half that time, I know a better solution when I see one.

Disk Performance

Given that this system was built to replace a Drobo, I wanted to compare their performance. However, there is no reasonable way to compare the performance of a Drobo with a storage server such as the one I’ve built here. Firstly, the Drobo does not have native Ethernet, so it has to rely on an external device connected over USB. That alone is going to add delay and turn the comparison into an apples and oranges argument. What I can say though is that the new server feels faster than the Drobo, and is certainly fast enough for my needs. It is on par with the server-grade equipment that this box is replacing, and meets our file sharing and Time Machine backup requirements perfectly.

Conclusion

If you’re new to building a storage server, I hope that I’ve given you some inspiration to learn more. If you have the time and a handful of tools, building your own system is pretty easy. And if you haven’t spent a lot of time learning how to configure an operating system, then let FreeNAS come to your aid. In short, you can choose your own parts from any of a number of suppliers, install whatever operating system you like, and set up a pretty reliable vault for your data.

Update: Check out the media storage system George Drapeau built based on OpenSolaris and ZFS.

About these ads
This entry was posted in Computing, HowTo, Storage and tagged , , , . Bookmark the permalink.

3 Responses to Building a Network Attached Storage box

  1. Haudy Kazemi says:

    Have you looked into AMD motherboards and chipsets for a low power ZFS server that also supports ECC? AFAIK, AMD supports ECC on all their CPUs.

    Several of the ASUS AMD boards list ECC support. One example from the ASUS M4A series is the M4A79T Deluxe. Its manual shows advanced ECC config options that are present in their BIOS like Chipkill, main memory background scrubbing, and cache background scrubbing.

    These boards also support the AMD ‘II’ series of processors like Athlon II and Phenom II which are K10 class chips. Solaris/OpenSolaris supports power management on K10 class AMD processors.

    Solaris/OpenSolaris couldn’t use power management on multicore K8 class AMD cpus because of a Time Stamp Counter (TSC) register problem between how it uses the TSC and how AMD implemented it in the multicore K8 cpus. There is a thread from January 2008 that talks more about this issue called “[osol-discuss] Will OpenSolaris work on a intel desktop Quad processor” as well as this thread on Ars Technica:
    http://episteme.arstechnica.com/eve/forums/a/tpc/f/24609792/m/567005626831/p/13

    • nlfiedler says:

      Haudy: excellent information, thanks. There was a recent discussion on zfs-discuss about AMD motherboards and ECC RAM (actually a rather long discussion) and there too the conclusion was all AMD boards support ECC. I will definitely take a look at AMD again in the coming months. Thanks.

  2. Pingback: Using OpenSolaris and ZFS with Time Machine « Caffeinated

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s