|At a Glance|
|Summary||Lightweight BSD NAS distro with minimal hardware requirements and maximum features.|
|Pros|| Polished web-based configuration
Runs on anything supported by BSD
Good offering of network protocols
|Cons|| No folder-level permission settings yet
Hardware and driver limited performance
So you've got an old x86 computer in the closet gathering dust. It doesn't have the horsepower to be a desktop machine any more, but it still works and you'd hate to just throw it out, right? Why not turn it into a NAS? FreeNAS will allow you to turn just about any computer in to a full-featured NAS, complete with a easy to use web-based configuration utility.
To Build or Not to Build
If you take a quick look around here at SmallNetBuilder, you'll find that there are a ton of reviews of commercial NASes. So why go to all the trouble to build your own? Well, if you're like me and have a lot of old computer parts lying around, it's a great way to put them to good use again. To quote Bill Meade, if it's "too good to throw out, but not good enough to use", then chances are pretty good that it would be a great candidate for a home-built NAS. Not to mention it's nice to save some of your hard-earned cheddar for something a bit more exciting (like BioShock).
I don't buy the money argument though (no pun intended). I love building things, I love putting them together then taking them apart again to figure out what makes them tick. The sense of satisfaction you get from designing your own network, building and configuring a NAS and then getting all the machines on your network to play nice, for me, is priceless.
Despite the price tag, FreeNAS is really quite well equipped. It's packaged with basic file transfer services such as CIFS (SMB), NFS, AFP, FTP, SFTP, and SCP. In addition, FreeNAS sports some more advanced backup and file synchronization services, namely rsync for *NIX users and Unison for cross-platform file synchronization. Also included is a UPnP media server with a built-in web based control page.
FreeNAS also supports iSCSI as both an initiator (client) and target (server). iSCSI is an alternative to Fibre Channel, common in large storage networks. To round things out, FreeNAS also supports Dynamic DNS which periodically updates DNS servers with the NAS' IP address, a great feature for small home office users who use normal residential internet service which usually has a dynamic IP address.
FreeNAS's hardware configuration features are as complete as its software features. FreeNAS supports software RAID in basic configurations RAID 0, RAID 1, RAID 5, and JBOD and also supports complex arrays such as RAID 1+0. FreeNAS also supports encrypted volumes using the Geom Eli module. This allows you to encrypt the entire hard drive (or RAID array) for extra security.
Since FreeNAS can be run on anything that FreeBSD runs on, the developers included some interesting and useful "Miscellaneous" features. Those include a SMART Daemon, which monitors the health of SMART enabled hard drives and a Power Daemon, which monitors system loads and adjusts power states accordingly. Also accessible via web configuration are advanced kernel tuning variables which allow advanced BSD users to tune certain kernel parameters to squeeze the maximum performance out of the hardware.
The underlying FreeBSD system m0n0wall, is pretty interesting in and of itself. Originally designed for embedded firewall systems, it's the first UNIX-like system to do its boot time configuration in PHP. Now this says a lot about the power of PHP, which is usually thought of as just a web scripting language. But it also speaks to the fact that m0n0wall was really developed from the ground up to be run via the web.
Needless to say, they've got it down to a science. Embedded systems, by definition, don't have much in the way of computational horsepower. More processing power means more heat, more energy requirements and to accommodate all that, a larger overall form factor.
This is not what you want in an embedded system, so m0n0wall and hence FreeNAS, have been tweaked and tuned down to the bare essentials in order to get the maximum performance out of minimal hardware. This ideology is tried and true and works great for very specialized applications like FreeNAS: do one thing and do it well.
The "embedded" install option only takes up 32 MB and can be installed on a USB stick (if your BIOS supports booting from USB), on a CF card or on the hard drive. Installing to a USB drive would have been my first choice, but unfortunately the old BIOS on my FreeNAS system didn't support booting from USB. So I had to install the embedded system on a hard drive. FreeNAS created its own partition and left me the rest of the drive. I decided to use a slightly newer 20 GB Western Digital drive for all my files and leave FreeNAS by itself on the old Seagate drive.
FreeNAS uses the old text-only style install (Figure 1). It's not pretty, but it gets the job done.
Figure 1: Text only install
Installation was a breeze: download and burn the current ISO of FreeNAS; pop it in the CD drive; set your BIOS to boot from CD; and install. The text-based install was fairly intuitive, even though the documentation wasn't 100% clear on what the different install types were and was written for an older version of FreeNAS. I made it through the install without problems, though. The 32 MB OS didn't take more than about 10 seconds to install on my test machine (Table 1).
|FreeNAS System Specs|
|Hard Drive|| Western Digital WD200AB 20Gb (FreeNAS OS)
Seagate U5 ST310211A 10Gb (Storage)
|Ethernet Adapter|| Belkin F5D5000