Dynamic Virtual Storage Volume Adjustment via Chunk Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional approaches to increasing the size of a virtual storage volume or moving data from a full pool to an empty one involve significant 'unnecessary' data movement, which is wasteful and inefficient, especially when volumes are striped.
Innovation Solution
The proposed solution involves storing volumes and replicas as 'chunks' across storage nodes in a storage cluster, allowing for dynamic adjustment of chunk sizes on the fly. This enables the system to increase the size of a virtual storage volume by adding new chunks without moving data, and to move data from a full pool to a new pool by reducing chunk sizes and redistributing data across new chunks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If conventional approaches are used to increase the size of a virtual storage volume or move data from a full pool to an empty one, then the storage capacity is increased, but significant unnecessary data movement occurs which is wasteful and inefficient
Solution Approach 1:
The virtual storage volume is divided into multiple fixed-size chunks distributed across storage pools. This segmentation allows the system to add storage capacity by adding new chunks without requiring movement of existing data, thereby resolving the contradiction between increasing storage capacity and minimizing unnecessary data movement.
Solution Approach 2:
The system dynamically adjusts the number of chunks allocated to a virtual storage volume based on storage needs. When capacity must be increased, new chunks are added to the volume without moving existing data, enabling dynamic scaling while avoiding the inefficiency of conventional data migration approaches.
2Stability of the object's composition
If data is moved from a full pool to an empty pool in conventional systems, then storage balance is achieved, but volume downtime occurs and significant data movement is required
Solution Approach 1:
By segmenting the storage volume into fixed-size chunks, the system can rebalance storage by redistributing only specific chunks between pools rather than moving entire volumes. This allows storage balance to be achieved without taking the volume offline, eliminating downtime while maintaining data availability.
Solution Approach 2:
The system performs partial data movement by transferring only the necessary chunks between pools rather than moving all data. This partial action approach achieves storage balance while minimizing the amount of data transferred and avoiding complete volume downtime.
3Productivity
If volumes are striped across storage pools, then storage efficiency is improved, but data movement becomes more complex and wasteful when scaling
Solution Approach 1:
The striped volume is segmented into fixed-size chunks that can be independently managed. When scaling storage capacity, new chunks are added to the striped distribution without requiring complex repartitioning or movement of existing striped data, thereby maintaining storage efficiency while reducing data movement complexity.
Solution Approach 2:
The system changes the parameter of chunk count rather than chunk size or stripe configuration when scaling storage. This parameter change approach allows storage efficiency to be maintained while avoiding the complexity of reconfiguring striped data distributions.
Data Source
AI summary
A virtual storage volume may be implemented as one or more chunks stored on a set of storage nodes. The virtual storage volume may be dynamically adjusted by adjusting the one or more chunks that make up the virtual storage volume, without taking the virtual storage volume offline. Such dynamic volume adjustment may allow for increasing volume size without moving data unnecessarily. In addition or alternatively, such dynamic volume adjustment may free up storage space in a node with minimum movement of data.


