Update (02/01/2015): Congratulations to Carl Floyd for winning the #FreeNASGiveaway for his Google+ share of this blog. Carl, I’ll reach out to you directly so we can exchange some contact info. This FreeNAS giveaway was over twice as popular as the last one, netting well over my goal of 500 total shares. I am thankful and appreciative of your efforts to help spread the contests’ word! I look forward to doing my next giveaway here in a few months, so make sure you stay tuned!
I built my first FreeNAS a couple years ago and wrote about the process and what my plans were for it. But as time went by, the blog aged and people were asking what I’d use if I were building a new NAS. This request wound up spawning a series of blogs — every 6 months I’d post an updated build based on how exactly I’d rebuild my own FreeNAS box using current parts and then 6 months behind that, I’d follow up with a cost-conscious build that I called the EconoNAS. In 2013, the price difference between the DIY NAS and the EconoNAS builds was significant, but as the year came to a close the prices drew closer and closer to each other. In 2014 the prices between those two builds closed considerably. Ultimately, I decided that there just didn’t seem to be all that much differentiating the two different builds.
Rather than further muddying the water with two builds that were pretty interchangeable, I’m going in a bit of a different direction for 2015. I’ll still be writing about two different builds, but the basis for each build is going to be a bit different than in prior years. The DIY NAS build (this blog) is going to wind up being more performance-based with more features than past versions and more room for upgrades in the future. The EconoNAS is going to mostly remain the same, but maybe instead of focusing on the cheapest parts I can find, I’ll instead focus on parts that return the most amount of value.
I’m quite happy with my own 2-year-old FreeNAS machine; I’ve actually added some drives to it recently, so I’m in no hurry to replace it. Even though the DIY NAS: 2015 Edition puts my old FreeNAS machine to shame, I don’t really have much use for it. If I don’t need it, then what should I do with this machine? Easy! Give it away to a lucky reader! If you’re interested in entering the giveaway, make sure you read all the way through to the end of the blog.
CPU & Motherboard
The motherboard selection is probably the most important choice that’s made when building your FreeNAS machine. Because the motherboard winds up being so important in each of my FreeNAS builds, I’ve established a few “commandments” (sorry for the cheesy Moses pun) that I use to set the criteria that I’m shopping for. I tried my hardest to get all the way up to Ten Motherboard Commandments, but it seemed pretty thin by the time I got past four. I trimmed out the useless commandments down to the ones that truly mattered to me, which are:
- A small form factor: I like that my NAS runs headless on my desk without taking up all the square-footage that your typical desktop computer takes up. Keeping the NAS small allows me to keep it nearby without too much extra clutter.
- Low-power CPU support: Low-power CPUs and the motherboards that run them tend to be a little bit more pricey than their full-powered cousins. However, a NAS is running 24/7, costing you kilowatt hours from the electrical company. When I researched low-power CPUs for my own FreeNAS machine, I discovered that the cost of electricity would pay for the premium of the low-power motherboard and CPU within the first 2 years of owning the device.
- At least 6 SATA Ports: 6 SATA ports is enough to build out a pretty decently sized array which includes a couple drives’ worth of parity for the sake of fault tolerance.
- Onboard Gigabit: This is mostly because I wired up my house with CAT5e and wanted to make sure I could make use of it. But because transfer speeds to your NAS are going to depend on the speed of the network interface, it makes sense to try and ensure that the fastest possible is included on the motherboard. Because Mini-ITX motherboards usually only have one PCI-e slot, I like to keep it free for a future SATA controller card rather than occupy it with a network card, which is why I prefer the network card to be built onto the motherboard.
- Passively Cooled CPU, preferably integrated: The commandments begin to break down here a little bit. The primary reason I like an integrated CPU is because I’m a little bit on the lazy side; it’s less work if the CPU and heatsink are already installed. It might even take up a bit less room in the case if it’s integrated. Cooling it passively is much more important to me, since fans like to fail and they are a source of noise.
With every FreeNAS build blog I have written so far, the motherboard is the component that I spent the most effort shopping for. My important criteria (small footprint and number of SATA ports) drives the cost of the motherboard up pretty high. I usually spend quite a bit of time sorting through motherboards, trying to find the one that offers the most amount of features the the budget will allow. However, for this build I was able to skip over much of that effort when I got a huge assist from one of the blog’s readers who suggested using the ASRock C2550D4I (specs).
All I can really say is “Wow, what a list of features that the ASRock C2550D4I has!” Here’s what had me most excited:
- Mini-ITX Form Factor
- Intel Avoton C2550 Quad Core 2.4GHZ featuring 14W TDP
- 12 total SATA Ports (4xSATA2 and 8xSATA3) across three SATA Controllers
- 4x240pin DDR3 DIMM slots up to 64GB of total System RAM
- Dual Onboard Intel Gigabit Ethernet
- Many, many, many others…
The motherboard literally meets or exceeds every single one of my “commandments.” And it doesn’t just exceed them by a little bit, it exceeds them by quite a lot! And even better? The ASRock C2550D4I is somebody’s little brother. The ASRock C2750D4I with similar specifications except for the CPU has 8 cores instead of 4. While I certainly think that the ASRock C2550D4I has more than enough horsepower to take care of your home NAS server needs, it’s a nice option for those who want the additional cores for some hardcore CPU-intensive processing.
The only thing not to like about the motherboard? Hands down, its price. Compared to my past DIY NAS blogs, it’s incredibly expensive at $309.17. But in the end, the added money does wind up buying you quite a bit of functionality.
Running Total: $309.17
One of the interesting features of the ASRock C2550D4I motherboard is the fact that it supports ECC RAM. ECC RAM ultimately is one of the things which is most strenuously recommended for hardware responsible for running FreeNAS, and while ECC is not actually required in the FreeNAS hardware requirements for RAM, it is quite strenuously suggested, and they link you to a case study that has some compelling evidence of ECC’s benefits when paired with the ZFS file system.
For those of you familiar with my past blogs, you might be asking yourself “Now hold on a minute here, wasn’t Brian a big non-ECC supporter for use with FreeNAS?!” I was and I still am; my FreeNAS box is still running non-ECC RAM and I’m still happy with that decision. Had it not been for the pretty overwhelming feature set of the ASRock C2550D4I, the DIY NAS: 2015 Edition very likely would have been running a motherboard which used non-ECC RAM. I still feel the same about non-ECC RAM and I wouldn’t hesitate putting non-ECC RAM into another FreeNAS box for my own use down the road. It just happened to be that the motherboard I found most appealing for this new FreeNAS build also supported ECC RAM. If your motherboard supports ECC, it’s certainly worth spending the extra few bucks to use ECC RAM.
I wound up picking out a 16GB kit (2x8GB) of ECC RAM from Crucial (specs) for $205.99. What’s even better, is that the ASRock C2550D4I has a total of 4 DIMM slots. Most Mini-ITX motherboards tend to only have 2 DIMM slots, which causes upgrading the RAM to be more expensive since you’re swapping out smaller sticks of RAM with bigger ones. In this case the two empty slots could be used for an upgrade.
Running Total: $515.16
Ever since building my first FreeNAS box, I’ve been a bit infatuated with one case: the Lian-Li PC-Q25. It’s been a great case for Mini-ITX, and unlike most of its brethren, it holds quite a few drives. However, last year readers started pointing out that they were having a hard time finding it in stock at reasonable prices, which is very disappointing. All good things must come to an end, so this year I looked closely at other cases to find a comparable case. Like with the motherboard, I have some criteria that I use when looking for a case:
- A small footprint suited for Mini-ITX motherboards
- Lots of capacity for hard drives (preferably more than 6 HDDs)
- Easy replacement or addition of additional hard drives
One case popped right out at me, knocking each of these criteria out of the park. The SilverStone Tek DS380B (specs) is designed specifically with a DIY NAS in mind. Primarily, because it will hold up to twelve different hard drives, 8 of which go in hot-swappable bays accessible from the front of the case. All of which is within $50 of the cost of the Lian-Li PC-Q25. Upon discovering this case, I’ve been tempted to upgrade my own NAS and use it. I’m using this build as a guinea pig to see if that’s something I want to do in the upcoming months. At $166.76, I think it’s a bit expensive for a case, but it’s such a good fit for a DIY NAS, I think it justifies its price tag.
To go along with the case, I also picked out a Seasonic SS-350SFE (specs), which is a well-reviewed, efficient power supply sized very well for the purposes of a NAS and it is reasonably priced at $59.78. Efficiency of the power supply is especially important when you consider the fact that the NAS will be left on every hour of every day. Paying a premium to conserve power is an investment, and over the lifespan of the power supply this savings will wind up being cheaper when you account for the cost of electricity. Before shopping, my research indicated that the ASRock C2550D4I consumed up to 75W at load. I budgeted an additional 10W per drive the motherboard can support and then another 50-75% for fudge factor, which led me to the neighborhood of a 350W power supply. Depending on the number of drives you want to use, a bigger power supply may be warranted. One thing to watch out for with the SilverStone Tek DS380B is that it requires either an SFX or SFX-L (like SFX but just longer) power supply. If you notice in my galleries below, the power supply will mysteriously change colors from black to grey and get a little smaller. I discovered that I had purchased too large of a power supply too late and I didn’t bother to disassemble everything just to retake one or two pictures. Oops!
Running Total: $741.70
FreeNAS Flash Drive
The FreeNAS drive has been the same on every single DIY NAS build that I suggest. It’s become a rather mundane part to shop for and write about. I still recommend the SanDisk Cruzer Fit 8GB (specs) primarily because of its low profile. It’s small enough that it can be installed directly on the motherboard’s rear USB ports. In my own FreeNAS box I have a random flash drive installed on a USB header cable attached directly to the motherboard—not exactly the easiest thing to get to if I needed to. Having the USB drive accessible externally has proven to be very convenient in subsequent builds. The SanDisk Cruzer Fit 8GB is extremely affordable at $7.74 and I’ve had nothing but success with them using FreeNAS in the past. The most recent version of FreeNAS suggests 4GB as an absolute minimum, and 8GB as a recommended minimum on their Compact or USB Flash requirements page.
NAS Hard Disk Drives
Here’s the meat and potatoes of any DIY NAS build—the storage drives. The key feature of FreeNAS is the ZFS file system and all the wizardry it can perform on your behalf. Because of the importance of the drives, this is where I like to encourage prospective DIY NAS builders to carefully consider their own needs. How much data do you need to store today? What rate do you anticipate that growing in the future? How much redundancy can you afford as part of your budget? It’s entirely possible that my suggestions below don’t match your needs.
When pricing out drives for these builds, I usually like to look for what I believe are pretty good values. Last year’s build featured 4 terabyte drives because they seemed like a better deal than the smaller drives with a cheaper per-terabyte cost. This year, larger drives like the 5TB and 6TB were more expensive per-terabyte than I anticipated. That caused me to want to use the same size of drives as last year’s blog, but then I also increased the number of drives to six total as opposed to four from the year before.
It’s good to point out that with ZFS, in order to add drives to an existing array you’ll have to relocate your data, destroy the array, create a new array including the new drives and then move your data back. For this reason, it may be a good idea to start out with a smaller capacity array but with a higher drive count. As the prices of larger drives get more affordable and as your hard drives need replacing, you can slowly start replacing the small drives with bigger drives and eventually grow the array out across the unused portion of the upgraded drives.
As I expected, more than half of the total cost (~55%) is made up of the hard disk drives. If you find that pricing out a NAS is exceeding your budget, your best bet is to consider different hard drive combinations. A combination of smaller drives and/or fewer drives could bring the price down by quite a few dollars pretty quickly.
Final Price: $1,663.51
Towards the end of last year the price of the DIY NAS: 2014 Edition was hovering right at $1000. My prior goal in prior versions of this build was to try and keep the price under $1000. This year when the cost of the motherboard and RAM ate up nearly half of that goal, I knew meeting that objective was probably a bit futile. At first, I was pretty disappointed, but you know what? That extra $600 accounted for a ton of upgrades over the 2014 Edition: 8GB more RAM, ECC RAM, a faster CPU, an additional 2 cores on the CPU, a CPU which consumes much less power, 8TB more of potential storage space, an additional gigabit controller, tons of room for future upgrades of RAM/HDDs, and that list of added features goes on and on.
Altogether, I think it’s an excellent bang for the buck. But there’s no questioning it’s quite a few more bucks than my past builds. For those of you who use this as a template for your own NAS, I think you’re going to be pretty happy with how long you’ll be able to use it.
To double-check how well I did, I compared the DIY NAS: 2015 Edition to some other off-the-shelf NAS systems. Because the drives account for the majority of the expense, I took them out of the equation and compared a diskless version of the DIY NAS: 2015 Edition and compared it to some off-the-shelf diskless NAS appliances. I decided to give the off-the-shelf machines a bit of an advantage and I compared this build to 6-bay diskless NAS systems. Here’s a few that I found:
The 6-bay diskless NAS systems were priced in the range of $600 to $900. A diskless version of the DIY NAS: 2015 Edition would cost around $750, which is is pretty competitive with regards to price. However, there’s a litany of additional features that the off-the-shelf systems lack: there’s room for up to 12 total drives, there’s room for more RAM, and most importantly it’s built out of standard PC equipment that can be upgraded any which way the user wants in the future. Just for grins, I looked for a comparable 12-bay diskless NAS system and found the Synology DiskStation DS2413+ at a whopping $1650. That’s nearly the same price as the DIY NAS: 2015 Edition including drives!
As it has been in prior years, the prices of the hardware (minus the HDDs) can be pretty comparable between a DIY NAS and an off-the-shelf NAS. But the benefits of using PC hardware and FreeNAS within the DIY NAS: 2015 Edition provides an immense amount of value that the off-the-shelf systems simply can’t compete with.
In this particular build, I used some (in my opinion) pretty high-end parts for the configuration. I’ll be excited here in a few months to start researching my “EconoNAS” equivalent of this machine to see how inexpensively I could build something comparable. It’ll be an interesting challenge to see how many of these great features I’ll be able to get to fit in an inexpensive NAS.
Hardware Assembly, Configuration and Burn-In
In the past, I’ve had requests for step-by-step assembly information or even videos. I think other people have already created fantastic “how-to” guides on building a PC which are infinitely better than anything that I’d be able to come up with. One such example is this How to Build a Computer: The Complete Guide from Lifehacker.
About the only place where I had to deviate from those kinds of guides is specific to the SilverStone Tek DS380B case. Primarily, it’s a very small case when you consider everything that it can hold. That size leads to a great final product, but working inside the case presented some challenges that prior cases hadn’t. You have to take out all of the removable drive trays and the drive cage itself before you can even begin thinking about mounting the motherboard. On top of that, with the Seasonic SS-350SFE power supply, I found I had to rotate it 180 degrees in order for the cable bundle to not interfere with the drive cage. Essentially, the power supply must be rotated in such a way that the cable bundle is closest to the backside of the case where the drive cage isn’t present, otherwise it won’t be possible to put the drive cage back in.
The thing I disliked the most about putting the machine together was caused by the fact that the ASRock C2550D4I motherboard lacks a sound card and that the USB header is different than the SilverStone Tek DS380B’s USB 3.0 ports. This meant that both the USB and audio components on the front of the case weren’t going to be usable. I considered leaving these cables loose in the case, but they had some pretty thick wires (see below) that wound up in front of the case fans and I worried that in the process of shipping they might wind up getting tangled up in those nearby case fans. Ultimately, I decided to remove the case’s USB ports and audio ports, but I’m not especially happy with those components missing. Thankfully on the SilverStone Tek DS380B’s there’s a door which covers the front of the case and conceals the fact that these have been removed. It’d be pretty easy to add these parts again, only the drive cage and drives would need to come out before the USB and audio ports could be put back in.
After putting the computer together, I had the hardest time to get the system to POST (Power On Self Test), which in my experience is nearly instantaneous after turning the machine on. In fact, if a machine I’m building doesn’t POST instantaneously then I’ll usually turn it off and look for things I could’ve done wrong or looked over. When the DIY NAS: 2015 Edition didn’t immediately POST, I took it apart component by component until I was down to just one stick of RAM, the motherboard, and power supply. But even then, I’d turn it on and wait 10 or 15 seconds, and then power it off and tinker with it more. I read the motherboard’s manual from cover to cover (where I could decipher the languages used), I scoured through the manufacturer’s support website and searched Internet forums for people with the same problem. It wasn’t until Pat started answering my instant messages that reminded me of how long our last ECC RAM computers (Tyan Tiger MP (S2460) based dual Athlon MP) took to POST. It wasn’t a loose connection or something that I’d done wrong, it was a different failure on my part—I’m impatient. On Pat’s suggestion, I just powered it up and waited. After what seemed like an eternity (actually 1 minute and 45 seconds) it POSTed and I was able to get into the BIOS to start tinkering.
Once the assembly and any related issues (primarily self-inflicted) were behind me, I explored the BIOS to confirm or make the following changes:
- ECC was enabled and the installed RAM was detected as ECC.
- Enabled S.M.A.R.T.
- Disabled the two Marvell SATA Controllers’ (9230 & 9172) ability to act as a boot device.
- Set the Primary Graphics Adapter to Onboard.
- Configured the Boot Options so that the only devices it’d try and boot from was one of the various USB devices I’d be using for the system burn-in and for FreeNAS
Because of my propensity to use non-ECC RAM with FreeNas, my biggest area of concern during this phase has always been the memory. It would be safe to assume that because I am using ECC Memory for this build, that this testing would be less of a concern, but it wasn’t. The reason it’s still a big concern of mine is because I believe you’re much more likely to encounter a defective stick of RAM from the manufacturer than almost any other memory-related problems. I fired up Memtest86+ using Hiren’s BootCD and left it running for 48 hours. Mostly I wanted 24+ hours and at least 3 passes with no errors. It was expected but still nice to know that the brand-new memory is free of major defects. After getting a warm-and-fuzzy on the RAM, I used stresslinux to run a load on it for 12 hours to attempt and exacerbate any hardware instability that might be lurking out there that could be related to the other components on the motherboard.
My network-attached storage needs are pretty simple. All I’ve ever wanted is a machine which is hosting share(s) that Windows can see and map a drive to. Anything beyond that is gravy. FreeNAS covers that simple requirement quite easily. In fact, in these DIY NAS blogs I admit that I’m not even scratching the surface of everything that FreeNAS can do. Once I got FreeNAS 9.3 successfully installed on the SanDisk 8GB USB drive, I booted it up and configured it from my primary desktop computer.
After signing into the FreeNAS 9.3 web interface, I was prompted with something new to me: an Initial Wizard for setting up the box for the first time. This seemed handy and friendly enough, so I thought I’d give it a try. I chose volume1 as the name of the pool, and when prompted for the purpose I selected Backups on account of it indicated it was using RAID Z2, which would survive the failure of up to two drives at the same time.
The next step is where Directory Services are configured in FreeNAS, which doesn’t apply in my use-case scenario, so I skipped over it. For the purposes of this blog, I decided to strictly work with the machine’s IP address. Depending on your home network, you’d need to fill in the appropriate details for whichever Directory Service(s) you’re using. After that, the wizard prompted me to configure the sharing. I named the share storage, selected the Windows(CIFS) option, checked the Allow Guest option, and then clicked Add. I made a mental note to go back into the Sharing later and set up the permissions.
The next screen of the Initial Wizard is primarily for setting up SMTP settings to enable the machine to send emails. This will depend on your SMTP server settings, so I left most of this blank. There’s a Send Test Email option, so it’s pretty forgiving to set up and confirm it’s working before moving to the next step. I did check the Console Messages option which displays the most recent lines of console output in the web UI as a footer. This is especially helpful if you plan to run your FreeNAS machine without a monitor. Afterwards, the Initial Wizard prompts you for confirmation of your settings. It takes a couple minutes to commit your changes and restart services, but once you’re done you’ve got a ZFS pool (volume) set up, shared and ready to go.
Because I skipped over the permissions sub-step in the Initial Wizard, the next thing I did was to create a group named “shareusers” and then I created a user named “brian”, which I added to the “shareusers” group and made sure the user’s password matched what I was using on my local desktop (the passwords must agree, since I’m not using Directory Services). After that I went into the permissions (Storage –> Volumes –> expanded down to /mnt/volume1/storage) and made the Owner (group) the “shareusers” group that I created above.
Having completed all of that, I browsed to the machine by its IP address from my desktop and verified that I could see the share named storage, that I could browse its contents, and finally that I could copy files to/from the share.
I’m typically not a fan of any kind of wizards like this one and prefer doing things myself, but in the case of the Initial Wizard in FreeNAS 9.3, I made an exception. It certainly made things easier for me while writing this blog.
This is a pretty quick-and-dirty configuration; there’s much much more that can be set up and configured that I skipped over in this blog. My suggestion to whomever winds up winning the NAS is that they start all over from scratch and use that as a learning experience to become more familiar with FreeNAS.
As part of my FreeNAS builds I am always willing to assume a price premium for low-power components. Because a NAS is very likely to be left on 24x7, it’s wise to factor in the cost of providing power to it as part of your budget. Spending a few more bucks on a low-power CPU and motherboard to support it will likely save you dozens of dollars over its lifespan. I borrowed my friend’s Kill-a-Watt during my burn-in and initial FreeNAS testing to see what the power consumption was like. I took a look at the power numbers on an initial cold boot, when the machine was idling, and also under a “load,” which I define as a handful of simultaneous file copies going to/from a couple different computers.
I left the DIY NAS: 2015 Edition plugged into the Kill-a-Watt for 48 hours and during that time, it used a total of 2.8433 kWh.
I’ll be completely honest here, my immediate reaction to this particular build is that it’s more expensive than I would’ve preferred. It’s definitely more expensive than anything that I would’ve considered building for my own use. It’s also a bit disappointing that it’s not a very unique build—there’s no shortage of videos on YouTube, forum posts, other blogs, etc… where the authors described how they built a NAS using the ASRock C2550D4I and SilverStone Tek DS380B. However, that should be expected due to what a great set of features this hardware has and how it’s ideally suited for building a do-it-yourself NAS.
I found that working inside the SilverStone Tek DS380B was a little bit frustrating; I would’ve preferred more room. But this should be expected because of the reduced footprint and all of the features inside the case. SilverStone fits an incredible amount of hardware in a very small package. That small footprint is extremely high on my list of requirements, so I am more than happy to live with the inconvenience that comes with trying to work inside the case.
Even though my gut reaction is that the DIY NAS: 2015 Edition wound up being quite a bit more expensive than I would have liked, the overall list of its features is both lengthy and impressive. There’s also a laundry list of future growth by the way of upgrades: 2 empty DIMMs for future RAM upgrades up to 64GB total, 6 free SATA ports and empty drive bays within the case, and an additional Gigabit Ethernet controller that could be used to double the bandwidth via channel bonding. Even though I think that the NAS wound up being too expensive, that doesn’t mean I don’t think it is a bad value. This is a serious NAS with a price tag to match; $1,663.51 seems like a pretty reasonable cost for the amount of the hardware’s features. In fact, I’m betting that in order to top the list of features, you’d probably need to start looking at entry-level commercial NAS products.
Like with the DIY NAS: 2014 Econonas, I’ll be giving the DIY NAS: 2015 Edition away to a lucky reader. The giveaway essentially works like this:
- You follow my blog and myself on Twitter, the blog’s Facebook page and the blog’s Google+ page.
- You re-tweet or share the promotional posts from these social networks (links below) with your own friends and followers. (Note: Make sure that your share is public, otherwise I won’t be able to see it and give you credit!)
- Your name gets entered up to three times (once per social network) in a drawing.
- After a month or so, I’ll pick a winner at random and announce it here.
Here’s a link to the best posts to promote for each social network:
If there are any questions, please go read the #FreeNASGiveaway rules page, I explain it in a bit more detail there. Please keep in mind, it’s more about the “spirit” of these rules, rather than the letter of the law. If you go to the trouble of helping promote my blog, I’ll do whatever I can to make sure you get an entry into the giveaway. The best way to make sure you get your entry is to follow the steps above.