Ive been working on an opensource HSM (Hierarchical Storage Management) engine called HuskHoard. Most transparent storage tools on Linux use FUSE, but I found the contextswitching overhead was killing my NVMe performance for hot data. I decided to bypass FUSE and use the fanotify API to intercept file access at the kernel level instead. How it works A background janitor moves cold files to slow storage HDD/Tape/S3. It leaves a sparse husk file on the SSD. When an app tries to read the husk, HuskHoard pauses the process, recalls the data, and resumes. Its written in Rust and licensed under AGPL3.0. Github: https://github.com/huskhoard/huskhoard Technical Architecture: https://www.huskhoard.com/blog.html Im curious if anyone else here has experimented with fanotify for storage management? I’d love some technical feedback on the architecture
This project seems like a lot of fun! I will try it
Please consider changing the headline font on the website. It is nothing short of a war crime.
Sounds like it has similar goals to bcache (not bcachefs) and LVM caching, except that it operates in userspace instead of at the kernel level. Can you explain what the benefits are of keeping this out of the kernel?
Oh I wanted to make something like this for quite some time! Thank you!

