commit - 581f6809d6169477638240aaa1e7c70bf1484476
commit + 9dfb83998d9d79748a7dfbbc27520c66e73e51e9
blob - 1ee7d1221407f9b79c6471595121f4faa3cd3a62
blob + 326134977907fbd2bb034e4d8681d98e5870e323
--- README.md
+++ README.md
[](https://cirrus-ci.com/github/ligurio/unreliablefs)
is a FUSE-based fault injection filesystem that allows to change
-fault-injections in runtime.
+fault-injections in runtime using simple configuration file.
Supported fault injections are:
$ ls -la
$ umount /tmp/fs
```
+
+See documentation in [unreliablefs.1](https://ligurio.github.io/unreliablefs/unreliablefs.1.html) and
+[unreliablefs.conf.5](https://ligurio.github.io/unreliablefs/unreliablefs.conf.5.html).
+
+### References
+
+- "Can Applications Recover from fsync Failures?" - Anthony Rebello, Yuvraj
+ Patel, Ramnatthan Alagappan, Andrea C. Arpaci-Dusseau and Remzi H.
+- "All File Systems Are Not Created Equal: On the Complexity of Crafting
+ Crash-Consistent Applications" - Thanumalayan Sankaranarayana Pillai, Vijay
+ Chidambaram, Ramnatthan Alagappan, Samer Al-Kiswany, Andrea C.
+ Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau, University of Wisconsin–Madison
+- "A survey on simulation-based fault injection tools for complex systems" -
+ Maha Kooli, Giorgio Di Natale
+- "To FUSE or Not to FUSE: Performance of User-Space File Systems" - Bharath
+ Kumar Reddy Vangoor, Vasily Tarasov, Erez Zadok
+- "Performance and Resource Utilization of FUSE User-Space File Systems"
+ Bharath Kumar Reddy Vangoor, Prafful Agarwal, Manu Mathew, Arun Ramachandran,
+ and Swaminathan Sivaraman, Vasily Tarasov, Erez Zadok.
+- "Performance and Extension of User Space File Systems" - Aditya Rajgarhia, Ashish Gehani
+- "Files are hard" - Dan Luu
+- "Systematic Testing of Fault Handling Code in Linux Kernel" - Alexey
+ Khoroshilov, Andrey Tsyvarev
+- "Software-Based Fault Injection Framework For Storage Systems" - Vinod
+ Eswaraprasad, Smitha Jayaram
+- Many consumer-grade SSD drives can ignore disk flushes and falsely report to
+ operating systems that data was written while it in fact was not. See [Virtuozzo Storage Documentation](https://docs.virtuozzo.com/virtuozzo_hybrid_server_7_installation_guide/preparing-for-installation/planning-storage-gui.html#planning-node-hardware-configurations) and [PostgreSQL Documentation](https://www.postgresql.org/docs/current/wal-reliability.html).
+
+### Similar projects
+
+- CuttleFS - FUSE-based file system with private page cache to simulate post fsync
+ failure characteristics of modern file systems.
+- libeatmydata - `LD_PRELOAD` library that disables all forms of writing data
+ safely to disk. `fsync()` becomes a NO-OP, `O_SYNC` is removed etc.
+- CharybdeFS - FUSE-based fault injection filesystem with a Thrift RPC
+ interface for instrumentation.
+- PetardFS - FUSE-based file system for injecting intentional errors.