LWN.net Logo

Btrfs by default in Fedora 16?

By Jonathan Corbet
February 23, 2011
Btrfs is, by many accounts, the next-generation filesystem for Linux systems. It has, in fact, been the next-generation filesystem for a few years now; progress in the filesystem area often seems to be slow. But btrfs has been maturing to the point that it is highly usable in a number of environments. The list of btrfs users may grow significantly toward the end of this year if a proposal to make it the default filesystem for the Fedora 16 release is adopted.

That proposal was made by btrfs developer Josef Bacik. Josef would not only like to see btrfs as the default F16 filesystem; he would like to stop using the LVM volume manager in favor of the internal volume management built into btrfs. As he notes: "Fedora 16 is a very aggressive target, which is also why I'm bringing it up now. I think we will be ready by then." There are a few things that will have to happen, though, for that to be true.

For example, there is the little problem that there is still no filesystem checker for btrfs. That is, according to btrfs creator Chris Mason, the biggest missing feature in the filesystem at the moment. He also said that he is working on it full time, so this particular gap should be filled sometime in the near future. That said, filesystem checkers, like the filesystems themselves, require a certain amount of time to mature into the kind of rock-solid behavior that users tend to expect. The btrfsck program will certainly have to evolve over time as the various ways in which filesystems can become corrupted are discovered.

Josef noted that support in the GRUB bootloader is another open problem. Patches adding support to GRUB1 exist, but they would have to be carried by Fedora, since there is no functioning upstream for GRUB1. The alternative is to move the distribution to GRUB2, a tool which has the added advantage of an existing upstream development community. Fedora is already contemplating moving to GRUB2, but, with regard to btrfs, there is, naturally, a catch. As was discussed in this article last December, GRUB2 is licensed under GPLv3, while the btrfs code is GPLv2-only. As has been done with ZFS, getting btrfs support into GRUB2 would require relicensing some of the code to GPLv2+. There are now enough contributors to btrfs to make that relicensing an interesting problem, but it is probably still feasible at this point.

Another potential issue is that the developers of Anaconda (the Fedora installer) have complained that they already have a lot of things to work on for the Fedora 16 release. They don't relish the idea of more work, but, according to Chris Lumens, "perhaps we can find some time somewhere." Simply installing to btrfs should be a relatively easy change; reworking volume management to be done within btrfs sounds like rather more work.

Jon Masters opposed the idea of switching away from LVM, saying:

Yes, BTRFS can do a lot of volume-y things, and these are growing by the day, but I don't want my filesystem replacing a full volume manager and I am concerned that this will lead to less testing and exposure to full LVM use within the Fedora community.

He did not find much support on the list, though; most participants in the discussion seem interested in pushing forward and using the interesting features that btrfs has to offer. Lennart Poettering would like to take things further by splitting the installed drive into three subvolumes, one of which (holding the root filesystem) would be mounted read-only. This scheme would separate the system software from user files and protect the system from changes most of the time, but there would be no need to worry about filesystem sizing since btrfs can expand any of the subvolumes when needed.

That, of course, would be a significant change; having to remount the root filesystem for write access to install an update or make a configuration change could get old relatively quickly. But it could also improve the security of a running system and may be a good configuration for a number of environments. The ability to take snapshots of the root partition and roll the system back in case of trouble would be a nice added bonus.

The one other thing to be kept in mind is that btrfs, despite the speed with which it is maturing, will certainly have a surprise or two in store for its users still. Such is the nature of a new filesystem. But that is also the nature of free software: at some point widespread real-world testing is required to shake out the last round of bugs. Fedora seems like it could be a good place for this level of testing. Whether the ambitious Fedora 16 target will be met remains to be seen, but, if a btrfs default does not happen then, it can probably be expected soon thereafter.


(Log in to post comments)

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 2:08 UTC (Thu) by jackb (subscriber, #41909) [Link]

The btrfsck program will certainly have to evolve over time as the various ways in which filesystems can become corrupted are discovered.
If he needs examples I've got one...

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 3:03 UTC (Thu) by cjwatson (subscriber, #7322) [Link]

There is an upstream 'butter' branch of GRUB 2 which provides reverse-engineered support for btrfs, thus avoiding the licence conflict. It's likely to be merged shortly after 1.99. The main outstanding problem with it is that it doesn't offer support for writing an environment block, although we have a plan for how to fix that. This code is already available in Debian unstable and Ubuntu natty.

Unfortunately, to my knowledge, the Fedora developers have not been in touch with GRUB upstream lately, or we could have told them about this.

Btrfs by default in Fedora 16?

Posted Feb 25, 2011 9:40 UTC (Fri) by lkundrak (subscriber, #43452) [Link]

The Fedora developers are subscribed to LWN though and now they know thanks to a rather helpful comment. Thanks ;)

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 4:23 UTC (Thu) by gmaxwell (subscriber, #30048) [Link]

I'm finally off of BTRFS on my laptop after a couple years of using it in various fedora flavours. In particular I had a lot of problems with free space and compression. Bits of strange data corruption (fortunately including things that the btrfs checksums caught).

I had continued intermittent reliability problems which I couldn't effectively report, in part because the fedora kernels were so far behind btrfs development by the time I had an issue that any of several already fixed things might have been the cause of my problems.

It seems that btrfs is still too much of a moving target with too many incomplete features (e.g. raid?) for wide exposure to really benefit its maturity now. But maybe there is no half step?

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 6:57 UTC (Thu) by wondoman (guest, #72602) [Link]

Good luck with that plan.
Seriously, Btrfs is still the slowest and CPU intensive file system
out there. They already spend years optimizing it, but it just didn't
live up to the (early) performance expectations. (And a "90% working"
fsck is a big no-go).

On the other hand xfs is maturing very well. With the new "delaylog"
feature (will be switched on by default in the next kernel release)
it is in the ballpark of ext4 performance-wise (even in the "many
small files" case, where it used to suck historically).

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 7:28 UTC (Thu) by rahulsundaram (subscriber, #21946) [Link]

"Seriously, Btrfs is still the slowest and CPU intensive file system
out there."

Citation needed

"On the other hand xfs is maturing very well"

XFS is a fine filesystem but the reason for all the interest in Btrfs is that the feature set of Btrfs is matched by no other native upstream filesystem in Linux and noone is close nor will they ever be anytime soon.

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 8:19 UTC (Thu) by rsidd (subscriber, #2582) [Link]

There is one filesystem under the BSD licence that has pretty much the coolest featureset of any out there, and has been in production for over 2 years now: Hammer, from DragonFly BSD. Porting it to Linux would be non-trivial, but a read-only port was attempted some time ago.

I have not used it (I have used DragonFly in pre-Hammer days), but I follow the mailing lists and it looks like early bugs are pretty much ironed out. I am contemplating installing DragonFly on my machine purely for the sake of Hammer.

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 20:10 UTC (Thu) by quintesse (subscriber, #14569) [Link]

It's definitely an interesting option, Phoronix tested it back in January ( http://www.phoronix.com/scan.php?page=article&item=dr... ) and it didn't do too bad, but it could use some work still to be competitive performance-wise it seems.

Btrfs by default in Fedora 16?

Posted Feb 24, 2011 21:17 UTC (Thu) by dlang (✭ supporter ✭, #313) [Link]

part of the problem is that new filesystems start off being fast, then as they start having to account for the various corner cases and real-world problems they slow down.

if the filesystem survives this, then at a later point in time optimizations and improvements start getting applied to the filesystem and it speeds up again.

unfortunantly, right now both btrfs and ext4 are in the slow-down phase of their lifecycle, but a lot of people are declaring them the future based on their initial performance numbers.

Btrfs by default in Fedora 16?

Posted Feb 25, 2011 19:42 UTC (Fri) by oak (guest, #2786) [Link]

Well said. The same of course applies to lot of other things (say, browsers)...

Btrfs by default in Fedora 16?

Posted Mar 1, 2011 5:46 UTC (Tue) by i3839 (guest, #31386) [Link]

I don't understand how you can develop a filesystem without a filesystem checker...

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds