LFSCK Phase 3 - MDT-MDT Consistency Scope Statement

=Introduction=

The following scope statement applies to LFSCK 3: MDT-MDT Consistency Scope Statement project within the SFS-DEV-001 contract and associated modifications.

=Problem Statement=

MDT-MDT Consistency will add concurrent distributed verification and repair for DNE file systems. This will add functionality while the MDT is iterating over its inodes to check remote directories and files are referenced correctly. This includes cross-MDT references where the directory entry and inode are located on different MDTs. Incorrect back pointers and orphan inodes will be resolved when detected. This will allow complete checking of DNE file systems.

=Project Goals=


 * 1) Fix inconsistencies across a DNE file system.
 * 2) Characterize the performance of LFSCK without filesystem load.
 * 3) Characterize the performance of LFSCK with filesystem load.
 * 4) Land code to Lustre software Community Release master branch.

=In-Scope=

The following inconsistencies will be checked for and fixed:


 * Dangling name entry: The directory entry exists, but related MDT-object does not exist.
 * Orphan MDT-object: The MDT-object exists, but there is no directory entry to reference it.
 * Multiple-referenced name entry: More than one MDT-object points back to the same directory entry, but the directory entry only references one of them.
 * Unmatched name entry and MDT-object pairs: The directory entry references the MDT-object which has no linkEA for back-reference or points back to another directory entry that does not exist or does not reference the MDT-object.
 * Unmatched object type: The file type claimed by the directory entry does not match the type of the MDT-object itself.
 * Invalid nlink count: The MDT-object's nlink count does not match the number of directory entries that reference the MDT-object.
 * Invalid name hash for striped directory: The directory name entry is corrupted and causes the name hash for the striped directory does not match the LMV EA, or the name entry was inserted into the wrong directory shard.

The local e2fsck or ZFS metadata integrity checker will ensure that there are no local dangling nor local orphans. While LFSCK will scan the whole namespace and verify internal namespace consistency as much as possible, its focus is on detecting and repairing cross-MDT consistency issues that cannot be detected or repaired by the local consistency checker. Out of Scope

The ZFS-internal metadata integrity checker will not be designed nor implemented and as such, verifying the full consistency of a ZFS target file system (i.e. all the internal link counts, block references, directory hierarchy of a single MDT or OST) is beyond the scope of this project.

=Key Deliverables=


 * Milestone documents for project phases:
 * Solution Architecture.
 * Design Document.
 * Demonstration milestone.
 * Test Plan.
 * Land LFSCK code (including new test cases) for MDT-MDT consistency to Lustre master branch.