GithubHelp home page GithubHelp logo

data-storage-lab / rfsck Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 0.0 21.96 MB

Testing the fault resilience of file system checkers and ensuring transactional repairs [TOS'18, FAST'18, HotStorage'17]

Home Page: https://github.com/data-storage-lab/rfsck

Makefile 7.00% M4 0.55% C 72.22% Shell 4.24% Roff 9.71% C++ 0.07% Python 0.04% sed 0.07% TeX 4.81% Awk 0.14% Yacc 0.08% Scilab 0.01% Perl 0.78% HTML 0.30%
checkers fault-tolerance file-systems storage transaction fault-resilience data

rfsck's Introduction

README

This repository contains the research prototype for the RFSCK project and the following publications:

rfsck-lib: Generic Redo Log Library

This repository consists of the source code for a generic redo log, which can be easily integrated to existing file system checkers to provide logging mechanism and make them fault resilient. We have published our paper titled "Towards Robust File System Checkers" at FAST'18, and it contains detailed information about the analysis and implementation of rfsck-lib. [Paper PDF]

In addition to the source code we also provide the following prototypes in this repo:

  1. rfsck-ext is an example of how we integrated rfsck-lib with e2fsck. The source files of the log file are copied into the folder rfsck-ext/lib/ext2fs/. Then redo.h is imported into various header files.

    A grep on the function names would show you how we have integrated rfsck-lib with e2fsck.

    In this example we have provided safe transactions for all the updates in each pass.

  2. rfsck-xfs is an example of how we integrated rfsck-lib with xfs_repair. Similar to rfsck-ext, we have copied the redo log files to folder rfsck-ext/xfslib/, and then included redo.h into various header files.

    In this example we consider updates of the entire run of xfs_repair as one transaction

  3. e2fsck-patch is a simple fix to make e2fsck robust. To achieve this, we synchronize the updates to the undo log.

rfsck-test: Fault Injection Framework

To test the resilience of rfsck-lib, we use a fault injection framework that records iSCSI commands to the block device and replays prefix commands back to the device to emulate fault.

Contact

Om R. Gatla ([email protected]), Duo Zhang ([email protected]).

rfsck's People

Contributors

data-storage-research avatar duozhangisu avatar ogatla avatar omram89 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.