Kernel Support for Stackable File SystemsJosef Sipek (firstname.lastname@example.org)
Although it is possible to use stackable (layered) file systems in Linux today, there are several issues that should be addressed to make stacking more reliable and efficient. Some of these issues stem from the fact that the Linux kernel has not been designed with stacking. To support stacking properly, some changes to the VFS and VM subsystems may be required.
One of the major issues involves the modification of lower file system. Currently, if the lower file system is modified, the upper (stacked) file system is not immediately aware of the changes. This cache inconsistency can lead to system instability or even data loss. We are working on a simple and clean way of allowing the VFS and VM to coordinate among those caches.
Another issue is the code duplication present in many stackable file systems today (such as eCryptfs, Unionfs, and our upcoming cachefs). The 2.6.20 kernel introduced a new file: fs/stack.c, which contains several useful helper functions; we are working on further abstractions to the stacking API in Linux.
In this paper we discuss some issues and solutions proposed at the Linux Storage and Filesystems workshop in February, our ongoing work on stacking support for Linux, and report our progress on several stackable file systems in particular.