The Interview with Alfred Perlstein, VP of Software Engineering at iXsystems
Alfred has been working on the FreeBSD kernel for the past 13 years. His areas of interest have been file systems, multi-processor support, performance, and stability of FreeBSD. He has alternated between CTO/VP roles at companies like OkCupid to kernel developer positions at Apple and Juniper Networks. His current role is FreeNAS project manager and VP Software Engineering at iXsystems. He continues to contribute to the FreeBSD project when time allows and encourage his team to as well. Recently, he agreed to give the interview to BSD Magazine.
BSD Magazine: Hello Alfred, could you tell us how you got into FreeNAS?
Alfred Perlstein: I had known iXsystems for many years through their support of the FreeBSD project. When it came time to purchase some storage at my previous job I naturally looked to iXsystems for a solution. We picked a FreeNAS based server and were really impressed with the software. I was so impressed with the FreeNAS project, the developers behind it, and iXsystems that I reached out to work at iXsystems so that I could work on FreeNAS as well as TrueNAS.
BSD: Tell us the story behind FreeNAS project. How it started and was it Open Source in nature from the beginning? What was and is the role of iXsystems in it?
AP: FreeNAS started with a developer named Olivier Cochard-Labbe in 2005. He wanted to convert an old PC into a NAS box for his home, but there wasn’t an easy way to do that. He worked on that for several years with a couple of other developers, using a M0n0wall-based web UI. Eventually his interest and that of the other developers waned, and one of them proposed moving FreeNAS to a Debian Linux based system instead of FreeBSD. At iXsystems, we’d been using FreeNAS for years and selling people servers that were specifically for FreeNAS, so Matt Olander decided we should step up and offer to continue BSD-based development of the project. Olivier agreed, and iXsystems began the FreeNAS 8 project, re-implementing FreeNAS using Django and FreeBSD 8. Since then we’ve brought FreeNAS up to the most recent version of ZFS and added new features like encryption and jails support.
BSD: Can you give us a couple of examples of successful stories with FreeNAS?
AP: One time we got a random call from the United Nations, looking for FreeNAS support for a system they’d built with xxxTB! Actually, that sort of thing happens all the time. Customers call in from huge organizations around the globe telling us about these giant FreeNAS installs they’ve got running critical business functions. Every story brings a smile to our faces.
BSD: Can you also describe what is the average deployment of FreeNAS and the biggest one you know?
AP: Most FreeNAS deployments are small home users, probably not more than 12 TB. This is due to most FreeNAS devices being small boxes with just a handful of consumer hard drives. Businesses will often deploy systems with over 20TB in a rackmount chassis, often for backup purposes. We’ve heard of universities, however, who have created FreeNAS deployments upwards of a petabyte.
BSD: Have there been any mishaps with FreeNAS? Any technical problems? How were they solved?
AP: Like any software, FreeNAS has gone through some challenges. Early in FreeNAS 8, it became necessary to double the size of the system image. This meant that from 8.0 to 8.0.1, everyone had to use the CD image to upgrade, or perform a reinstall and import if their install media was too small. Most of the time, we’re able to identify problems early, document and fix them, and communicate with the community very quickly what the issue is.
BSD: How about the relationship with the community? Is it possible for a community member to contribute, and how are those contributions handled?
AP: There are lots of ways for community members to help out. One great way is to produce plugins – in that case, the contributor is free to distribute the plugin however they like. We always appreciate people who help others on the forums, as well as reporting bugs or making feature suggestions. It’s also possible to submit patches, but that doesn’t seem to happen very often.
BSD: Is there official training or tutorials, for example at conferences, related to the adoption or migration to FreeNAS?
AP: Our Community Manager, Dru Lavigne, goes to many conferences and runs small classes on how to get started with FreeNAS. There is also a series of video walkthroughs available on FreeNAS.org to help people get started, along with a fairly exhaustive online manual: http://doc.freenas.org/
BSD: What is the target audience for FreeNAS? Is it suitable for enterprise or home/small office deployments? Or, both?
AP: FreeNAS is about home users first, but really anyone but businesses with the most stringent requirements will find that it suits their needs. iXsystems is a small business with a strong technical inclination, and while we worked on FreeNAS, we also made sure to include everything we would want in a storage solution. As I mentioned, we’ve used FreeNAS in one way or another to host our internal file share for years.
BSD: Is FreeNAS suitable for in-the-cloud storage or has it been already used in such a scenario?
AP: Through the plugin jail, it’s possible to install Owncloud or any similar FreeBSD-compatible tool. Owncloud lets a user upload and access their files on a self-hosted server from anywhere in the world.
BSD: Is FreeNAS based on pure FreeBSD or does iXsystems modify the kernel tree?
AP: FreeNAS uses NanoBSD to create a stripped-down image, and unnecessary drivers are excluded, such as wifi and video card drivers. NanoBSD also offers us the flexibility of a backup system image in case an upgrade fails or the user needs to revert to a previous version.
BSD: Does FreeNAS support all the platforms that FreeBSD does? What are the better architectures on which FreeNAS can run?
AP: FreeNAS runs exclusively in x86 and x86-64 architectures. 64-bit is really the target architecture for FreeNAS, due to the RAM requirements of ZFS. Users with older hardware are encouraged to run UFS based systems, although they will not experience the full utility of ZFS. There is progress being made to fix ZFS into smaller memory machines. This may be available in later versions of FreeNAS.
BSD: What is the relationship between the FreeNAS and FreeBSD projects? Does iXsystems contribute back to the FreeBSD project?
AP: iXsystems is a major sponsor of FreeBSD, and most of the FreeNAS development team are also developers of the FreeBSD project as well. Our CTO, Matt Olander, is part of the FreeBSD Marketing Team, and the Community Manager, Dru Lavigne, is a member of the board of the FreeBSD Foundation. Working on FreeNAS has helped iXsystems expose a number of bugs in FreeBSD, which we were able to fix in FreeBSD. With FreeNAS soon to move closer to the cutting edge of FreeBSD, we expect even more mutual benefit in the future.
BSD: It seems that FreeNAS storage is strongly based on ZFS. Did the inclusion of ZFS into FreeBSD drive that choice?
AP: ZFS in FreeBSD has been a great boon to FreeNAS, and is a big reason why we didn’t want it to move to Linux. ZFS is an amazing technology for storage, and when we began working on FreeNAS 8 we decided to center it around ZFS. Since then, we’ve made ZFS more accessible than ever, and even brought in improvements like the encryption option in FreeNAS 8.3.1.
BSD: Does FreeNAS cover all the features that ZFS provides, like deduplication?
AP: As of FreeNAS 8.3, FreeNAS is at ZFS v28 just like FreeBSD. This means that RAID-Z3, deduplication, and detachable ZILs are all available in FreeNAS. The web UI reflects the ZFS pool, so even if someone performs an unconventional pool configuration from the shell, that will be fully reflected in the UI.
BSD: Does FreeNAS support other less memory consuming file systems like UFS/FFS as well?
AP: Most of FreeNAS’ functions work perfectly well on UFS, which is supported in the Web UI. A handful of other filesystems are also available in the importer for read-only.
BSD: How does FreeNAS compare to other Unix/Linux storage solutions?
AP: FreeNAS is very good at having a core selection of stable services for NAS available and easy to configure. FreeNAS is also probably the best at offering the power of ZFS. Others are very adaptable to third-party software, and this is something we’re working on improving in FreeNAS as well.
BSD: Are there any guidelines or automated tools for migrating from other (not strictly NSD) solutions to FreeNAS?
AP: None that we currently know of, however many people have successfully used rsync to migrate data. If a user decides to create a tool, we would love to integrate it into FreeNAS.
BSD: What is the added value of using FreeNAS instead of using pure FreeBSD (or another Unix system)?
AP: Certainly ease of use. The power of FreeNAS is that you can have network storage running with advanced filesystem features as well as integration with Active Directory in very little time, all through a user friendly GUI. We have many video tutorials online as well as written documentation that can help even your most basic user get up and running in a matter of minutes. The same configuration would take an expert days if not weeks to set up on FreeBSD.
Another bonus feature of using FreeNAS is that we have a huge userbase on a specific version of FreeBSD. This allows us to maintain a level of stability specifically tailored to our use-case. We inbox only vetted fixes from FreeBSD that we know address issues our users are seeing.
BSD: FreeBSD provides mainly two technologies for disk data encryption, GELI and GBDE. Does FreeNAS have any way of encryption of the whole or a part of its storage?
AP: The most recent release of FreeNAS, 8.3.1, added a GELI-based encryption option for ZFS. This allows the on-disk data of a ZFS pool to be encrypted with a key and optional passphrase, with a recovery key option. Obviously this means that only FreeNAS or FreeBSD can import an encrypted pool, but all the other functions of ZFS including snapshot replication are unaffected. This is designed only to protect offline disks, or disks in which failed firmware prevents the deletion of sensitive data.
BSD: iXsystems provides a complete solution, both hardware and software, based on FreeNAS. What are the advantages for using such devices instead of using commodity hardware or other supported hardware?
AP: iXsystems is a hardware company with a long history of excellence. When you purchase a FreeNAS solution from iX, you can be assured that months of hardware qualification have been performed to make sure every single component is within specifications set by the CPU, motherboard, disk and controller manufacturers. By first making sure that the recommended hardware is fully compatible, then performing the FreeNAS install to your exact specifications, you can be assured that a FreeNAS solution purchased from iXsystems will be the most stable FreeNAS system that can be put together and ready to deploy out of the box.
There is also a full enterprise-grade appliance we offer, known as TrueNAS, which provides the user full enterprise support and some additional features, like high-availability active/passive failover, for instance.
Either way, by doing business with iXsystems, you’re supporting the FreeNAS, FreeBSD, and PC-BSD projects.
BSD: Consider a scenario where several FreeNAS machines are involved, does FreeNAS support (or will support) replication/mirroring and centralized management (let’s say clustering)? Moreover, are there any plans to implement a distributed file system between FreeNAS nodes?
AP: FreeNAS already supports replication snapshots to backup servers. Since FreeNAS is based on FreeBSD, any file system technology that appears in FreeBSD (and we decide will provide utility to FreeNAS users) will be included in the upcoming FreeNAS releases. At this time there are no clustering solutions. However we do have plans for a distributed backup system to help people save their data.
BSD: Apart from the “raw” storage, what are the main features that FreeNAS provides? For example link aggregation, backup of the configuration, scalability, support for different protocols, and so on…
AP: I’d say you hit all the big points of FreeNAS right here. We support link aggregation of multiple 10gigE interfaces, configuration backup is just a single click in the UI, we already have a great track record for stability, and we support multiple protocols: SMB/CIFS, NFS and AFP.
BSD: Does FreeNAS include (or will it include) the PCBSD PBI format for additional applications or are administrators required to use FreeBSD packages and ports?
AP: Yes! PBIs are supported under the plug-ins architecture (http://doc.freenas.org/index.php/Plugins). With our next release, the entire PBI catalog of PC-BSD (http://pcbsd.org/) will become available to FreeNAS users as well.
BSD: NAS based systems for home and domestic users often offer multimedia streaming and Peer-to-Peer features. Does FreeNAS embed any of them natively or via a third party package?
AP: One of our most popular p2p apps is Transmission. There are also a number of usenet related plugins. By leveraging the plug-in jail, just about any FreeBSD port that supports streaming can be installed and leveraged to build a media center.
BSD: Usually a home user will buy some sort of NAS hardware to plug in the network and forget about. FreeNAS requires a little extra effort, since the user has to install and configure the machine. Therefore, why should a home user decide to run FreeNAS?
AP: This is exactly why a home user would pick FreeNAS. It is an “install and forget” appliance if you want it to be. However, because it is based on the modern and powerful FreeBSD operating system, and because it is open source, and because it supports plug-ins, the possibilities for expansion are endless.
We really have a sweet spot here, the user who just wants to “set and forget” can do that, and the tinkerer can do as much tinkering as they like.
BSD: What are the differences between the community based FreeNAS solution and the TrueNAS solution proposed by iXsystems?
AP: TrueNAS takes the powerful interface of FreeNAS and puts it on a purpose-built hardware platform, with every piece tested and verified by iXsystems. Due to providing both the hardware and the software, iXsystems can guarantee a much higher level of support with TrueNAS, and the stable hardware platform also allows for features like High Availability that would be very difficult to implement in FreeNAS, due to tremendous difficulty of supporting any and all hardware the user chooses.
BSD: What is the future of FreeNAS? Could you tell us a bit about ongoing development?
Well right now two big things are happening.
First off we are moving to FreeBSD 9.1/stable. This will give us more hardware support and big performance gains. There is some talk in the FreeBSD community of virtualization coming to FreeBSD 9, so we may be able to pick that up as well.
Second, the entire project is being converted to git as I write this by our two senior engineers William Grzybowski and Josh Paetzel. Once this is complete, we will be able to leverage the abilities of a distributed SCM in order to attract more users to our project as well as help us with the ability to qualify changes in a unified build system before they are even submitted to the main project.
BSD: Why should a user migrate from another storage solution to the one based on FreeNAS?
AP: In the enterprise we find that FreeNAS performs as well as a number of solutions that are many multiples the cost of a FreeNAS machine. For people looking for enterprise support and more enterprise features we also have our TrueNAS product which competes on the same level of performance, stability and features as the major SAN and NAS offerings currently on the market, also at a fraction of the cost.
In the SOHO market we find that most of the soho solutions out there have a niche that they are good at. However, along with that you wind up with a soho based solution and all the limitations involved. FreeNAS is very fast compared to the rest of the options out there, is constantly evolving and improving, and is an open platform.
If you find yourself wishing for better performance, FreeNAS has that with the ZFS filesystem and our carefully tuned FreeBSD operating system to help you on that front. Or maybe you are wishing to move some of the applications off your desktop PC and onto the appliance so you are not interrupting services for the rest of your office or family when the family PC is “installing updates” or a new video card is being installed.
BSD: Is there anything you would like to add or tell BSD Magazine readers?
AP: I’m really excited about what is going on. We have a great 8.3 release under our belts now. Our team is the best team I’ve ever worked with. We have the users (over 8 million downloads in total). What we’re hoping for is more developers. If you have done something cool on FreeNAS, either with your configuration, or by hacking the code yourself, we really want to hear from you.
I want to thank the community, our forum members, and our developers very much for all the time they put into making FreeNAS a serious product that has had an impact on a large number of users. You guys rock.
BSD: Thank you for your time and this excellent interview.