General Hardware Recommendations
In general: You're building a server, so use server-grade hardware. The “gamer” motherboard you bought may work (may even work well), but isn't going to be ideal. It probably won't support important features like ECC, it will most likely have a crappy Realtek NIC, and it will probably have other built-in hardware that you don't need and can't use, like a sound card.
In addition to the notes here, it's strongly recommended to read the FreeNAS Community Hardware Recommendations Guide. It's kept updated by some of the more active and knowledgeable FreeNAS users.
If you have questions about a particular build, ask on the Will It FreeNAS? forum.
Memory
- Use only Error Correcting Memory (ECC memory). I know it is more expensive, but you are introducing a possible source of corruption into the file system (ZFS) in FreeNAS if you don’t use ECC memory.
- The minimum amount of RAM for a FreeNAS system is 8GB. But Fester recommends a minimum of 16GB. Even more is better. More RAM is the best payoff to improve performance of your system, since ZFS will use it for caching.
- If you have time take a look at Cyberjock’s article entitled “ECC vs non-ECC RAM and ZFS”. It is detailed, but excellent ( ECC vs Non-ECC and ZFS
- If you have time take a look at Jgreco’s article entitled “How To Fail … a guide to things not-to-do”. It mentions ECC memory amongst other things ( How Not To Do Things ).
- If you have time have a read through this. It talks about hardware choices and ECC memory ( FreeNAS All Disks Suddenly Degraded).
CPU
- Use a multicore 64 bit Intel processor.
- If you follow the advice on ECC memory then the processor must support ECC memory (not all do). All Xeon CPUs do, as do many Pentiums, Celerons, and Core i3 CPUs. No Core i5 or Core i7 CPUs support ECC.
- Home users with modest demands generally do not require expensive dual or multiprocessor setups.
- If using encryption select a processor that supports AES-NI. Otherwise, don’t use encryption; it results in too much of a performance hit. In fact, unless you have a specific legal requirement for full-disk encryption, don't use it. The risk of data loss is too great.
- Most modern (i.e., Sandy Bridge or newer) Intel CPUs will have adequate performance for any sort of file sharing over a gigabit network.
Motherboard
- Server motherboards are expensive but the best way to go. Supermicro motherboards are generally recommended.
- If you follow the advice on ECC memory then the motherboard must support it (not all do).
- It’s a good idea to use the manufacturer’s Qualified Vendors List (QVL) where possible. This is a list of hardware that has been tested by the motherboard manufacturer for compatibility.
- Make sure you match the memory and the processor to the motherboard. Memory comes in different speeds, capacities, etc. Processors are designed for specific sockets, have different speeds, etc (don’t get caught out). The motherboard must support your choices.
- Get a motherboard that features the Intelligent Platform Management Interface (IPMI) if you can (it’s freaking brilliant!).
- Motherboards with Intel NICs are recommended. Avoid Realtek NICs (they are about as useful as an ashtray on a motorbike).
Storage HDDs for your data
- Use NAS recommended HDDs.
- TLERis a useful feature to have on NAS HDDs.
- Use enough HDDs in your system so you can employ some sort of redundancy within the zpool/s and the vdev/s. If you aim for a minimum of 4 this will allow RAIDZ2 (ooooh yummy).
Boot Device for the FreeNAS OS
- The FreeNAS OS must reside on a separate drive. It cannot be installed on the HDD/s you will use for data storage.
- A minimum of 16GB capacity for the FreeNAS boot device is recommended. Any larger than 32 GB is wasteful.
- A SATA DOM or Solid State Device (SSD) is recommended. If your budget does not stretch this far you can use a high quality USB device. If you are using a USB stick, consider using two, and mirroring them.
Host Bus Adapters (HBAs) and RAID Controllers
- Use HBA cards and not RAID cards.
- If a RAID card must be used flash it to IT Mode or JBOD. Many RAID cards do not support a true JBOD mode, in which each disk is directly presented to the operating system, which is why HBAs are preferred over RAID cards (see above).
- LSI HBAs are recommended.
- The HBA or RAID (IT Mode) firmware version must match with the driver version in FreeNAS. FreeNAS will give a warning if this is not the case. This is important as a mismatch can lead to possible data corruption.
- Using a backplane can seriously reduce the amount of cabling in your server.
- Do not use SATA port multipliers.
Power Supply Units (PSUs) and Uninterruptible Power Supplies (UPSs)
- Don’t buy low quality PSUs.
- When selecting a PSU for a quiet server build chose one that will operate at around 50% – 60% of its rated maximum wattage. So if your server draws 300W, select a PSU with a maximum rating of around 600W.
- If you have time have a look at thisarticle by Jgreco. It is excellent and should help.
- If your budget allows, invest in an Uninterruptible Power Supply (UPS). If your budget doesn't allow, adjust your budget until it does. I know it’s not the most seductive bit of kit (incidentally, the most seductive bit of kit I ever bought was a leather thong, but that’s another story) and it’s expensive (the UPS, not the thong!), but it is good practice to use one. Although the ZFS file system, along with the ZIL is designed to stop data corruption when experiencing a power outage, apparently it can still happen (I don’t know how or why??).
- Some server PSUs will not work with a UPS that uses a simulated sine wave output. Some PSUs don’t seem to mind. The reasons are beyond the scope of this guide. I have seen the output of some simulated sine wave UPSs on an oscilloscope and some of them are shockingly bad and do not even come close to a sine wave. If you don’t want to take a chance, then get a UPS that provides a proper sine wave at its output. Unfortunately, this will cost you more.
- Whatever UPS you choose make sure it is supported on the Network UPS Tools (NUT) hardware compatibility list. This will allow the server via an attached USB, serial, or network cable to monitor the UPS.
Miscellaneous
- Arrange your storage so that all VDEVs within a pool have redundancy. THIS IS VERY IMPORTANT!
- Do not use a 1 disk vdev, it has no redundancy. THIS IS VERY IMPORTANT!
- Do not use RAIDZ1, as it has only 1 disk redundancy (Z2 has 2 disk redundancy and Z3 has 3 disk redundancy). THIS IS VERY IMPORTANT!
- Remember when any vdev fails in a pool it takes the entire pool with it!
- Read Cyberjock's guide to ZFS for newbies. Then read it again. It would probably be worth reading it a third time.
- Home users will generally not benefit from a SLOG or L2ARC. More RAM is a better buy.
Esoteric Tips & Advice
- No matter how well you train them, don’t use ferrets to build your server (that’s 3 years of my life I’m not getting back).
- Same goes for pigeons (but they can be trained to make great cocktails).