This is a reblog of my "building a home NAS server" series on my old blog. The server still exists, still works but I'm about to embark on an overhaul so I wanted to consolidate all the articles on the same blog.
I've done some more performance testing and while I'm not 100% happy with the results, I decided to keep using FreeBSD with zfs on the server for the time being. Pretty much all measurements on Linux (both a recent Ubuntu Server and CentOS 5.3) showed lower performance and while OpenSolaris is a lot faster when it comes to Disk I/O and thus would have been my first choice for a pure NAS, the effort in porting my current mail server configuration would have resulted in the server being ready sometime in 2010...
I might be exaggerating this a little but the effort of building amavisd-new is non-trivial due to its large number of dependencies. If packages or at least some sort of package build system like the FreeBSD ports is available but building it from scratch and ensuring that all the necessary small Perl components are present isn't trivial. So FreeBSD it is for the time being. I will still be looking into rolling a few packages for OpenSolaris for at least some of the tools I'd like to see on there as the thought of running my home server on what is essentially an enterprise-class OS is very appealing to me.
Back to the server build. One issue that bugged me was the noise created by the server. It is not massively loud but the fans do create a humming noise that I find quite distracting. My house is also very quiet, especially at night, and the noise from the machine carries surprisingly far. If I had a dedicated "server room" or could banish the box to my garage it wouldn't be too much of a problem but for continuing use in a quiet environment like my office, the machine was just a little too noisy out of the box. None of the components are super noisy but as all my other machines were built with noise reduction in mind, this one stood out. As a first measure, I replaced the power supply with an Arctic Cooling Fusion 550R. It is very quiet and also has the additional advantage of being 80+ certified like the OEM Antec is. I also replaced the rear fan in the case with a Scythe Kama PWM fan and then discovered that the motherboard doesn't support PWM case fans. Oops. Better read the manual next time before ordering fans. Currently it's running at full blast but it is barely audible so that's fine. I guess I'll be replacing that with a 3-pin fan soon or stick the original Antec on back in. The new PSU supports temperature control of two chassis fans, but those fans need to be 3 pin and not 4 pin.
This leaves the processor HSF unit as the last source of noise that I can actually do something about. A replacement of that is on its way. Normally the OEM AMD cooler is quite good and quiet but for some reason this one is rather noisy. Not that it's loud but it's got a humming/droning noise that really irritates me. Turning the fan down in the BIOS settings at least alleviated the noise for the time being and it's reasonably quiet. Quiet enough at the moment and if it starts annoying me again, I've got a Scythe Katana 2 processor HSF here that I can put in.
With the additional items like PSU, fans and HSF units it's come in a little over my original budget but it should be a robust and hopefully long-lived server.
If you intend to install FreeBSD with zfs, make sure you upgrade from 7.2-release to the latest 7-releng as you'll get a newer version of zfs this way. This version is supposed to be more stable and also doesn't need any further kernel tuning in a 64-bit environment. I also noticed that with a custom built kernel, there is a measurable performance improvement since the later version of the zfs code has gone into 7-releng.
Overall the system has been running without any incidents for a few weeks now and appears to be both stable and quiet. So I'll now go back to blogging about software...