Crash Consistency Testing for Block Based File Systems on NVMe Drives

  • Type:Bachelor Thesis
  • Date:16.09.2022
  • Supervisor:

    Prof. Dr. Frank Bellosa
    Lukas Werling

  • Graduand:Daniel Ritz
  • Links:PDF
  • Abstract
    File system consistency in case of crashes is important to prevent data loss or file system corruption. Unfortunately, common file systems give only few and inconsistent guarantees regarding the effects of crashes. To help application developers as well as file system developers to find and understand issues caused by crashes, tools for automated crash consistency testing are needed.
    We provide a tool for automated crash consistency testing of unmodified full systems with block based file systems on NVMe drives. Our approach uses traceand-replay to test for different guarantees, such as atomicity or writeability after a crash. We analyse a virtualised system by tracing NVMe commands with an
    emulated NVMe drive. Afterwards, a Crash Image Generator creates a set of file system images that can originate from a system crash. These crash images are then examined for their semantic file system state. These states can then be used to validate file system guarantees.
    We could verify the practicability of this approach with tests on vfat and ext4 file systems. Our analysis of ext4 could reproduce a known bug and found
    an issue with mkdir.


    @bachelorthesis{ritz22NVMe Drives,
      author = {Daniel Ritz},
      title = {Crash Consistency Testing for Block Based File Systems on NVMe Drives},
      type = {Bachelor Thesis},
      year = 2022,
      month = sept # "16",
      school = {Operating Systems Group, Karlsruhe Institute of Technology (KIT), Germany}