FreeNAS, an open source NAS server, can convert a PC into a network-attached storage server. The software, which is based on FreeBSD, Samba, and PHP, includes an operating system that supports various software RAID models and a Web user interface. The server supports access from Windows machines, Apple Macs, FTP, SSH, and Network File System (NFS), and it takes up less than 16MB of disk space on a hard drive or removable media.
FreeNAS is free to use and deploy without cost. It’s an open source project published under the BSD license. The software is popular enough to have gotten more than 20,000 downloads last month.
I downloaded the FreeNAS 0.66 ISO image and burned it onto a CD. To get started with FreeNAS, you need a PC or server with at least 96MB of memory, a network adapter, and at least one hard disk. I used an older PC with four IDE drives attached. I wanted to install FreeNAS on one of the disks and use the other three as a RAID 5 set. My test machine supports only four IDE drives, so I temporarily changed one of the drives for a CD-ROM drive, installed FreeNAS, and swapped back the hard disk before configuring the disks.
Booting the PC from the CD gets FreeNAS up and running, but you still need to configure it. Follow the instructions in the FreeNAS setup and user guide.
One thing to watch while doing the initial configuration is that the FreeNAS server doesn’t do any auto assignment of the network card. I assumed that since I only had one network card, it would automatically be assigned as the network card for the system. I was wrong. I only realised the problem after an hour of checking connections and cables. You must assign the network card as laid out in the „LAN interface and IP configuration“ section of the user guide.
Once you have the box working, enter the IP address you assigned the FreeNAS server into the address bar of a Web browser. You’ll be prompted for a username and password. The defaults are „admin“ and „freenas“. The start page shows some system information such as the version number and memory usage, with a menu on the left side.
The first thing I wanted to do was get the RAID disks working. Once again, the user guide is your friend, with clear, step-by-step instructions for the process.
Only whole hard disks can be used for RAID sets, so if you install the FreeNAS server onto one of your disks (rather than onto a USB pen drive) then that disk can’t be used as part of a RAID set. Also, to get the maximum space from your RAID sets, use disks of the same or similar size. Some versions of FreeNAS insist on the drives being exactly the same size due to some bugs in the software.
One other thing to watch while creating a mount point for a RAID set is that you must change the the partition type to Software RAID. I didn’t do this on my first attempt to set up RAID and had to scratch my head for a while when the RAID set didn’t work.
The final step to making the volume available on the network is to configure the network services such as CIFS and FTP. Windows machines use the CIFS protocol to access files over the network. CIFS is configured on the CIFS page in the Services section. To enable it, tick the Enable box at the top right and then set the workgroup name. Anonymous authentication is the easiest to get up and running, and you’ll find options for authenticating locally defined users and using domain-based authentication. After clicking Save, I was able to access the FreeNAS server from a Windows machine. I watched the hard disks while I copied over some files, and the little LEDs all blinked rapidly as the disks worked in unison. My FreeNAS server was fully functional!
FreeNAS’s web management interface is comprehensive enough that to administer the server you don’t need to use the command line. There is provision for full shell access via SSH but I didn’t find the need to try it. Reading the forums on freenas.org, which are the primary venue for support, shows that some people do use the command line for some more exotic configurations, but for the basic user the Web management interface will be sufficient.
In my testing, the core FreeNAS system was stable, but it is possible to get the system configuration into a confused state. For example, when creating my first local user I ignored the message that a group must be created first and blindly went ahead and tried to create the user. This resulted in some internal errors, and from that point on all local user authentication failed. The only way to fix the situation was to restore the FreeNAS server to the factory defaults and reconfigure the system from the beginning. If you respect the warnings and messages, you shouldn’t have any problems.
To secure your server you need to change the default password for the Web management interface. It also might be worth disabling the console menu if physical access to the server isn’t limited.
One limitation of the software is the lack of granularity in setting access rights to shares. The local user authentication model is an all-or-nothing affair. You can’t set some users to be read-only or others to only have access to certain shares. Once a user is authenticated, he has full access to all the shared storage.
The FreeNAS server has lots of potential and is under active development; there were 11 point releases in the first four months of 2006 alone. It’s a good alternative for building a simple network server without having to install a full-blown version of Linux or FreeBSD. It is also a good way to make use of aging hardware, as its system requirements are quite modest by today’s standard.
Gary Sims has a degree in Business Information Systems from a British university. He worked for 10 years as a software engineer and is now a freelance Linux consultant and writer.