File System Free Block Windows for Storage Fragmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data storage systems, the fragmentation of storage leads to performance bottlenecks due to the lack of contiguous free block sets, which hinders efficient allocation of storage for file systems, especially in systems using thin or virtually provisioned LUNs where physical storage is not fully backed by capacity.
Innovation Solution
A method is introduced to create windows of free blocks in a file system by selecting slices based on trigger conditions and relocating data from partially free windows to target locations, ensuring that the selected slices meet specific criteria such as low allocation reference cursor presence, low consumption of file system blocks, and sufficient free blocks, thereby freeing up contiguous areas for future allocations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is continuously allocated in storage devices, then storage capacity is fully utilized, but storage fragmentation increases and performance deteriorates
Solution Approach 1:
The system proactively creates windows of free blocks before they are completely consumed by allocating a portion of the window as a reserve. This preliminary action prevents future fragmentation by ensuring contiguous free space is available before allocation requests arrive, thereby maintaining both high storage utilization and good allocation performance
Solution Approach 2:
The system dynamically adjusts the size of free block reserves in windows based on allocation patterns and fragmentation levels. By changing the parameter of reserve block quantity, the system optimizes the balance between maintaining performance (through adequate reserves) and maximizing utilization (by not over-reserving), resolving the contradiction between capacity utilization and allocation speed
2Quantity of substance
If thin provisioning is used to increase storage efficiency, then physical storage capacity is optimized, but the lack of contiguous free blocks hinders efficient allocation
Solution Approach 1:
The storage space is divided into multiple windows, each containing a portion of free blocks reserved for future allocations. This segmentation allows the system to maintain thin provisioning efficiency while ensuring each window has sufficient contiguous free space for efficient allocation operations, thereby resolving the contradiction between physical storage efficiency and allocation ease
Solution Approach 2:
The window reserve structure acts as an intermediary between the thin provisioning system and allocation requests. By maintaining reserved free blocks within windows, this intermediary layer enables efficient contiguous block allocation without requiring full physical provisioning, thus bridging the gap between storage efficiency and allocation ease
3Productivity
If storage blocks are relocated to create free windows, then contiguous free block sets are created, but processing time and system resources are consumed
Solution Approach 1:
Instead of relocating blocks to create entirely free windows, the system performs partial action by creating only a portion of free blocks (a reserve) within each window. This partial action is sufficient to enable efficient allocation without the excessive time cost of completely clearing windows, thus resolving the contradiction between allocation efficiency and processing time
Solution Approach 2:
The window reserve structure serves multiple functions simultaneously: it provides contiguous free space for efficient allocation, acts as a buffer against future fragmentation, and enables thin provisioning to work effectively. This multi-functionality achieves storage allocation efficiency without requiring extensive block relocation operations
Data Source
AI summary
Described are techniques for creating windows of free blocks in a file system selected in accordance with trigger conditions. A first slice is selected, in accordance with slice selection criteria, from a plurality of slices of storage provisioned for use by the file system. First processing is performed on the first slice that creates at least one window of free blocks in the first slice for use by the file system. It is determined, in accordance with termination criteria, whether to process one or more additional slices of the file system to create additional windows of free blocks for use by the file system. Such processing to create free windows may be subject to various limits of resource consumption.


