Visit our FreeNAS Gallery.
Remember the good old days when you could keep all your data on a "mess of 5.25" floppy disks? Too long ago? Okay, How about all your data on a single hard drive? No? Well, how about on several drives spread across a few machines in your office? You see where this is going... Things have gotten quite complicated in the Information Age, and like it or not, we're all using more and more storage, and it's getting harder and harder to manage.
The good news is that disks are getting cheaper; the bad news is that unlike the "good old days," businesses and individuals can no longer afford to have their information storage spread out all over the place and not have coherent plan to manage it all.
Short of investing in a commercial NAS or SAN system, is there a way to create an in-house common data storage system that's reliable, secure, standards based, easily managed, and expandable without breaking the bank? Of course. Just give FreeNAS a try.
FreeNAS is, in essence, an embedded system for Network Attached Storage. It's so small it can fit on a USB "thumb drive" or a CompactFlash card, yet powerful enough to support as many disks as you can put into a system. It's got very low overhead, and can be managed from any Web browser.
Does this Look Familiar?
If you're looking at the gallery and saying to yourself "Hmmm.... this software looks suspiciously like the M0n0wall firewall system he talked about in the last article..." ...well, you'd be correct. Even though FreeNAS is a totally different project, done by a different set of developers, FreeNAS uses the M0n0wall code (stripped down FreeBSD, mini-HTTPD, Perl, PHP, etc.) as its starting point.
This is one of the interesting aspects of many successful Open Source projects: developers stand on the shoulders of those who came before them. In this case, the stripped down FreeBSD code and Web services layer that makes M0n0wall work so well, would seem to make a great base for a slimmed down, and high-performance storage management system.
Lead developer Olivier Cochard and his team have developed a very useful system that can really make a difference if your office (or your home) data collection is getting out of hand.
FreeNAS supports all of the standards you'd need, even in a multi-OS (Windows, Mac, Unix/Linux) environment:
- CIFS/SMB (Samba — also known as "Windows File Sharing")
- The Network File System (NFS)
- The Apple Filing Protocol (AFP)
- RSYNC protocols
- Local and Microsoft domain user authentication
- Software RAID (0,1,5)
- Support for ATA/SATA, SCSI, FireWire and USB Drives.
- WEB configuration interface.
FreeNAS takes less than 16MB of space and can be installed on Compact Flash, hard drive, or a USB key. Let's see how well it works.
Putting FreeNAS to the Test
FreeNAS is an embedded system for storage management. It can run on any x86 compatible system from an embedded system all the way up to the latest motherboard with SATA, FireWire, and USB2 interfaces.
The system I used was a 2.4 GHz Pentium IV with 1 GB of memory, and five 120-GB SATA Disks. I decided to use all of the disks for storage, since the FreeNAS itself can fit on a USB Flash thumb drive.
The software can be run from hard disk, or from a USB thumb drive. I decided it might be interesting to see how easily I could get a thumb drive system up and running.
Installing the system on either device is simply a matter of downloading the FreeNAS ISO image, then burning it to a CD-ROM. Put the CD-ROM into the system you want to use as your storage server, and boot up. The CD-ROM installer then gives you the option of installing FreeNAS onto the hard disk or a USB drive. Once you have done that (and in the case of USB thumb drives, ensure that the BIOS will allow you to boot from USB), just reboot the system with the thumb drive in a USB socket and without the CD-ROM distribution disk.
Once the system booted from the USB device, it was simply a matter of configuration. Just like the M0n0wall distribution it's based on, FreeNAS has a text-based setup that you can use to tell the system what network interfaces to use (if there's more than one) and assign its network address.
Once the basics are out of the way, fire up a Web browser on another machine, enter the address of your server, and log into the admin console. Once the console is up, you can add disks (which will show you available disks installed on the system), partition them, and so on until you have created the configuration you want.
I won't take up unnecessary space by detailing the step-by-step partitioning and file systems allocation, but suffice it to say (and as you'll see in the gallery) it's really a snap to do. The draft user manual is pretty well done and gives good step-by-step instructions on creating a NAS system—from the initialization of the disks, to carving them up into the partition sizes that suit your business needs.
Once you have the disks partitioned and the shares allocated, add user ids so your users can connect to the file shares.
What's most intersting is how fast the whole system is. Like M0n0wall, this is a stripped down BSD Unix system—all unnecessary services are unavailable on the system. The entire power of the system is dedicated to serving up filesystems, and the I/O throughput is pretty much limited to the speed of the I/O card (in this case a SATA controller), the latency of the disks, and the speed of the network.
The Right Tool for the Job
FreeNAS is a very exciting and useful project. It addresses a need that most businesses (and even individuals) have—the need for a simple, yet complete storage managment system that won't wreak havoc with budgets.
FreeNAS is still a work in progress—a very functional work in progress—but nonetheless, it's still a growing project. There are a few areas, that need to be addressed:
LDAP or Active Directory Authentication: For many users, this isn't an issue, but this is a feature that needs to be developed so that FreeNAS can support larger enterprises that make use of these technologies to store user credentials. However, these are solved problems in both Linux and other BSD implementations, so it's only a matter of time before this capability arrives in FreeNAS.
Hotswap: At the moment, FreeNAS doesn't support hot-swappable disks. This is a minor annoyance, meaning that you have to explicitly un-mount a disk (such as a USB or firewire drive) before removing it from the system. This will probably only affect you if you use these devices to do your regular backups.
Backups: Besides the built-in RSYNC capability, you need a way to back up the system. Of course, there's nothing stopping you from connecting a tape drive to the system, or even removable storage (the hotswap issue not withstanding), but for long-term use a good backup/recovery plan is a must.
If you need to take control of your small business or home storage, FreeNAS might be a great startig point that solves your immediate problem, and will certainly get better and more capable as this project progresses.