Open source identity: FreeNAS 8's Josh Paetzel
- 08 June, 2011 09:25
FreeNAS 8 uses a Django-driven GUI.
FreeNAS is an open source operating system based on FreeBSD and, as its name implies, designed for networked storage. The project recently celebrated the release of FreeNAS 8, which racked up some 43,000 downloads in the first 48 hours after its release.
Techworld Australia caught up with Josh Paetzel, director of IT at iXsystems and project manager for FreeNAS 8, to talk about the current state of the OS, what lies ahead for it, and the relationship to FreeNAS 0.7.
Previously, the Open Source Identity series has featured interviews with Ruby on Rails creator David Heinemeier Hansson, Linux’s Linus Torvalds, Jan Schneider of Horde, Mark Spencer of Asterisk fame, Spine CMS creator Hendrick van Belleghem, Free Telephony Project founder David Rowe, and PulseAudio creator Lennart Poettering.
Could you describe FreeNAS in a nutshell? How did the project get started?
FreeNAS 8 ties an easy to use and intuitive GUI to a powerful, stable, robust operating system to make a storage appliance. The project was started a number of years ago when a BSD UNIX enthusiast was looking around for a home file server based on BSD UNIX. When he couldn't find one he created one of his own.
What's new in FreeNAS 8?
In some ways FreeNAS 8 is a case of taking a step backwards in order to be able to take two steps forward. The GUI is all new, making extensive use of Python, Django, and Dojo. In comparing it to the GUIs offered by other storage appliances on the market it really stands out. Whether you look at competing products, such as Openfiler, Nexenta, FreeNAS 0.7, or products in a different tier, such as a NetApp or EMC, the GUI in FreeNAS 8 really stands out.
There's more there than a pretty face though, behind that GUI is the latest FreeBSD operating system, 8.2, with ZFS version 15. ZFS is a production-ready filesystem in FreeBSD 8.x.
With FreeNAS 8 there seems to be a focus on expandability — using a Django-based GUI and creating a plug-in system, for example. What was the thinking behind this? More flexibility in terms of creating a community-driven ecosystem around the OS, or just maintainability of the core system?
One of the reasons that the developers of FreeNAS 0.7 were considering rewriting it was the static nature of the GUI. Adding functionality to a FreeNAS 0.7 box that is exposed to its GUI and can survive an upgrade was not something it was designed to do. As we set out to rewrite FreeNAS that was one of the major issues we wanted to solve.
A number of consumer-focused features (BitTorrent, for example) were ditched between version 7 and 8. What was the reasoning behind this?
We wanted the primary focus to be on file storage and sharing. Many of the media centre functionalities were considered prime candidates for the plug-in system.
Are there any features in version 8 that were particularly technically challenging to implement, or that the team is particularly proud of?
The whole GUI is a fairly amazing thing. A common reaction is, "I didn't know you could do that in a web page."
FreeNAS is built off FreeBSD -- is there a reason why FreeBSD was chosen as a base instead of, for example, a Linux-based OS? Are there advantages to it? At one point it looked like it was shifting towards being based on Debian...
We are passionate about FreeBSD. Its networking performance, stability, robustness, and the fact that it has a native ZFS implementation made it a natural choice for the base for a storage appliance.
What is the target market for FreeNAS? Is it mainly for personal use by people who want networked storage at home, or is it used in production environments -- would you consider it enterprise-ready, for example? In some respects it seems to straddle both consumer and business markets -- it has features that would be great for home storage, but also features like iSCSI targeting and 10GigE support.
I think in some ways it does straddle the high-end home user market and the low-end commercial market. In its current form it has moved away from the multimedia centre that many people were using FreeNAS for and more towards a storage appliance. We certainly intend to get back to that role in the future, but that's where we are at today.
It's also missing the features of really high end storage, like active/active failover, a clustered filesystem, single name-space, or horizontal scaling. So it can't compete with the likes of a BlueArc, NetApp, or EMC at the high end. What we are finding is that there's a lot of room in the lower end, where features like snapshots and dedup are needed, but things like active/active failover are not. People need more features than a Netgear ReadyNAS offers, but less than a NetApp offers. FreeNAS fits into that very nicely.
Looking ahead to 8.1, what features can people expect to be added? And farther down the track?
FreeNAS 8.1 will see the addition of a plug-in system that will allow the hackers to hack away at and customise their system. That's really going back to FreeNAS's roots.
The first plug-in we introduce will be a multimedia pack, which should get back the functionality that people use FreeNAS for at home.
We've been playing around with active/active failover, seeing if we can take a bite out of some higher end products. That's a hard problem to solve, and likely we won't do it as well as an EMC does, but if we can do it 99 per cent as well for 15 per cent of the cost there seems to be some demand for that.
ZFS v28 will make an appearance sooner or later, which will bring things like dedup and a detachable ZIL with it. If Oracle open sources ZFS v30 like they have said they will, we'll eventually get that as well, which brings with it filesystem encryption.
Do you have any idea of the install base? In a blog entry 48 hours after 8 was released, you said you were getting 890 downloads an hour...
When I looked yesterday there had been over 120,000 downloads of FreeNAS 8.0-Release. I have no idea how many of those have resulted in installs, what I can say is that my email, IRC, twitter, and every other form of electronic communication I have is pretty much swamped with FreeNAS-related stuff. Oftentimes I have to ignore it all and just keep plugging away in order to get anything done.
iXsystems is a sponsor of FreeNAS as well as your employer -- how does this relationship work? What's the commercial return iXsystems sees in FreeNAS' development?
iXsystems has been really good to both me and the FreeNAS community. They've essentially given me a team and a cheque book and said "Go build something." Obviously they'd like to see a return on that and are doing what they can to leverage FreeNAS to be a profitable venture for them, but so far it's been a labour of love with very little return.
I am pushed by the community to produce something that meets their needs, and also pushed by iXsystems to produce something that they can use to finance further FreeNAS development. Sometimes those needs are compatible, sometimes not. I think the end result so far is a good start and shows a lot of promise to meet everyone's expectations.
How large is the development community around FreeNAS? Do the key developers all work for iXsystems, or do you have significant community input in terms of patches etc.?
I have regular contact with the FreeNAS 0.7 developers. They have a lot of experience with the existing userbase, their wants and needs. I think the current state of affairs is that they are continuing to work on what they are familiar with, which is FreeNAS 0.7, and are welcome to work on FreeNAS 8 any time they wish.
Obviously from a development standpoint a lot has changed, and it doesn't help that the development documentation for FreeNAS 8 is at best lacking. For the time being there's a lot of value in having two FreeNAS versions with different focuses.
As FreeNAS 8 gains more of the media centre type functionality it's possible the development efforts will all be spent on a single version. The beauty of open source software is people are free to work on what interests them. As far as community efforts, there have been some fairly decent contributions from the community, in code, translation and testing.
The majority of the development is sponsored by iXsystems, but as the product gets more and more polished the contributions from the community have been more frequent. iXsystems funds five full time developers working on FreeNAS 8. There are at least two fairly active people in the community working on FreeNAS 0.7, and another half dozen or so people contributing code to both projects. There are a few dozen people working on the translation efforts, and another couple dozen people who are heavily involved in testing and feedback.
Finally, what's your background as a developer? How did you first get involved with open source software and the FreeNAS project?
Generally, with UNIX types, there are two types of people. Programmers who can do some system administration, and system administrators who can do some programming. I'm definitely in the latter camp. It helps that I've worked with some fantastic developers over the years. I'd like to say that rubs off, and perhaps it has, but it's definitely left me feeling a bit humbled as well.
As far as my involvement with open source, I worked for an ISP in the early '90s that ran a mixture of IRIX and BSD/OS systems. We kept a close eye on FreeBSD, and in 1995 initiated a project to replace our BSD/OS systems with FreeBSD.
Along the way I became fairly involved with the FreeBSD project and never left it. That involvement led me to working with the PC-BSD project, which when it got picked up by iXsystems turned into some random consulting for iXsystems, and eventually was parlayed into a full-time job. iXsystems took on a FreeNAS rewrite, which ended up on my plate, and here we are today.
Follow Rohan Pearce on Twitter: @rohan_p
Follow Techworld Australia on Twitter: @techworld_au