smoothfs is the storage engine behind SmoothNAS tiering. It gives SmoothNAS one place to keep fast and slow data together while moving files between tiers automatically.
What people use it for:
- keep hot data on SSD/NVMe and cold data on slower media
- preserve familiar NFS/SMB/iSCSI behavior while storage placement is optimized
- reduce cost without changing NAS workflows
- provide safer movement with explicit state transitions and recovery paths
For SmoothNAS operators this means:
- better performance where it matters
- simpler storage growth on mixed hardware
- predictable operations because active-LUN movement and recovery flows are explicit
- One namespace, multiple media classes: one mount path and one view for users.
- Policy driven: heat + policy determines movement while preserving POSIX correctness.
- Production-aware controls: quiesce/reconcile, movement logs, and explicit active-LUN workflow prevent surprise behavior.
- Integrated package path: kernel module, userspace daemon, and support scripts are delivered in Debian artifacts for SmoothNAS deployments.
SmoothNAS should consume this repository as an external component instead of duplicating its implementation.
- kernel filesystem + movement engine:
src/smoothfs - userspace control-plane:
controlplane - API contracts:
client.go,events.go,uapi.go,pools.go - operator docs and phased delivery notes:
docs
English:
Dutch:
go test ./...Runtime behavior and kernel packaging tests are in src/smoothfs/test
and are intended for prepared Linux hosts with matching kernel/filesystem/Samba/iSCSI
prerequisites.
src/smoothfs: kernel module, DKMS, Samba VFS integration, and test harnessescontrolplane: planner/worker/recovery service logicdocs: operator and design documentationtierddirectory in SmoothNAS consumes these contracts