I have been searching for a replacement to my External Hard Drive backup system for about six weeks or so now. Having an external drive available on one machine at a time has become very limiting. Rather than randomly sharing the external drive from a machine, I decided a dedicated Network Attached Storage (NAS) device would fit my needs best. There are a plethora of devices on the market which will work very nicely out of the box. Simply plug in, configure and go. But with these devices you are at the mercy of the manufacturer for expandability and features. I also couldn't find a device which fit my needs for a reasonable price with the expansion options I wanted. Having some extra hardware around, I decided to build my own.
Rolling your own NAS appliance gives you quite a bit of choice in the operating system. Microsoft offers Windows Home Server and all of their other Server operating systems can be fitted into acting as a file server. Almost any Linux distribution can be configured to do the same. Then there are operating systems specifically made for being a NAS such as NASLite, NanoNAS, FreeNAS, OpenFiler and too many more to name.
In order to make things easier, I decided to use an operating system which would require minimal setup and maintenance, for me that meant using one which was made for the computer to be a NAS appliance. After narrowing down the choices based on my hardware and the features I wanted I was left with FreeNAS and OpenFiler.
FreeNAS
FreeNAS is based on FreeBSD and is free to use with support provided by the community. FreeNAS has very minimal hardware requirements and can run off of a flash device (USB Drive/Compact Flash) with minimal storage needed (less than 50 megabytes). The only setup issue I ran into was that FreeNAS doesn't automatically pick up an IP address from DHCP, you need to instruct it to do this. Aside from that, I was very impressed with how easy it was to use the web interface, configure it and get it in an fully working state. Any error the system encounters (ie, issue mounting a drive) can be viewed right from the web on the error log. Much more information such as S.M.A.R.T. reports can also be viewed from the web interface. Having all of this information is very handy and contributes to FreeNAS's overall ease of use.
Documentation for FreeNAS is surprisingly good. Setup, FAQs and Hardware notes can all be found on FreeNAS's website. There is also a Learning FreeNAS blog with free videos and a book which can be purchased.
Using FreeNAS was very straight forward. Users can be created and authorization can be set all in the web interface without any complicated configuration.
I was discouraged however by the warning messages which appear on some of the administrative pages. Specifically about UFS being the only supported file system type and the use of others may result in a loss of data. Since I run primarily run Fedora at home, I wanted to use a linux file system type so I could read (and write) to the drives if something happened to the machine. Without confidence in using ext2/3 on FreeNAS I decided to give OpenFiler a go.
OpenFiler
OpenFiler is built on top of a linux distribution called rPath which is aimed at being an appliance operating system. OpenFiler is also free, but not completely. It is free to use, but relies on a paid support model primarily aimed at enterprise usage. OpenFiler does not support running from a flash device. It is possible, but since it isn't supported I skipped this and tossed an additional hard drive into my machine. Installation was almost identical to installing Fedora (both use Anaconda). Using the web interface proved to be a little difficult for my first attempt. I logged into the interface with the only user I had set up, the root user, but this doesn't give any real configuration options. After referencing the Graphical Installation Instructions I learned there was a default user, openfiler, which is used for configuration. Next I learned the hard way that OpenFiler only supports LVM and getting it to work with an existing partition is basically impossible (it is possible, but not within reasonable means). If you are going to be setting up OpenFiler any time soon, save yourself the headache and use empty drives. After getting the storage set up it was time to permission it. OpenFiler has a bunch of options, but for my purposes using the internal LDAP service made the most sense. Configuration for this wasn't very straight forward though because you can't just enable the internal LDAP server, you must configure LDAP to point to itself. After figuring this out it makes logical sense because that is where the service is running, but in all honesty I don't think this is something a user should need to do. If the internal LDAP service is enabled, it should not be possible to also point the configuration to a different LDAP server. There are also no messages on the web interface which would hint at this.
OpenFiler does not offer much in the way of monitoring the health of the system through the web interface. System logs can only be viewed by using the command line (using ssh or the console java applet in the web interface). S.M.A.R.T. tools or hddtemp are not packaged, but can be installed with a little arm twisting.
Conclusions
So why did I stick with OpenFiler when FreeNAS is clearly easier to use? I'm stubborn. As easy as FreeNAS is to use, there is a big warning about using non UFS file systems. Not having another FreeBSD based system means if something happens to the NAS server, at best I will only be able to read the data from the drives.
*My review only touches on a small portion of each solution's capabilities. This was in no way meant to be a full featured review. I am also biased towards only being interested in the features of each which benefit myself, so I have only tested and considered those features.
Resources
The tested version of FreeNAS was 0.69.1.
The tested version of OpenFiler was 2.3 (Final).