- Project name: FreeNAS
- Date founded/started: October 2005
- URL: http://www.freenas.org/
- Project page: http://sourceforge.net/projects/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.
- 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
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.
- 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 🙂