Parallelized LBA Table Recovery in Virtual Storage Networks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing Virtual Storage Area Network (VSAN) systems face challenges in data recovery after a system failure, as the recovery process is lengthy due to the serial processing of I/O log data and the reliance on a single LBA table, leading to extended downtime.
Innovation Solution
Implementing a plurality of LBA tables that map logical block addresses to physical addresses across multiple capacity tier disks, allowing for parallelization of the data recovery process, thereby reducing the time required for system availability post-failure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single LBA table is used to map logical block addresses to physical addresses, then the data structure is simple and easy to manage, but the recovery process becomes lengthy and time-consuming due to serial processing
Solution Approach 1:
The single LBA table is divided into multiple LBA tables, where each table manages a portion of the address space. This segmentation enables parallel processing during recovery operations, as multiple tables can be reconstructed simultaneously from different portions of the log data, significantly reducing overall recovery time while maintaining manageable complexity for each individual table
2Device complexity
If log data is processed serially to reconstruct the LBA table, then the processing logic is simple, but the recovery process takes an hour or more to complete
Solution Approach 1:
The log data is divided into multiple segments that correspond to different LBA tables. Each segment can be processed independently and in parallel by separate processing threads or processes, transforming the single-threaded serial processing into a multi-threaded parallel processing system that achieves linear or near-linear speedup
Solution Approach 2:
The log data is pre-organized and structured in advance during normal operation, with entries arranged in a format that facilitates efficient parallel reconstruction. This preliminary organization of data into manageable chunks with proper indexing and metadata allows recovery processes to immediately begin parallel processing without requiring complex coordination or data reorganization
3Quantity of substance
If a single LBA table stores all mappings, then memory usage is optimized, but system downtime during failure recovery is extended
Solution Approach 1:
The address space is divided into multiple segments, each managed by a separate LBA table stored in memory. This segmentation allows the system to recover multiple segments in parallel after a failure, reducing overall recovery time. The memory overhead is justified by the significant reduction in system downtime and improved availability
Solution Approach 2:
The system transitions from a single-dimensional recovery approach (one table, one process) to a multi-dimensional approach (multiple tables, multiple processes operating in parallel). This dimensional expansion in the recovery architecture enables simultaneous reconstruction of multiple LBA tables, fundamentally changing the recovery timeline from sequential to parallel execution
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Some implementations herein relate to data storage. For example, a method may include receiving a first input/output (I/O) operation indicating a first logical block address (LBA) of a single address space, where the single address space corresponds to storage across a first plurality of storage devices. The method may also include determining that a first LBA table of a plurality of LBA tables is associated with the first LBA, where each of the plurality of LBA tables is associated with a different corresponding portion of the single address space. The method may include storing data corresponding to the first I/O operation at a first physical address of a first storage device of a second plurality of storage devices. Additionally, the method may include adding a first entry to the first LBA table, the first entry mapping the first LBA to the first physical address.