The last couple of years have seen a surge in file system development.
Sun (NASDAQ: JAVA) open sourced ZFS and acquired Lustre. Quantum (NYSE: QTM), Panasas, IBM (NYSE: HPQ), HP (NYSE: HPQ), NetApp (NASDAQ: NTAP) and Red Hat (NYSE: RHT) have all boosted their file system development efforts. And NFS is getting a major overhaul in the form of pNFS. Not surprisingly, all this development effort has stimulated work in open source communities to come up with higher performance file systems for Linux.
Enter a couple of developments on the Linux front: the BTR File System known as Butter FS or B-tree FS and ext4.
"Ext4 is an update to the widely-used ext3 that upgrades capacities in a number of areas, tweaks performance, and so forth," said Gordon Haff, an analyst at Illuminata. "In the relatively near-term, ext4 is the next new file system that we're likely to see widely deployed on Linux."
Although it was developed in 2006, ext4 has only really been stabilized over the last year and is only now beginning to see any volume of deployment. Versions of ext4, for instance, appear in recent releases such as Fedora. This Linux file system adds larger storage capacities (volumes up to 1 Exabyte) as well as various performance tweaks.
Ext4 is very much an evolution of the popular ext3 file system. Ext3 is limited to 16TB of storage, while ext4 has been designed to handle even larger file systems. One data integrity feature that has been added to ext4 is support for checksums on its internal journal transactions, which gives it some additional robustness in the face of storage errors.
But ext4 isn't so significant a development as BTRFS, at least in terms of potential. BTRFS may eventually pose more of a threat to ZFS and others, though it has yet to be finalized. It brings online defragmentation support, a mode just for solid state drives (SSDs), logging for copy-on-write, and various compression, mirroring, stripping and snapshot bells and whistles.
"BTRFS is a next-generation file system, which broadly means that it uses a different administration model from traditional file systems," said Haff.
What he means it that it moves beyond the administration and availability models used by current file systems. He gives an example: it essentially wraps volume management historically a separate product into the file system itself. It also builds in reliability and availability features such as snapshots.
BTRFS, then, is much more aggressive than ext4 with regard to data storage. It has been designed to subsume some of the features that are normally done by logical volume managers (LVM) and RAID hardware, does checksums for both its internal metadata and user data, and has built-in support for snapshots (like an LVM). Several of these features can be done with ext4, but require interacting with both the file system and the logical volume manager.
Interestingly, BTRFS was initially developed by Oracle (NASDAQ: ORCL) which is acquiring Sun but is now licensed under the GPL and is thoroughly in the open source community, open for contribution from anyone. It is described on its own project pages as "a new copy on write file system for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration."
Is BTRFS Enterprise-Ready?
So could this be the enterprise-class file system that the Linux world craves, one that could give ZFS a run for its money? Some are saying that it includes more features and better performance than its Sun rival. However, this is largely hypothetical, as ZFS is up and running successfully in many enterprises while BTRFS is not quite enterprise-ready yet.
"BTRFS and ZFS certainly have conceptual similarities, although BTRFS is still very much a work in progress," said Haff. "But it will be some time, most likely years, before it is ready for enterprise production deployments."
So how is BTRFS doing in the meantime? Early benchmarks show that it has a ways to go on performance, though it currently delivers around the same level on Linux as ext4 on reads and writes. The hope is that it will rival ZFS in terms of snapshot and checksum functionality. ZFS copy-on-write snapshots are made every time data changes, and new data is also checksummed for the sake of validity in order to prevent problems with data corruption. All of this and more has been added to BTRFS, which has already been merged into the Linux kernel.
But Sun won't exactly be sweating. It may be years before any of these emerges from the development phase into the mainstream.
"BTRFS is speculative, with production deployments even in the 2011 or 2012 timeframe seeming optimistic given the slow cadence of file system roll outs," said Haff. "Sun took a good couple of years to start seriously rolling out ZFS even after it was nominally ready."
Red Hat Signs On
One Linux vendor already incorporating these new file systems into its wares is Red Hat. Fedora is a Red Hat-sponsored open source Linux distribution, available for free download. Fedora 11 was released last month. It acts as a technology foundation for Red Hat Enterprise Linux (RHEL). Both BTRFS and ext4 are in Fedora 11.
"Ext4 is the default file system in Fedora 11 and all new users will automatically be ext4 users unless they take extra measures to choose a non-default file system," said Ric Wheeler, file system kernel manager at Red Hat. "BTRFS is built into Fedora 11, but in a way that requires a special boot time option to enable since it is still very much an experimental file system at this point and is not intended to be used for user's critical data."
Red Hat seems happy to forward the experimental line while refusing to commit wholly to any one file system. While Fedora 11 is on ext 4, Red Hat Enterprise Linux uses Ext3 by default. Further, Fedora supports other file systems such as XFS, which Wheeler describes as being feature-rich and well tested. Ext4 is a technical preview in RHEL today and BTRFS is not current supported at all.
"RHEL takes a more cautious approach," said Wheeler. "Unlike Fedora users who strive to get the newest and most cutting-edge features, our RHEL user base requires more mature technology."
He also pointed out that neither of the new Linux file systems are a direct competitor with Red Hat's Global File System. GFS provides a building block for high-availability clusters, as multiple servers can read and write concurrently to the same file system, normally directly over a shared storage fabric such as Fibre Channel. Neither BTRFS, ext4 or even ZFS supports clustered operations. Thus RHEL uses ext3 for non-clustered workloads and GFS for clustered users. NFS is also harnessed in various instances.
"Which file system is chosen is very much a case-by-case decision," said Wheeler. "As ext4 and BTRFS mature, we will learn which of them are best tailored to specific enterprise workloads. Any user of a file system can test and tune a file system with their particular workload and engage in the development process."
That said, he is enthusiastic about BTRFS and believes it could be ready for production use by some cutting-edge users next year.
"Most exciting are the new features that allow file systems to dynamically self-tune to various types of storage devices such as SSD devices or large RAID arrays," said Wheeler.
Follow Enterprise Storage Forum on Twitter