hubertf's NetBSD Blog
Send interesting links to hubert at feyrer dot de!
[20080302] Wasabi Systems contributes journaling support for FFS
While NetBSD's Fast File System (FFS) is all fine and dandy, one major drawback is that if the system does down unexpectedly, the filesystem is in an unknown state, and it has to be checked on the next system startup. Those fsck(8) runs can take quite some time, which is highly unpleasant. Alternatives include running fsck(8) in the background, and -- as implemented by the majority of filesystems today -- keeping the actual filesystem in a consistent state, and first writing changes to a journal which is then applied to the filesystem in a second step. If a crash occurs, the file system is in a consistent state, either at the point in time before the journal was started, or after it was finished. If the system crashes in between, the changes can be undone. See Wikipedia's entry on journaling file systems for more details.

So far, NetBSD has offered the Log-structured File System (LFS) for logging, but that never went beyond experimental state.

Wasabi Systems, vendor offering NetBSD-based storage solutions, has offered a version of FFS that does journaling for some time, and they have contributed their implementation to the NetBSD project now, as announced by Wasabi Systems' Simon Burge: ``Wasabi Systems Inc is pleased to make our journaling code available to the NetBSD community. This code is known as WAPBL - Write Ahead Physical Block Logging, and has been used to provide meta-data journaling in production environments for over 4 years. WAPBL journals meta-data only - not file data, and has been used on filesystems ranging from from 16MB to multiple terabytes in size.''

Please see Simon's posting for more information about the state of the code, how it works, and how to use it.

While here, one could be musing why Wasabi is contributing this to the NetBSD project at this time. The file system code this is based on is under the BSD license, so adding e.g. journaling can be kept private and there's no need to publish those changes. But software is a moving target, and so is NetBSD's file system implementation, which is undergoing great changes for fine-grained in-kernel locking and SMP right now. This means large maintenance efforts for derived code, and one could guess that Wasabi choose the step to contribute the code to the NetBSD project to get this maintenance for free. Of course the benefit to the community is that there's a journaling file system available now. Which I find is great! :-)

[Tags: , ]

Disclaimer: All opinion expressed here is purely my own. No responsibility is taken for anything.

Access count: 24527335
Copyright (c) Hubert Feyrer