DIY: Building a ZFS NAS with FreeNAS


  • Instruction on how to build a semi professional grade NAS on your own.
  • List of selected components including the reasons why I chose them.
  • This article is about setting up the hardware part in the first place and applies to other Systems than FreeNAS as well.
  • I’ll add more detailed articles about the FreeNAS software and ZFS in particular in another article (not written, yet).


First of all: I want to thank the FreeNAS coders for this great software and the FreeNAS/FreeBSD community for providing excellent in depth knowledge to all the topics that came up during my setup.

Who’s building this NAS? I’m a software engineer with experience in server administration and infrastructure or to put it another way: I know what I’m doing but I’m not an enterprise storage professional – so use at your own risk.

Time passes, as does storage space. So I had to decide what to do: Go buy another preconfigured NAS box like QNAP or Synology (which I was quite happy with in the past) or listen to the nerd in me, willing to spend ages in forums and performing hours of excessive deskflipping while things don’t work as expected?

Since you’re reading this article the decision is history already and I’m willing to let you participate in the things I’ve researched so you don’t have to.

I’m trying to pursue a semi professional approach here while keeping an eye on the budget at the same time. This NAS should be suitable for home/small business usage but like any other storage solution and despite a RAIDz you still want to have your data backed up somewhere else as well.

To the facts:


I wanted a free open source solution on a good OS base and found quite some promising projects. Among them were FreeNAS and nas4free. Both of them are based on FreeBSD and thus natively ZFS capable.

An HDD only ZFS without tuning may not be the most performant choice in a setup where a standard ext4-raid5 would do the job but remember what Kennedy said: We chose to build the nas on our own not because it is easy, but because it is hard!

So I’ve searched a lot of forums keeping in mind that the fanboys of the different solutions always tend to be a little biased. In the end I gave up diving too deep into the version dependent differences between these two systems and let my instinct choose and it went for FreeNAS although some stated the ZFS performance with nas4free was better (at least compared to older FreeNAS versions). But ZFS is ZFS so any performance difference should solely result from configuration differences and some ZFS knowledge may come handy from time to time anyway.

Before spending money for new components I decided to first create a virtual setup using vmware player, 5 virtual disks and the FreeNAS image. Everything went as expected, the virtual zpool behaved well, cifs, nfs and iscsi shares worked, so no problems here. After playing around with my virtual NAS for some time I was ready to go shopping:

The Hardware:

I think here is the articles’ most valuable part for you, if you’re planning to set up a FreeNAS/nas4free/FreeBSD-zfs NAS: I’ve spent quite some time to find out which hardware components to use and to compare them with each other keeping budget, power consumption, small case dimension and performance in mind. Below is a list with links to the products you can buy directly at amazon.

  • Case
    • Lian Li PC-Q25B
    • Why I bought it:
      • It’s small (Mini ITX-Board), yet it’s capable of housing a standard ATX format power supply unit. But standard ATX format really means standard ATX format – many PSU’s are bigger than the AXS specifications suggest. So you better get a small PSU with cable management or it just won’t fit, period.
      • It contains 5 standard hdd hot swappable drive bays. The bays are not what you expect from a standard NAS case, though: If a drive fails you still have to open the case but that’s easy and should happen rarely.
      • Depending on the hardware used it could get quite hot in this small box I think. In the setup you see here it hasn’t been a problem at all, though.
      • Besides the hot swap bays there is room for two to three more disks/ssds at the case floor and the mounting concept there is quite clever.
      • The case quality is really good – I’ve definitely seen worse.
      • What else has it? Blue light. What does it do? Shines blue.
  • PSU
    • 430 Watts Corsair CX Series Modular 80+ Bronze
    • Why I bought it:
      • Enough Power
      • Matching ATX specification dimensions
      • Cable Management Version (don’t order the one without!)
      • Active PFC
  • CPU
    • Intel Core i3 4130T 2x 2.90GHz So.1150 BOX
    • Why I bought it:
      • This Core i3 supports ECC RAM. Since ZFS heavily relies on memory it’s not a good idea to use non ECC RAM so I saw that as a must have. If you’re interested: The forums are full of threads addressing the ECC vs. non ECC topic in detail. If you’re not interested: Use ECC!
      • This model supports the AES instruction set extension. This is very important since it minimizes the cpu performance impact when using disk encryption.
      • I wanted the cheap boxed cooler because it fits perfectly into the small case where the PSU is located directly above the processor itself – no room for fancy monster coolers here.
      • For pure file system operations a Celeron probably would have been fast enough but I wanted more flexibility to add some additional software and services on the NAS in the future so I decided to go with the faster i3. So far this seemed a good choice.
      • I chose the “T” version which is slightly slower but uses less power and thus producing less heat.
  • Mainboard
    • ASRock E3C226D2I
    • Why I bought it:
      • ECC RAM Support (Unregistered)
      • 6 SATA3 Interfaces on board
      • 2 Intel 1Gbit NICs on board
      • Haswell 1150 CPU Socket
      • Mini-ITX format
      • You probably won’t find any other board that matches this feature set. It seemed like this is the most exotic component in the whole setup. Lucky enough I was able to find a retailer able to ship this board from stock.
      • Though it’s a great idea to put an USB socket on the board itself I didn’t use it for the FreeNAS’ system USB stick due to its bad accessibility once the system is finished.
  • RAM
    • 16GB (2x 8192MB) Kingston ValueRAM DDR3-1333 ECC DIMM CL9-9-9 Dual Kit
    • Why I bough it:
      • It is ECC RAM (Unregistered)
      • As the name “ValueRAM” suggests it’s not the fastest or fanciest RAM out there but it does the job and no matter what might be slow in your NAS: It’s not the RAM.
      • Be aware that there is a big difference between “unregistered” and “registered” ECC RAM. These both are NOT compatible. Registered ECC RAM will not work at all on the board mentioned above. I know that for sure since I accidentally clicked on the wrong item and they first send me the registered RAM (that was some serious deskflipping there)
      • 2 Units with 8 Gig each. The board only has two slots and reliable ZFS resources suggest 1GB RAM per 1TB of Storage as rule of thumb (except you plan on excessively using ZFS’ deduplication feature) so that’s a good match.
  • Hard Disk drives
    • 5*3000GB Seagate Desktop HDD ST3000DM001
    • Why I bought it:
      • I already had 2 of them lying around and they seemed suitable enough for use in a NAS so I got 3 more of them.
      • Note: With activated power management I’d suggest to keep an eye on S.M.A.R.T.’s:
        • head cycles count. AFAIK this is the count how often the disk’s heads are parked and activated again (you can hear a chirping sound when the disk does that). 
        • spin up/down count. A head cycle count does not mean that the disc spins down – that depends only on your power management level you set for the drive and on the disks firmware that interprets it in whatever way. The resources on this topic are nearly endless. Based on what I read and based on the fact that a NAS with a lot of services running on it always wants to write something to disk anyway I’m about to recommend to get a drive whose power consumption is low enough to just let it run without any power saving activated at all.
  • SSD
    • 128 GB Crucial Realssd C300
    • Why I bought it:
      • I bought this drive about 2-3 years ago for use in a workstation pc but its S.M.A.R.T. data states it’s still in good health so I decided to use it as my ZFS turbocharger.
      • Though not highly recommended I splitted the drive into a small 8GB partition for the ZIL (ZFS intent log) and the rest for L2ARC (2nd level adaptive replacement cache) because I already maxed out the 6 on board SATA ports with the 5 HDDs and the SSD. In my case that speeded things up significantly but that’s not part of this article anymore – I’ll write another one about that.
  • USB Stick to hold the FreeNAS
    • Sandisk Cruzer Blade 8GB
    • Why I bought it:
      • I know it’s working with FreeBSD (also on USB 3.0) and I can boot from it
      • It’s big enough
      • I’d preferred a much smaller version of this stick which is available as well but it wasn’t on stock and I couldn’t wait 🙂

Here the links to the corresponding products on amazon:

That’s it so far. I hope this post helps you in some ways. I also added some pictures I took while building this nice little thing up – feel free to comment/ask!