Directory Inode Virtualization for Filesystem Snapshots
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage systems face challenges in creating directory-level snapshots within a filesystem, as they often rely on external tools and do not efficiently manage modifications to directories, leading to potential data inconsistencies between snapshot views.
Innovation Solution
The implementation of a directory inode mapping file that associates directory virtual inode numbers with real inode numbers, allowing for the creation of snapshots by copying and splitting directory real inode data structures, enabling separate views for modified and unmodified directories while maintaining data integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If external volume management tools are used for snapshots, then snapshot functionality is achieved, but device complexity and reliance on external tools increases
Solution Approach 1:
The filesystem itself provides snapshot functionality through native inode splitting capability, eliminating the need for external volume management tools. The system serves its own snapshot needs by managing directory views internally through inode duplication and splitting mechanisms.
Solution Approach 2:
The inode structure serves multiple functions: it acts as both the standard filesystem index node and the snapshot mechanism carrier. By embedding snapshot capability within the existing inode system, the same infrastructure handles both normal filesystem operations and snapshot creation without requiring separate external tools.
2Ease of operation
If directory snapshots are created at any level, then snapshot accessibility is improved, but data consistency between views becomes difficult to maintain
Solution Approach 1:
The directory inode is segmented into separate views through duplication. When a snapshot is created, a new inode is allocated and copied from the original, allowing independent modification of one view without affecting others. This segmentation enables directory-level snapshots at any depth while maintaining consistency through controlled duplication.
Solution Approach 2:
The inode duplication and splitting process is performed in advance during snapshot creation, establishing separate data paths before any modifications occur. This preliminary action ensures that subsequent write operations to one directory view cannot propagate to other views, preserving data consistency.
3Quantity of substance
If shared file data is indexed by the same inode, then storage efficiency is improved, but modification isolation between views is lost
Solution Approach 1:
The shared file data is segmented at the inode level when a snapshot is created. By duplicating the inode structure, the system creates separate inode instances for different views while maintaining efficiency through copy-on-write semantics. This allows multiple views to share initial data but isolate modifications.
Solution Approach 2:
The system changes the inode reference parameter dynamically based on the operation type. For read operations, inodes point to shared data blocks for efficiency. For write operations, the inode is split to create isolated copies. This parameter change strategy balances storage efficiency with modification isolation.
Data Source
AI summary
Described is a technology that facilitates directory level snapshots at any level of a filesystem's namespace. A directory inode mapping file associates a first directory's virtual inode number(s) with real inode number(s). A snapshot of the first directory creates a second directory with a second directory inode mapping file copied from the first directory inode mapping file, thereby sharing the real inode data structure(s) of the first directory. In the event that one of the directories is to be modified, the directory real inode is split to provide a new directory real inode file for the to-be-modified directory, with the modification after the split.


