Block Snapshot Storage Using Free Blocks and Trim Interception
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Preserving snapshots of data on storage devices can quickly consume available storage space, leading to reduced system performance and user dissatisfaction.
Innovation Solution
A computing device intercepts trim commands to identify free blocks on the storage device and uses these blocks to store snapshots without reducing the apparent available storage capacity, thereby maintaining snapshots transparently without requiring additional space.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If snapshots are stored on the same storage device as original data, then snapshot preservation is achieved, but available storage space is quickly consumed
Solution Approach 1:
The patent extracts the snapshot storage function from the main file system storage space. By intercepting trim commands and identifying free blocks that are no longer needed by the file system, the system separates snapshot data storage from active file system data storage. This allows snapshots to be preserved without consuming space that the file system needs for its operations.
Solution Approach 2:
The patent introduces an intermediary mechanism between the file system and storage device - specifically, a trim command interceptor that monitors and manages free block allocation. This intermediary layer identifies when blocks become free through trim commands and reallocates them for snapshot storage, mediating between the file system's space release and the snapshot system's space needs without either party knowing about the other's operations.
2Quantity of substance
If additional storage devices are used for snapshots, then storage space is preserved, but system complexity increases
Solution Approach 1:
The patent makes the existing storage device serve multiple functions: it stores both active file system data and snapshot data using the same physical blocks at different times. The storage device is universally used for both purposes without requiring dedicated snapshot storage hardware, thereby avoiding increased system complexity while still preserving storage space for snapshots.
Solution Approach 2:
The system uses its own free blocks - blocks that the file system has already released and marked as unused - to store snapshots. Rather than requiring external or additional storage resources, the storage system serves its own snapshot needs by recycling its own freed space, eliminating the need for additional storage devices or complex external storage management.
3Quantity of substance
If free blocks are used for snapshots, then storage space efficiency is improved, but file system transparency is compromised
Solution Approach 1:
The trim command interceptor acts as an intermediary that allows the system to use free blocks for snapshots while maintaining file system transparency. The interceptor captures trim commands before they reach the storage device, identifies the resulting free blocks, and allocates them for snapshot storage. The file system remains unaware of this process and continues to operate transparently, seeing only its own free space management.
Solution Approach 2:
The patent extracts the transparency-maintaining function from the file system itself and places it in the intermediary trim command interceptor. By removing the need for the file system to directly manage or know about snapshot storage, the file system maintains its transparency while the system still achieves high storage space efficiency through clever use of free blocks.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A processor of a computing device is described that intercepts a write command output from a file system, the write command specifying new data to be written to a particular group of blocks of a storage device. The processor determines, based on a record of free blocks of the storage device, that the particular group of blocks of the storage device include one or more free blocks that are currently storing snapshot data as old data. Responsive to determining that the particular group of blocks of the storage device include one or more free blocks that are currently storing snapshot data as old data, the processor moves the old data to other free blocks of the storage device, and after moving the old data to the other free blocks, the processor forwards the write command to the storage device to write the new data to the particular group of blocks.