FaultyRank: A Graph-based Parallel File System Checker

Similar to local file system checkers such as e2fsck for Ext4, a parallel file system (PFS) checker ensures the file system's correctness. The basic idea of file system checkers is straightforward: important metadata are stored redundantly in separate places for cross-checking; inconsistent metadata will be repaired or overwritten by its ‘more correct' counterpart, which is defined by the developers. Unfortunately, implementing the idea for PFSes is non-trivial due to the system complexity. Although many popular parallel file systems already contain dedicated checkers (e.g., LFSCK for Lustre, BeeGFS-FSCK for BeeGFS, mmfsck for GPFS), the existing checkers often cannot detect or repair inconsistencies accurately due to one fundamental limitation: they rely on a fixed set of consistency rules predefined by developers, which cannot cover the various failure scenarios that may occur in practice.In this study, we propose a new graph-based method to build PFS checkers. Specifically, we model important PFS metadata into graphs, then generalize the logic of cross-checking and repairing into graph analytic tasks. We design a new graph algorithm, FaultyRank, to quantitatively calculate the correctness of each metadata object. By leveraging the calculated correctness, we are able to recommend the most promising repairs to users. Based on the idea, we implement a prototype of FaultyRank on Lustre, one of the most widely used parallel file systems, and compare it with Lustre's default file system checker LFSCK. Our experiments show that FaultyRank can achieve the same checking and repairing logic as LFSCK. Moreover, it is capable of detecting and repairing complicated PFS consistency issues that LFSCK can not handle. We also show the performance advantage of FaultyRank compared with LFSCK. Through this study, we believe FaultyRank opens a new opportunity for building PFS checkers effectively and efficiently.

[1]  Abdullah Al Raqibul Islam,et al.  A performance study of optane persistent memory: from storage data structures' perspective , 2022, CCF Transactions on High Performance Computing.

[2]  Om Rameshwar Gatla,et al.  Understanding configuration dependencies of file systems , 2022, HotStorage.

[3]  Abdullah Al Raqibul Islam,et al.  VCSR: Mutable CSR Graph Format Using Vertex-Centric Packed Memory Array , 2022, 2022 22nd IEEE International Symposium on Cluster, Cloud and Internet Computing (CCGrid).

[4]  Om Rameshwar Gatla,et al.  A Study of Failure Recovery and Logging of High-Performance Parallel File Systems , 2022, ACM Trans. Storage.

[5]  M. Snir,et al.  Pinpointing Crash-Consistency Bugs in the HPC I/O Stack: A Cross-layer Approach , 2021, SC21: International Conference for High Performance Computing, Networking, Storage and Analysis.

[6]  Mai Zheng,et al.  Fingerprinting the Checker Policies of Parallel File Systems , 2020, 2020 IEEE/ACM Fifth International Parallel Data Systems Workshop (PDSW).

[7]  Dong Dai,et al.  A Performance Study of Lustre File System Checker: Bottlenecks and Potentials , 2019, 2019 35th Symposium on Mass Storage Systems and Technologies (MSST).

[8]  Robert Mateescu,et al.  Towards Robust File System Checkers , 2018, FAST.

[9]  Yong Chen,et al.  PFault: A General Framework for Analyzing the Reliability of High-Performance Parallel File Systems , 2018, ICS.

[10]  Wei Zhang,et al.  GraphMeta: A Graph-Based Engine for Managing Large-Scale HPC Rich Metadata , 2016, 2016 IEEE International Conference on Cluster Computing (CLUSTER).

[11]  Jure Leskovec,et al.  {SNAP Datasets}: {Stanford} Large Network Dataset Collection , 2014 .

[12]  Andrea C. Arpaci-Dusseau,et al.  Ffsck: the fast file system checker , 2013, FAST.

[13]  George Candea,et al.  Scalable testing of file system checkers , 2012, EuroSys '12.

[14]  Robert Latham,et al.  Understanding and improving computational science storage access through continuous characterization , 2011, 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST).

[15]  Andrea C. Arpaci-Dusseau,et al.  End-to-end Data Integrity for File Systems: A ZFS Case Study , 2010, FAST.

[16]  Philip C. Roth,et al.  Characterizing the I/O behavior of scientific applications on the Cray XT , 2007, PDSW '07.

[17]  David R. O'Hallaron,et al.  //TRACE: Parallel Trace Replay with Approximate Causal Events , 2007, FAST.

[18]  Franco Scarselli,et al.  Inside PageRank , 2005, TOIT.

[19]  Frank B. Schmuck,et al.  Proceedings of the Fast 2002 Conference on File and Storage Technologies Gpfs: a Shared-disk File System for Large Computing Clusters , 2022 .

[20]  Jeffrey S. Vetter,et al.  Statistical scalability analysis of communication operations in distributed applications , 2001, PPoPP '01.

[21]  Robert B. Ross,et al.  PVFS: A Parallel File System for Linux Clusters , 2000, Annual Linux Showcase & Conference.

[22]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[23]  Om Rameshwar Gatla,et al.  ConfD: Analyzing Configuration Dependencies of File Systems for Fun and Profit , 2023, FAST.

[24]  Sudarsun Kannan,et al.  pFSCK: Accelerating File System Checking and Repair for Modern Storage , 2021, FAST.

[25]  Mai Zheng,et al.  Understanding the Fault Resilience of File System Checkers , 2017, HotStorage.

[26]  Remzi H. Arpaci-Dusseau,et al.  Usenix Association 8th Usenix Symposium on Operating Systems Design and Implementation 131 Sqck: a Declarative File System Checker , 2022 .