OpenZFS: A Brief Background
When ZFS, the “Zettabyte File System”, was first developed by Sun Microsystems for the OpenSolaris project, a standard development path of creating a new version number with each new on-disk format change was the optimal way to go. After Oracle acquired Sun, the development of the OpenSolaris distribution and further Open Source releases of ZFS ceased. The final Open Source release was ZFS version 5 and ZFS pool version 28. At that point, several groups outside of Sun were already using ZFS in their operating systems, including FreeBSD and OpenIndiana, and would be joined by Mac OS X and Linux further down the road.
It soon became necessary to differentiate Open Source distributions of ZFS from Oracle’s proprietary version, resulting in the eventual creation of the OpenZFS project in 2013. With this branch of the project being developed for multiple operating systems with no official lead, keeping up with versions in the standard format no longer made as much sense. To handle this, the OpenZFS project introduced the “feature flags” system, which allows completely independent format changes to be developed without having to resolve every change to the on-disk format across platforms.
This means that development moves along more quickly and, as long as the OS supports the feature flags being used, a ZFS pool can be imported and exported across implementations without losing functionality.
Keeping up to Speed with FreeNAS & TrueNAS
Among the projects that utilize OpenZFS, FreeBSD is one of the leaders in supporting feature flag compatibility and has made significant code contributions. As FreeNAS and TrueNAS are based on FreeBSD, this means that both operating systems can incorporate new feature flags as soon as they are introduced. The iXsystems team has been working with the FreeBSD community for nearly two decades now, and with OpenZFS since its formation. Consequently, the FreeNAS project is able to review and support new feature flags in its Web Interface very quickly once they are available, making some features the default where beneficial.
A good example of this is the lz4 compression feature flag. The lz4 compression algorithm is designed for today’s multi-core CPUs. It analyzes files and automatically determines whether compression is worthwhile without any noticeable performance reduction. It also is able to uncompress data very quickly as well, which sets it apart from other compression formats. Because of this, the FreeNAS Team was able to quickly determine this should be made the default compression standard in FreeNAS.
It also gives users up to 2.5 times the original space without slowing down storage performance. In fact, it actually speeds up performance since it is working on the CPU level, rather than the disks themselves.
Additionally, the FreeNAS Team added a large block size feature into the FreeNAS Web Interface as soon as it became available. This means that users can tune their block size to their use case on a dataset level without having to go into the command line, giving them greater ease-of-use for advanced features than other OpenZFS-based Storage operating systems.
Extensive Testing Within the FreeNAS Community
FreeNAS is the world’s most widely used storage operating system, with over 7 million downloads in its lifetime. Since it is an open source project, this means that new features are tested across a wider variety of use cases and hardware environments than closed source projects. FreeNAS is deployed in home, academic, governmental, and enterprise settings, allowing for features to be thoroughly vetted before making it into release versions and, subsequently, TrueNAS.
FreeNAS makes using feature flags easier than any other storage operating system. In FreeNAS you never have to resort to the CLI or having to build a custom kernel. It has a full-featured Web Interface, supporting virtually any configuration or administrative operation you need to perform. Also, FreeNAS’s upgrade system allows for you to switch between stable release & nightly builds with just a click of the mouse. This means that you can try new features on the nightly builds and rollback to previous versions at will.
Fully Vetted Features for the Commercial Environment with TrueNAS
Because of the extensive testing by the FreeNAS user base during Alpha, Beta and Release versions, the FreeNAS development team is able to bring new features to maturity in the OS environment more quickly and for a greater variety of use cases. This means that features will be fully vetted and stable by the time they’re put into commercial grade TrueNAS appliances, bringing you added peace of mind in all aspects of TrueNAS.
OpenZFS offers the world’s most advanced open source file system capabilities. Its feature flags offer a quick and easy way for new features to be introduced and makes those features portable across operating systems. Due to FreeNAS’s great popularity and the rollback capability of its version updating system, new features can be quickly exposed to a large user base in a wide variety of storage environments. This translates into a more mature and stable storage operating system with more features.
To learn more about TrueNAS storage solutions, visit web.ixsystems.com/truenas, call 1-855-GREP-4-IX or email firstname.lastname@example.org.