I've been running home servers in one form or another for about a decade. For me, the server has shifted from a convenience--a place to store files that I want to access anywhere and an easy way to stream music to the office for free--to a necessity. Today, my home server is a place to back up my family’s computers and the home for all of my media--a few hundred ripped DVDs and Blu-rays plus my family’s music collection and all of the photos and home videos we’ve shot. Like any other server, it also serves as a good place to store the files I need access to all the time, as well as host any services that work better when they’re always running—stuff like dynamic DNS, streaming servers, and game servers.
My first home server was simply an old gaming PC that I repurposed by installing Linux and setting up a few shared folders and an FTP server so I had access to files at home when I was at the office or travelling. For the last five or six years, I’ve been running a lightweight Windows Home Server v1 machine packed with hard drives. The WHS box had some real advantages—it’s novel filesystem made it so simple to add storage that I eventually ended up with about 8TB of available space. Unfortunately, its ancient Celeron processor was woefully underpowered to stream 1080p video, and the OS has been effectively abandoned by Microsoft.
When I decided to build a new server late last year, the first thing I did was figure out what I wanted to use it for. Easy backups for a handful of Macs (and one PC) across the network was a must. I also wanted a machine that would be able to stream all of my media--using Plex Media Server to stream ripped movies and TV shows and Subsonic to stream my music collection. I needed a safe and secure place to store my personal media--photos and home videos I've shot. Finally, I wanted to offload the heavy lifting of DVD and Blu-ray transcoding from my main desktop PC, and the ability to add new stuff to the machine that I haven’t even thought of yet.
When I was deciding what operating system to use for my next home server, I investigated a handful of Linux options, briefly considered Windows Home Server 2011, and finally settled on FreeNAS, which is a customized version of FreeBSD. FreeNAS makes it relatively simple to set up a multi-purpose machine that can run headless—that is, without a video card or monitor connected. After taking FreeNAS for a test drive in a virtual machine, I was sold. As an added benefit, FreeNAS’s native filesystem, ZFS, makes it easy to add multiple hard drives to a single volume, and even supports using a SSD as a smart cache for the volume. And yes, if you want, you can even add redundancy to the system (I don’t recommend it, but we’ll get into that later).
Figuring out the hardware for the FreeNAS machine was tricky. While you can buy dedicated network-attached storage devices that come pre-configured with FreeNAS, none of the options in my price range had the kind of high-powered CPU I was hoping for. After spending the last two years wishing my server was faster, my goal is to make this motherboard and CPU last at least five years, maybe more. Knowing that, the option I was left with was to build a machine and install FreeNAS on it myself.
First, I had to figure out the hardware part.