Block Device Rehydration via Thinly-Provisioned Backup Linking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems for recovering block devices from data loss or corruption often result in significant delays due to the need to rebuild the entire snapshot chain, making them unavailable to clients during disaster recovery scenarios.
Innovation Solution
A block device rehydration manager creates a thinly provisioned new block device image linked to a backup snapshot chain, allowing near-instant recovery and concurrent access while reconstructing the snapshot chain in the background.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire snapshot chain is rebuilt to recover a block device, then data integrity and historical recovery are ensured, but system downtime increases significantly
Solution Approach 1:
The system performs preliminary actions by creating a new thinly-provisioned block device image that is pre-configured with metadata structures and linked to external backup snapshots before actual data recovery begins. This allows the recovery process to start immediately without waiting for complete snapshot chain reconstruction, thus reducing system downtime while maintaining data integrity through subsequent background synchronization.
Solution Approach 2:
The recovery process is segmented into two independent phases: an immediate phase where a new block device image is created and linked to external backups, and a background phase where the complete snapshot chain is reconstructed. This segmentation allows clients to access data immediately through the new image while the full historical recovery proceeds separately in the background, resolving the contradiction between speed and completeness.
2Productivity
If a new thinly-provisioned block device image is created and linked to external backups, then system availability improves, but device complexity increases
Solution Approach 1:
A new thinly-provisioned block device image serves as an intermediary between clients and external backup snapshots. This intermediary structure allows clients to access recovered data immediately without directly interacting with the complex snapshot chain reconstruction process, while simultaneously enabling the background recovery to proceed without client interference. The intermediary simplifies the client interface while managing the complexity internally.
Solution Approach 2:
Instead of directly restoring from complex snapshot chains, the system creates a copy structure - a new thinly-provisioned block device image that references external backups. This copying approach separates the access path from the recovery path, allowing simplified client access while the complex reconstruction happens independently in the background, thus improving availability without exposing complexity to users.
3Loss of time
If the snapshot chain is reconstructed in the background concurrently with data access, then recovery time is reduced, but data consistency challenges arise
Solution Approach 1:
The system dynamically adapts the data access path based on recovery progress. Initially, clients access data through the new thinly-provisioned image linked to external backups. As the background snapshot chain reconstruction progresses and completes, the system dynamically transitions the access path to the fully reconstructed local snapshot chain, ensuring data consistency while minimizing recovery time through concurrent operations.
Solution Approach 2:
The system implements feedback mechanisms to monitor the background snapshot chain reconstruction progress and adjust data access accordingly. The recovery manager continuously tracks reconstruction status and uses this feedback to determine when the transition from external backup access to local snapshot access should occur, ensuring data consistency while maintaining reduced recovery times through informed dynamic decision-making.
Data Source
AI summary
Systems and methods for providing rehydration of a block storage device from external storage are disclosed. In one implementation, a processing device may receive, from a client computing device, a request to access a portion of data associated with a block-based repository in a distributed storage system, where the block-based repository is associated with an external data source that stores a backup of the block-based repository; determine that the portion of data is not present in the block-based repository; retrieve the portion of data from the external data source; provide the portion of data to the client computing device; and perform deep rehydration of the requested portion of data, wherein the deep rehydration reconstructs the portion of data in the block-based repository using the external data source.


