For a while, I have been considering building a NAS to add to my network. I have a laptop which I mostly interact with, a virtual machine which is my main 24/7 server, a desktop on which I play games, and a number of other devices dotted around. While the desktop has plenty of storage, it’s rarely on. And while the virtual machine is on all the time, I don’t want to use too much of the disk space on the host (mainly so that it can be used for other things).
Additionally, my little Fit-PC box is starting to play up, so I want something that is easier to repair than it is.
So what I’m considering is building a Mini-ITX machine, with a reasonable bit of storage. My requirements are basically:
- Small, but self-built (so therefore more repairable)
- Low Power
- Storage for several hours of media
- Able to run as a media server as well as a NAS
Having done my research now, I am planning the following items:
Hardware
Case: Fractal Design Node 304 (£74.99 at Scan) This is a nice, small case with support for six 3.5″/2.5″ hard drives internally. A standard ATX PSU sits at the bottom and there’s plenty of places for nice big fans. The design is quite understated, too. Just a simple not-quite-cube.
Motherboard: When first researching this idea, I quickly found that the latest generation of Intel Atom processors have become quite capable. The “Avoton” range comes in 4- or 8-core variants, supports plenty of PCI devices, a decent amount of memory etc and all with a TDP of 20W. Two motherboards seem to be the most popular for this processor: ASRock Rack C2750D4I (£347.99 at Scan) and Supermicro A1SAi-2750F (£229.19 at Insight).
The ASRock Rack C2750D4I is powered by the 8-port variant of the CPU (The 4-port variant is the C2550D4I). It has four full-size DIMM slots, allowing for up to 64GB of RAM (fitting full-size DIMM slots on a Mini-ITX motherboard looks like it was a challenge). Usefully for a NAS motherboard, it also supports 12 on-board SATA ports, 3 USB3.0 ports, 2 Gigabit Ethernet ports and a PCIe x8 slot. Now, considering that some people prefer to put their NAS drives on a PCIe HBA card, that’s the potential for a LOT of storage. However, I have seen people complaining about the stability of this motherboard’s storage controllers. The CPU itself supports six of the SATA ports, the other six are provided by Marvell chips on the PCIe bus. The reports I’ve seen suggest that, while putting disks on any of the ports should be fine in and of itself, creating a RAID array that spans controllers can cause unexpected errors.
The Supermicro A1SAi-2750F is also the 8-port variant (As with the ASRock Rack, there’s a 4-port variant called the A1SAi-2550F). This motherboard has four SO-DIMM slots which also “theoretically” allows 64GB RAM (but that would mean 4 16GB SO-DIMMs and they’re fairly rare and fairly expensive). There are 6 SATA ports (2 at 6Gbps and 4 at 3 Gbps), 4 USB3.0 and 2 USB2.0 ports, 4 Gigabit Ethernet ports and 1 PCIe x8 slot. For my purposes, this seems like a better balance of ports. The case can only hold six drives, so six SATA ports matches that nicely. In compensation, I get extra USB ports and extra Gigabit Ethernet ports. Some people have complained about the SO-DIMM RAM because the sticks are more expensive than standard DIMMs, but I don’t think the difference is all that great. (As an aside, if you’re after a LOT of SATA ports for this CPU, Supermicro do a A1SA7-2750F which offers a stunning 17 (seventeen) 6Gbps SATA ports!)
As the Supermicro is cheaper and a better fit for my current build, that’s the one I’ve chosen. The nice thing about picking standard-size parts is that I can look at changing this out in the future, if I need to.
Memory: For the moment, I plan to put 2 4GB sticks of Kingston RAM into the machine. This leaves me two slots free, so I can go up to 16GB with another 2 sticks later.
Disks: The WD RED drives seem to be where it’s at these days. These drives are tuned for small NAS devices; they are better able to tolerate the vibration from other drives in the same chassis and they do TLER which basically means the drive confesses errors earlier than desktop drives. In terms of capacity, the 3TB drives seem to be the sweet spot at the moment. At £97.30 from Insight, they provide the lowest cost-per-gigabyte. In order to spread my risk (the whole point of choosing RAID is, after all, to protect the data), I will probably buy two WD RED drives and one Seagate NAS drive which are about the same price.
Software
I am currently vacillating between FreeNAS and NAS4Free as the main OS. Both of these are FreeBSD based operating systems, allowing the use of ZFS on the drives.
ZFS is one of these new hybrid filesystems: part filesystem, part volume manager. The filesystem includes functionally previously seen in the md
or lvm
components. The idea is that, because only one component is in control of everything between the file and the disks, errors can be spotted more easily and corrected. Under ZFS, individual disks are combined into vdev
s using various levels of RAID. The vdev
s are then added to a zpool
, which is an aggregate of all the storage available. Individual “filesystems” can then be allocated from this pool with individual features such as quotas, compression etc. As I will have three drives, I plan to combine them into a single vdev
using RAID-Z1, which is a bit like RAID-5, in that I get two disks-worth of capacity and one disks-worth of parity (meaning I can lose one drive and still have a working system).
Now, with an eight-core CPU, I think I should also be able to run some other stuff on the system at the same time as the NAS. One of those applications will probably be Plex – one thing I’d like to do is encode all the DVDs we have around the house and make them somewhat more accessible. The idea would be that our MythTV machine holds the media recorded from the TV, while the NAS holds the media purchased on disc. A video-playing frontend could then pick and choose from both sources.
I will probably also look at some sort of virtualisation hosting. I have a few VMs dotted around my network and I might consolidate them onto the one machine, too.
Summary
So that’s the state of play. An 8-core Atom machine with 3 3TB drives and 8GB of RAM stuffed into a Fractal Design Node 304 case, running FreeNAS or NAS4Free, Plex and some other assorted stuff.
Next up, buying and building it!