I finally ordered my hardware. I also finalized the list of components below and provided more details, rationale, and commentary about their selection. I also still need to finish some of the details of this post, which I've put off way to long (and I'm going to put off a bit longer), but that will eventually happen. Also, once I start building the NAS I'm going to document the pros/cons and any gotchas involved in setting up the system. Stay tuned.
For the past couple of months I've been researching various home NAS (network attached storage) solutions. Currently, all file-serving and backups are handled by a desktop system in my living room - which also handles my website and e-mail, multimedia functionality (hence running it in my living room), and a whole lot more. As I'm getting rather tired of the noise and recent instability, I want to migrate all functionality off of this system onto other systems/servers better suited to the tasks. My first step is setting up a NAS system for my house.
As I said above, I've been researching this for quite some time now, mostly because I'm having trouble deciding which direction I want to take. The two main choices are:
- Setup a commercial NAS appliance (such as the Linksys NAS200)
- Build a dedicated NAS system, based on something like FreeNAS
A commercial appliance would be the much simpler route, and is mostly what I'd been researching, but for various reasons I'm actually learning towards building a dedicated system now. The primary reason, to be completely honest, is flexibility. If I build my own hardware and install a "real" OS on it, even though it may be used specifically designed to function as a NAS device I still have the ability to do anything else with it that I may want or need. With an appliance, I'm much more limited in what I can do here (if it's even possible at all). Some appliances do allow remote console access, but every one I've seen is very vague on details as far as what can be done once you've logged in. Without being able to test it out myself, I have to assume that I won't meet my requirements.
So, why is building a dedicated system such a hard decision? This breaks down into two categories:
- power, heat, noise (ie., efficiency)
- NAS functionality
Let me address the efficiency issue first as it's more straightforward. This box will be running 24x7, and I want something that's going to be as quiet and energy efficient as possible. The majority of the appliances I've looked at were designed with this in mind, and while some are much better than others, all are more efficient than a typical desktop system. I want to stick this thing in a corner and not ever see it or hear it; just have it run reliably and not make a significant dent in my power bill.
The functionality issue is a bit more complicated. I stated previously that flexibility was the primary reason I wanted to build my own system, which may seem to contradict with this current statement, but they apply to different scopes. The former is about OS-level functionality; the latter is more about hardware functionality. Eg., two features I'd really like from my NAS are hardware RAID 5 using four disks and hot-swappable drives, both of which a fairly among among higher-end home NAS appliances. Hardware RAID is easy enough to do on a custom built system, but how-swappable drives is a completely separate issue; short of a rack mount server or tower-style case (both of which are ruled out by the noise/efficiency requirements), options are extremely limited.
With all that said, here are the components that I'm currently looking at. Any and all feedback, especially regarding personal experience, is most welcome.
Unlike most custom built systems where the case is a fairly insignificant component, this choice of components in this system is almost entirely dictated by the case as I've only been able to find one that meets both the noise/efficiency and NAS functionality requirements described above. As a result, my requirements (and personal preferences) are:
- Mini-ITX motherboard
- integrated gigabit ethernet
- single PCI-X or PCI-e slot
- support for at least two GB RAM
- optional: integrated CF (compact flash) support for OS drive
- low-voltage/wattage processor
- low-profile, 4-port SATA II RAID card
- must be fully supported by both Linux and FreeBSD
- three energy-efficient 1 TB SATA II hard drives
The case is the defining feature of this system. Whereas the system case can usually be considered an afterthought in most computer systems, for this project it was absolutely key. I wanted something small, quiet, and yet flexible enough to do whatever I needed. The hot-swappable drive bays in particular were a huge selling point. That, combined with the looks and form factor, is what ultimately convinced me that I could make a custom built system fit my needs rather than going with an appliance solution.
As a result, the case largely dictated much of the component selection below. It has a very unique form factor, which imposes several requirements on component choices. If anyone building a NAS decides to go with this case, be sure to do a lot of research on what can/can't be used. It looks like a slick little case, though, and if things work out as expected it should definitely be worth it.
Motherboard/processor selection was a really, really tough choice. I looked at many different options, covering the range from full dual-core Intel / AMD desktop procs to ultra low-voltage systems such as teh AMD Geode and integrated VIA processors. I ended up choosing the the EPIA SN10000EG motherboard based on a number of factors, including:
- passive cooling
- integrated features
- add-on slots
Note that the above list is not all "pros" for this board; it's simply a list of all factors that I considered. For example, I would've much preferred a dual-core 64-bit system, but the desktop choices were more power hungry than I wanted and the lower voltage solutions ("mobile on desktop") were of limited availability and maturity and prohibitively expensive. Most Mini-ITX systems are for some reason considered "industrial", which is just way of saying "expensive". $250 for a Mini-ITX motherboard and processor w/ integrated video is, sadly, pretty cheap compared to some of the other choices I explored.
Once I had decided on a VIA board, I looked at both the SN10000EG and SN18000G really hard, which are both essentially the same board though one uses a 1.0 GHz processor w/ passive cooling while the other uses a 1.8 GHz processor w/ active cooling. I actually had to fight my natural instincts to go with the faster board hear. If I was not including a high end hardware RAID controller in the mix then I definitely would've done with the SN18000G. However, I am including the RAID controller, while will take care of pretty much all of the disk processing. As a result, the more limited 1.0 GHz processor should be plenty enough to drive the gigabit NIC and take care of any other overhead. Plus, I like the fanless design and the fact that it draws literally half the power of the 1.8 proc. Like I said in my long introduction, power and noise are primary factors.
It's also important to mention that people building their own NAS systems in the future will actually have more/better options here than are available today. In particular, both the Intel Atom and Via Nano processors appear to be very very well suited for this type of system, packing plenty of power in a compact, low-power design. I'd especially love to use a Nano-based system for this, but it'll be several months before such systems are available.
RAM was basically an arbitrary selection - the above appears to be good RAM for a good price. However, RAM height matters here. From what I've read, if a CD-ROM drive is included in the case, then the drive will sit right on top of the RAM. Tall RAM will not fit. The SN10000EG motherboard I selected also poses a problem - since it includes a built-in compact flash card reader on the underside of the board, the board sits up a bit higher than usual. As a result, RAM height is even more of a issue.
I'm hoping that this DIMM will fit. I'll certainly report on it when I start building the system. From what I can tell now, it appears that if you're only using one DIMM, and a CD-ROM drive, you should be ok. If you plan on using two DIMMs, the CD-ROM will sit directly over the second DIMM, and as a result you'll need to get low profile RAM to fit it in. Alternatively, of course, the CD-ROM drive can be omitted.
The RAID card is another cause for concern. The special form factor case means that there isn't any standard method to secure add-on cards in place (eg., as you would screw a PCI card into the rear of a typical case). Chenbro makes a special PCI riser card and face plate for this, but it's limited to 32-bit PCI only, and only one recommended motherboard (hint: it's not the one I chose). As a result, I'm gambling a bit on the RAID card. I should be able to make it fit in the case with the above PCI-e riser card, but I'm not sure how/if I'll be able to secure it. Again, I'll report on this in more detail once I begin building the system.
As for the choice of RAID controller, I want with a high end 3ware card simply because I know it'll work and work well. Some things are worth paying for, and this is one of them.
Why terabyte drives? Why not? In all honesty, while they still carry a pretty decent price premium at this point, they're also among the best performing and quietest drives due to their high aerial density. Plus, they're huge. I'm building this system to act as the central file server for my entire home network, and quite frankly, I don't want to ever have to worry about running out of space on this system. With 2 TB of usable disk space (3-1 for the RAD 5), I'll have plenty, plenty of space to work with for the foreseeable future, and in the very unlikely event I manage to fill that up I can still slap one more TB disk in there at any time.
I chose the SpinPoint F1 drives not because the are the fastest, or quietest, or most efficient. Rather, I chose them because they are probably the best combination of all three factors. I spent a lot of time looking at various hard drives, evaluating them on these three criteria, and the SpinPoint F1 looks to be the leader of the pack at this point. Here are some detailed statistics if you're interested, courtesy of Storage Review.
The SN10000EG motherboard that I chose included a built-in compact flash card slot that's supposedly treated as an IDE device. As a result, I decided to go with a CF card as my main system drive. This will let me keep my OS install separate from the data drive RAID, and will generate less heat and noise than a normal hard drive as there are no moving parts. Of course, performance and lifecycle are concerns when using CF cards like this, but I plan on running my system mostly off of a ramdisk (hence the need for 2 GB). I'll discuss this more in my follow-up.
This was another arbitrary choice, but I've had decent luck with Samsung drives in the past and I liked the specs on this one. I should mention, though, that for this type of system a built-in CD-ROM drive is largely optional. It's needed to install the OS and nothing else. If you have a USB CD-ROM drive (or even a key drive) available, you could easily connect that temporarily to install the OS. In this case, I opted for the drive to have literally in case of any emergency situations - eg., my system died for some reason, and I need to boot off a rescue CD to recover/repair ASAP.
Network Interface Card
Currently I'm leaning toward OpenFiler as I have a heavy Linux bias, but FreeBSD seems to enjoy a stronger community following. I plan on investigating both. If both distros support my hardware properly, then all things being equal I'll stick with OpenFiler. However, I'm certainly not ruling out FreeNAS just yet.
The total cost of this system ended up being significantly higher than I first expected: $1425.29, plus tax and shipping. This is extremely pricey for a home NAS server, even a custom built one. In my case, I had certain requirements that I wanted to meet at all (reasonable) costs, and I feel the price was worthwhile. For anyone else, though, there are a few places where scaling back would save a lot of money.
RAID Controller - This was the single most expensive component. Find a motherboard that supports 4 SATA ports and setup either software RAID or on-board (fake hardware) RAID. It's definitely not as efficient or reliable, but it may work well enough depending on the requirements.
Hard Drives - I used three terabyte drives, which still carry a hefty premium. If you don't need an insane amount of storage room, consider smaller drives. For example, the 500 GB Western Digital Caviar SE16 (WD5000AAKS) can be picked up on Newegg for only $80, less than half the price of the terabyte drives I used. You can buy 4 of these for only $320, which in a RAID 5 array will still give you 1.5 TB worth of usable disk space. Also, you can skip the separate system drive (in my case, a compact flash card) and just install the OS directly on the RAID.
Case - There's no way around it - this is an expensive case. Unfortunately, if you want a compact, attractive, custom-built system w/ hot-swappable drives, this is pretty much your only choice at this point. However, if aesthetics and hot-swappability is not a primary concern, there's no reason you should need to spend more than $100 on a case, at the high-end.
Motherboard / Processor - Going with a different case will also likely free up some additional motherboard options. Eg., going with a standard ATX motherboard, or even a micro-ATX motherboard, will be far cheaper than a mini-ITX system.
Starting from scratch, and taking the above points into consideration, you should be able to knock at least half the price off of my system configuration, and even much more than that if focusing on budget rather than performance/features. Be sure to keep this in mind when spec'ing our your own system; don't let yourself be surprised by the total bill like I was. ;-)
For reference, here are the best appliance options I found:
to complete - QNAP, Storango, Irfrant, Thecus?