Project of the Month, January 2007

FreeNAS

Description of project

FreeNAS is a dedicated operating system (FreeBSD reduced size) for network-attached storage (NAS) services. Based on the m0n0wall firewall, it lets users convert a PC to a NAS server by providing disk management and software RAID. It supports FTP/NFS/RSYNC/CIFS/AFP/UNISON/SSH protocols. FreeNAS is intended to let people re-use old hardware.

Trove info

  • Underlying operating system: FreeBSD 6.2
  • Hardware requirements: 128MB of RAM minimum
  • Language: Mostly PHP
  • Licence: Modified BSD

Why and how did you get started?

Olivier: I wanted to dedicate a PC to use as a NAS server. Specifically, I wanted an easy-to-configure package that could use four ATA channels exclusively for hard drives and have software RAID 5, and I wanted the OS installed on a USB key. Since I didn't find any such software, I tried to do it myself. I started by looking at embedded Linux, but I didn't find an easy-to-follow guide for building an embedded Linux system. As a long-time m0n0wall user, I read the m0n0wall developer's handbook, and this guide seemed easy to follow. I hadn't used FreeBSD before and didn't know PHP either, but I was able to build a m0n0wall system from scratch by following the guide. I chose to use FreeBSD 6.0 in place of FreeBSD 4.11. Two days later, FreeNAS was born.

Bob: I got involved in FreeNAS because I had a storage need, had old hardware, and could see little point in buying more hardware. FreeNAS fit my needs. However, the project had little documentation, which makes the use of the software difficult for newbies and those who have no skills in crucial areas. So my contribution to the project was to compile the Setup and User Guide.

What is the software's intended audience?

Olivier: Anyone who wants to convert a PC to a NAS server. Initially FreeNAS was created for home use only; it didn't include user authentication or system monitoring. I have received many requests to change this, and I'm now working on a professional version.

How many people do you believe are using your software?

We don't know, but SourceForge.net reports about a thousand downloads per day.

What are a couple of notable examples of how people are using your software?

Bob: I read recently of a couple of commercial users -- one a casino, the other with several thousand retail stores across the US -- that use FreeNAS to back up critical business-related information.

What gave you an indication that your project was becoming successful?

User feedback, and the quantity of discussion items. Additionally, FreeNAS regularly pops up in the media around the world. Also, a multitude of users wanted to translate the documention into their native languages.

What has been your biggest surprise?

One was receiving a dual Opteron processor server from AMD; they asked us to support FreeNAS on the Opteron processor. Another was being a winner of the VMware Ultimate Virtual Appliance Challenge.

What has been your biggest challenge?

Olivier: Managing an open source project is very time-consuming. The challenge is to correctly manage priorities.

Dan: Setting per-user permissions.

Why do you think your project has been so well received?

I think because it's small and specialized, updated regularly, and Free!

Where do you see your project going?

I would like to think it will meet its roadmap goals and provide all the features that users have requested. We want to improve the usability, so that anybody can use the software without any Unix/Linux expert knowledge.

What's on your project wish list?

Olivier: A solution to the Samba performance problem under *BSD A powerful and stable software RAID 5 solution under FreeBSD.

Dan: Quota management

Volker: Improvement of the mount and share workflow

Support for plugins

Filesystem encryption

Bob: Full user and partition controls

Power user plugins (the ability for a power admin to execute specific commands on startup)

If you could change something about the project, what would it be?

Be more professional when security holes are found; inform users and release new versions as soon as possible.

How do you coordinate the project?

Informally. It's a free job, so team members work on FreeNAS when they want to at their own speed.

Do you work on the project full-time, or do you have another job?

We all have other work.

If you work on the project part-time, how much time would you say you spend, per week, on it?

Olivier: Its depends. When I begin to add new features and prepare a new release, I work about 3-4 hours per night. After a release is finished and uploaded I might not work on the project at all during the next two weeks.

Volker: 12 hours

Bob: Initially, about 5 hours per week; lately, about 2 hours per week.

What is your development environment like?

Olivier: My development environment is a VMware machine that I moved from my professional laptop (running Windows XP) to my personal PC (running Ubuntu Linux). Soon I will use the AMD server (running 64-bit CentOS) with VMware Server on it running FreeBSD 32- and 64-bit virtual machines.

Dan: Pentium II 300Mhz, 128MB RAM, one 3.2GB and four 6.4GB hard drives, VIA USB PCI adapter, 3Com 905b 10/100Mbps PCI card.

Volker: AMD Thunderbird 1.4GHz with 1GB RAM and Pentium 4 3GHz with 1.5GB RAM, both running Windows XP with Virtual PC 2004 to run FreeBSD6.2 development environment. TortoiseSVN as SVN client. PSPad as editor.

Bob: I have three FreeNAS platforms: a laptop with wireless NIC for wireless LAN testing and documentation, a VIA EPIA, and an old Compaq EN SFF desktop.

Milestones:

  • 0.69: Add lots of FreeBSD geom class (gconcat, gstripe, geli, etc.)
  • 0.7: Disk/share management will be completely rewritten to add user permissions and quotas
  • 0.8: Add moniroting features: SNMP, syslog, alert, etc.
  • 0.9: Work on stability, security, and bugs fixes.
  • 1.0: The release!

How can others contribute?

Follow the guidelines in the FAQ and the manual before asking a question. We need expert PHP developers to read the code to improve it, and FreeBSD experts to help optimize that part. We need people to help with translation, documentation, and helping other users. Anyone interested can post their offer to help to the developer mailing list. Keep using FreeNAS, and tell your friends (we have no marketing budget :)


More projects of the month


Project Name: FreeNAS

Project leaders:

Name: Oliver Cochard-LabbeOliver Cochard-Labbe
Title: Project leader
Age: 29
Occupation or experience: IP network consultant
Location: France

Name: Dan MerschiDan Merschi
Age: 36
Title: FAQ and knowledge base writer
Occupation or experience: Programmer analyst
Location: Montreal, Canada

Name: Volker TheileVolker Theile
Title: Developer
Age: 31
Occupation or experience: Software engineer
Location: Germany

Name: Bob JaggardBob Jaggard
Age: 48
Title: Documentation (English) and beta testing
Location: Tasmania, Australias

Quote about SourceForge.net?

For FreeNAS, SourceForge.net provides a vehicle to involve many others -- developers, documentation contributors, and most importantly end users. But the forum needs to be improved.

Why did you place the project on SourceForge.net?

SourceForge.net offers the best all-in-one package for starting an open source project.

How has SourceForge.net helped you?

SourceForge.net permits us to focus on developing the code without spending time to set up other services, such as forums, mailing lists, Subversion, etc.

The number one benefit of using SourceForge.net is:

The number one benefit of using SourceForge.net is to facilitate communications between end users and developers.