Extent Pool Allocation via File System Instance Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing systems, the I/O blender effect leads to inefficiencies such as increased read latencies and data fragmentation, which can result in system failures and extra work for parity-based RAID systems when multiple virtual machines write to shared storage resources concurrently.
Innovation Solution
The system identifies and allocates data from the same virtual machine to a specific extent pool using a file system instance identifier, keeping data together and reducing fragmentation by grouping allocations, thereby decreasing the I/O blender effect and associated inefficiencies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple virtual machines write to shared storage resources concurrently, then storage resource utilization is improved, but data fragmentation increases and read latencies increase
Solution Approach 1:
The storage system is segmented into multiple extent pools, with each pool dedicated to specific file system instances. This segmentation isolates I/O operations from different virtual machines, preventing the I/O blender effect while maintaining high storage utilization through parallel access to multiple pools.
Solution Approach 2:
A file system instance identifier acts as an intermediary between virtual machines and extent pools. This identifier maps each virtual machine's I/O operations to a specific extent pool, ensuring that data from the same virtual machine is allocated to the same pool without requiring complex real-time coordination.
2Productivity
If data from multiple virtual machines is allocated to the same extent pool, then storage efficiency is improved, but data fragmentation increases
Solution Approach 1:
The extent pool is segmented into regions associated with specific file system instances. Each file system instance's data is allocated to its designated region, maintaining contiguity within that region while allowing other instances to use other regions, thus preventing fragmentation across the entire pool.
Solution Approach 2:
Different regions of the extent pool have different quality characteristics tailored to specific file system instances. Each region is optimized for its associated instance's I/O patterns, ensuring that data from the same instance remains localized and contiguous while the overall pool maintains high utilization.
3Device complexity
If the system uses a single extent pool for all virtual machines, then device complexity is reduced, but the I/O blender effect increases
Solution Approach 1:
The single extent pool is logically segmented into multiple regions, each associated with a specific file system instance. This logical segmentation prevents the I/O blender effect by directing each instance's I/O operations to its designated region, while the physical pool structure remains simple and unified.
Solution Approach 2:
The file system instance identifier serves as an intermediary that maps virtual machine I/O operations to specific regions within the extent pool. This intermediary mechanism maintains simple device structure while effectively preventing the I/O blender effect through deterministic allocation.
Data Source
AI summary
Example implementations relate to allocating an I/O request. In an example, a demultiplexer may forward an I/O request to a file system instance to which the I/O request belongs. The file system instance may tag the I/O request with a file system instance identifier associated with that file system instance. A volume manager may identify an extent pool to which the I/O request is to be allocated from among a plurality of extent pools of a storage based on the file system instance identifier tagged to the I/O request.


