Virtualized Storage Block Allocation via Metadata Tagging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized environments, storage block allocation techniques often lead to physical fragmentation due to delayed allocation of storage blocks, which can result in non-contiguous physical layout of data blocks that should be accessed sequentially, affecting access speed and compatibility with services like de-duplication and snapshotting.
Innovation Solution
A method that identifies and allocates storage blocks based on metadata tags, prioritizing blocks that were initially written together to increase the likelihood of contiguous physical storage, and includes defragmentation mechanisms to address residual fragmentation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If delayed allocation of storage blocks is used to achieve sparse allocation and over-commit goals, then storage utilization is improved, but physical fragmentation increases
Solution Approach 1:
The patent applies preliminary action by pre-establishing metadata tags on storage blocks during initial allocation, marking them with information about their original allocation context. This tagging happens in advance before writes occur, enabling future allocation decisions to reference these pre-established tags and maintain spatial locality without delaying the sparse allocation benefits.
Solution Approach 2:
The patent implements feedback by using metadata tags that track the allocation history and spatial relationships of storage blocks. When allocating new blocks, the system references these tags to identify blocks that were originally allocated together, creating a feedback loop that maintains spatial locality information and uses it to guide subsequent allocation decisions, thereby reducing fragmentation while preserving storage utilization efficiency.
2Stability of the object's composition
If large storage block sizes are used to reduce fragmentation, then physical contiguity is improved, but storage service efficiency deteriorates
Solution Approach 1:
The patent applies segmentation by dividing the storage space into smaller blocks while using metadata tags to track which blocks should be physically contiguous. This allows the system to maintain fine-grained block sizes for storage service efficiency while using the tagging mechanism to achieve physical contiguity where needed, rather than using uniformly large blocks that would harm service efficiency.
Solution Approach 2:
The patent implements local quality by applying physical contiguity only to specific blocks that share the same metadata tag (indicating they were originally allocated together), rather than enforcing uniform large block sizes across all storage. This localized approach to contiguity maintains storage service efficiency for individual blocks while achieving contiguity where it matters for performance.
3Speed
If sequential allocation of storage blocks is used to maintain spatial locality, then access speed is improved, but storage flexibility deteriorates
Solution Approach 1:
The patent uses metadata tags as an intermediary between the allocation system and physical storage layout. The tags store spatial locality information without constraining the allocation system to sequential allocation, allowing flexible allocation decisions while maintaining the ability to identify and physically co-locate blocks that should be accessed together, thus preserving both access speed and storage flexibility.
Data Source
AI summary
A virtualized storage stack includes logical layers above the physical storage layer. Each logical layer allocates data blocks, and the data block allocation is propagated down to the physical storage layer. To facilitate contiguous storage, each layer of the virtualized storage stack maintains additional metadata associated with data blocks. For each data block, the metadata indicates whether the data block is free, provisioned and includes a tag that indicates when the data block was first written. Data blocks that were first written as part of the same write request share the same tag, and are mostly guaranteed to be physically co-located. Block allocations that reuse data blocks having the same tag are preferred. Such preference increases the likelihood of the blocks being contiguous in the physical storage as these blocks were allocated as part of the same first write.


