Cluster Consistency Checker for Global Deduplication File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In a clustered storage system with a global de-duplication file system, failures can lead to inconsistencies across the layered file system, necessitating an efficient mechanism to validate and repair on-disk structures to ensure self-consistency and inter-layer consistency.
Innovation Solution
A cluster-wide consistency checker is implemented, utilizing a Map Reducer Engine (MRE) to reconcile inconsistencies between the extent store and volume layer file systems by verifying and repairing on-disk data structures, replaying logs, and correcting reference counts, ensuring self-consistency of each layer and their mutual consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If a global de-duplication file system is implemented across a clustered storage system, then storage efficiency is improved through reduced redundancy, but system consistency and reliability deteriorate due to potential failures across multiple nodes
Solution Approach 1:
The file system is divided into multiple layers (extent store layer and volume layer) with separate consistency checkers for each layer. This segmentation allows independent validation of each layer's data structures while maintaining global de-duplication benefits across the cluster.
Solution Approach 2:
A Map Reducer Engine (MRE) acts as an intermediary to reconcile inconsistencies between the extent store layer and volume layer. The MRE processes key-value pairs from both layers, identifies mismatches, and repairs inconsistencies, ensuring inter-layer consistency without compromising the global de-duplication architecture.
2Reliability
If consistency checking is performed across the entire clustered file system, then data integrity is improved, but processing time and computational resources worsen
Solution Approach 1:
The consistency checking process is segmented into layer-specific checkers (extent store consistency checker and volume layer consistency checker) that operate independently on their respective layers. This parallelization reduces overall checking time compared to a monolithic approach.
Solution Approach 2:
Each layer performs preliminary consistency validation on its own data structures before inter-layer reconciliation is needed. The extent store checker validates hash table consistency, while the volume layer checker validates dense tree consistency, preparing data for efficient MRE processing.
3Productivity
If layer-specific consistency checkers are implemented, then checking efficiency is improved through specialized validation, but system complexity worsens due to multiple checker components
Solution Approach 1:
Despite having layer-specific checkers, the system uses a universal reconciliation mechanism through the Map Reducer Engine that handles inconsistencies between layers. The MRE serves multiple functions: detecting mismatches, repairing inconsistencies, and maintaining global consistency across the clustered file system.
Data Source
AI summary
A cluster-wide consistency checker ensures that two file systems of a storage input/output (I/O) stack executing on each node of a cluster are self-consistent as well as consistent with respect to each other. The file systems include a deduplication file system and a host-facing file system that cooperate to provide a layered file system of the storage I/O stack. The deduplication file system is a log-structured file system managed by an extent store layer of the storage I/O stack, whereas the host-facing file system is managed by a volume layer of the stack. Illustratively, each log-structured file system implements a key-value store and cooperates with other nodes of the cluster to provide a cluster-wide (global) key-value store. The consistency checker verifies and/or fixes on-disk structures of the layered file system to ensure its consistency. To that end, the consistency checker may determine whether there are inconsistencies in the key-value store and, if so, reconciles those inconsistencies from a client (volume layer) perspective.


