FUSEing Python for Development of Storage Efficient Filesystem

Vishal Kanaujia, Chetan Giridhar

Abstract

Filesystem is a core component of a functional operating system. Traditional Filesystem development has been confined to the kernel space. A customized, purpose-built, and user-driven Filesystem development involves extensive knowledge of kernel internals, tools and processes. Alternatively, user-space Filesystems are preferred over the kernel space Filesystem, for ease of development, portability and developing prototypes Filesystems, particularly for intuitive abstraction of non-file objects.

This paper proposes usage of FUSE kernel module to develop a functional Filesystem in user-space, titled seFS. Apart from offering convenience of user-space development, FUSE allows on-par features and functionality of a kernel space Filesystem. We demonstrate development of a Filesystem in Python on Ubuntu 11.04 system with Python-Fuse bindings.

seFS Filesystem abstracts a SQLite database to store files data and metadata. By developing a Filesystem with Python-FUSE, we quickly solved the problem of efficient data management with online de-duplication and data compression. We discuss the internals of FUSE, its operation and implementation in this paper.