Weekly Edition Return to the Kernel page |
btrfs and NILFS
Almost exactly one year ago, as the developers were discussing changes to
the venerable ext3 filesystem, Andrew Morton was heard to say:
All that being said, Linux's filesystems are looking increasingly
crufty and we are getting to the time where we would benefit from a
greenfield start-a-new-one. That new one might even be based on
reiser4 - has anyone looked? It's been sitting around for a couple
of years.
Reiser4 looks like it may continue to sit around for a while yet. But that does not mean that there is no interest in the creation of interesting new filesystems. LogFS was discussed here in May, but it's not the only newcomer in the filesystem arena. The most interesting new contender, perhaps, is btrfs, which was announced by Chris Mason on June 12. It is an entirely new filesystem intended for standard rotating storage with a number of interesting features. These include:
Fast filesystem checking is also an important design goal for btrfs. The data and metadata are laid out in a way that allows the offline filesystem checker to read the disk in a nearly sequential manner. That should speed the process considerably; filesystem checking usually involves vast numbers of seek operations. Online filesystem checking is also in the plans, though it has not been implemented yet; once it is working, this feature could eliminate the need for separate, mount-time filesystem checks entirely. This filesystem is in a very early state - not recommended for data which one might actually want to keep. There's not been a whole lot of benchmarking done, and, presumably, a lot of optimization work still to happen. For example, the entire filesystem is currently protected by a single mutex, a solution which is unlikely to perform well on those leading-edge 4096-processor systems. Little details - like not oopsing when the filesystem runs out of space, direct I/O, writing via mmap(), extended attributes, asynchronous I/O, and more - have yet to be taken care of. But btrfs has garnered a considerable amount of interest; if it lives up to its initial promise we could find ourselves using btrfs-based systems in the future. (For more information, see the btrfs project page). Another recently-announced filesystem is NILFS, which is now at version 2.0. NILFS is a log-structured filesystem, in that the storage medium is treated like a circular buffer and new blocks are always written to the end. These filesystems tend to do very well on benchmarks which measure write performance, since all writes go to a contiguous set of blocks; read performance is not always quite as good. Log-structured filesystems are often used for flash media since they will naturally perform wear-leveling; it would appear, however, that NILFS is not aimed at flash devices. Instead, NILFS emphasizes snapshots. The log-structured approach is a specific form of copy-on-write behavior, so it naturally lends itself to the creation of filesystem snapshots. The NILFS developers talk about the creation of "continuous snapshots" which can be used to recover from user-initiated filesystem problems - those of the "rm -r" variety. NILFS claims scalability through 64-bit data structures, but, interestingly, support for the x86_64 architecture remains on the "TODO list." The filesystem does not yet have support for extents. More information on NILFS can be found on nilfs.org. (Log in to post comments)
btrfs sounds mightly cool. Posted Jun 21, 2007 12:16 UTC (Thu) by dion (subscriber, #2764) [Link] Wow, it certainly sounds like btrfs got most of the features I've been wanting from ZFS (checksumming & snapshots), but with less of the license fuss.
All that's needed to gain coolness parity with ZFS is something like raid-z, unfortunately I don't see how that can be done without implementing it in the fs itself.
btrfs sounds mightly cool. Posted Jun 22, 2007 13:13 UTC (Fri) by aglet (guest, #1334) [Link] I wondered about the ZFS "license fuss" -- there's a good precis here: http://kerneltrap.org/node/8066
btrfs sounds mightly cool. Posted Jun 23, 2007 6:26 UTC (Sat) by Tomasu (subscriber, #39889) [Link] The part I like about ZFS is the way you can dynamically allocatephysical volume space to any logical volume (aka: filesystem) at any time.
Nothing else does that as far as I know. All you get is LVM2, EVMS,
btrfs sounds mightly cool. Posted Jun 24, 2007 22:16 UTC (Sun) by dlang (subscriber, #313) [Link] how much of this is a limitation of the technology (like the inability to shrink XFS) and how much is just a need for better userspace tools (like easily being able to resize extX)
don't mix one with the other.
btrfs and NILFS Posted Jun 21, 2007 13:23 UTC (Thu) by i3839 (subscriber, #31386) [Link] There's also Chunkfs, though that seems more like a research project than a real filesystem at the moment.
btrfs and NILFS Posted Jun 21, 2007 13:47 UTC (Thu) by Tet (subscriber, #5433) [Link] I admit I haven't looked into it in any depth, but from skimming the btrfs feature list, it looks like they're mostly just reinventing vxfs, partial support for which is already in the mainline kernel.
btrfs and NILFS Posted Jun 24, 2007 21:22 UTC (Sun) by k8to (subscriber, #15413) [Link] Of course, a codebase is not just a set of features. Maybe some NIH is going on here, but maybe not.
|
Copyright © 2007, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.