Configurable Stackable Filesystem Runtime Configuration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing stackable filesystems lack configurability to perform various operations on files and directories without disrupting user processes, fail to provide a uniform interface for other layers, and do not prevent applications from bypassing data access in the underlying filesystem, nor allow users to access encrypted files in their ciphertext form for backup purposes.
Innovation Solution
A configurable and stackable filesystem (CSF) that operates in kernel space, interacting with lower-level filesystems via a standardized Unix-like interface, allowing dynamic configuration at runtime without unmounting, performing operations like logging, encryption, and rate-limiting, while preventing direct access to the underlying filesystem and enabling access to encrypted files in their ciphertext form for backup.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If existing stackable filesystems are used to perform operations on files and directories, then certain filesystem tasks can be performed, but configurability to perform various operations without disrupting user processes is lacking
Solution Approach 1:
The filesystem layer is designed to be dynamically configurable at runtime through configuration files that can be loaded without unmounting the filesystem. This allows the system to adapt its behavior and operations based on changing requirements while user processes continue to run uninterrupted, resolving the contradiction between configurability and operational continuity.
Solution Approach 2:
A standardized Unix-like interface layer is introduced between the configurable operations and the underlying filesystem. This intermediary interface allows various operations to be performed through a uniform mechanism without requiring changes to existing user processes or direct access to the underlying filesystem, enabling configurability while maintaining ease of operation.
2Adaptability or versatility
If existing stackable filesystems are used, then filesystem operations can be performed, but a uniform interface for other layers is not provided
Solution Approach 1:
The filesystem implements a universal Unix-like interface that can handle multiple operations (logging, encryption, rate-limiting, etc.) through a single standardized mechanism. This universal interface reduces complexity by providing a consistent way to interact with the filesystem regardless of the specific operation being performed, while still supporting diverse functionality.
3Reliability
If direct access to underlying filesystem is allowed, then applications can access files efficiently, but bypassing of the filesystem layer cannot be prevented
Solution Approach 1:
The standardized Unix-like interface acts as an intermediary that all file access requests must pass through. This intermediary layer ensures filesystem integrity by maintaining control over all operations while providing efficient access paths for legitimate requests, preventing bypasses without significantly impacting productivity.
Solution Approach 2:
The interface provides different access paths and optimization levels for different types of operations. Common operations can use optimized paths for efficiency, while maintaining the ability to enforce integrity checks when needed, thus achieving both reliability and productivity through localized quality adjustments.
4Reliability
If encrypted files are stored in the underlying filesystem, then security is improved, but users cannot access encrypted files in their ciphertext form for backup purposes
Solution Approach 1:
The standardized interface provides a controlled mechanism for backup operations to access encrypted files in ciphertext form. This intermediary access path maintains security by requiring proper authentication and authorization while enabling backup functionality, thus resolving the contradiction between security and backup accessibility.
Data Source
AI summary
Techniques are disclosed for a configurable stackable filesystem (CSF) that interfaces with an underlying filesystem and client applications via a virtual filesystem interface (VFS). The CSF can perform a variety of operations on its files and directories. The operations implemented by the CSF can be configured to be performed via a configuration file on the specified files/directories. These operations comprise monitoring/logging including permissions and access control lists (ACL) changes, encryption, compression, rate-limiting and time-of-use enforcement, etc. The configuration file can be updated and loaded into the CSF with immediate effect at runtime, and without requiring to unmount the CSF and disrupting the processes using it. The CSF itself is advantageously modularly implemented as multiple layers or individual CSFs each specializing in one type of operation.


