Lvmts
LVM Tiered Storage - HSM on Linux (deprecated - please use lvmcache now)
Install / Use
/learn @tomato42/LvmtsREADME
Application for monitoring LVM volumes and moving blocks based on usage to faster and slower storage. In other words, Hierarchical Storage Manager utilizing LVM on Linux.
Dependencies:
lvm blktrace confuse debugfs (mounted in /sys/kernel/debug/)
Compiling:
make
Usage:
Run collector daemon:
MAKE SURE YOU HAVE debugfs MOUNTED!
./lvmtscd -f lvm-volume.lvmts -l /dev/lvm-group/lvm-volume
After some time you can output the stats using cat (by default it will output 100 most active blocks with blocks being logical extents):
./lvmtscat --LE lvm-volume.lvmts
To get 25 most active physical extents formatted as a parameter to pvmove, use following command:
./lvmtscat -b 25 --pvmove --VG VolumeGroupName --LV LogicalVolumeName lvm-volume.lvmts
Using lvmtsd
While collecting stats and using lvmtscat for looking at most active blocks gives much information, it doesn't do anything.
(it's a hack now, it will be made more user-friendly later)
First, edit doc/sample.conf file, the title of the volume section should have the same name as file created by lvmtscd, sans .lvmts extension, rest of the options is explained there.
Currently only one volume is supported, additional "volume" sections will be ignored.
First, run lvmtscd in the same dir as is doc/. Wait for it to write some statistics (if your system isn't active, wait at least half an hour, with busy system, 10min should suffice). If the file has gotten big, just run
./lvmtsd
It will move most active extents to fastest storage and then keep it updated according to rules in sample.conf
Now you may enjoy your hybrid storage!
Related Skills
node-connect
334.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.3kCommit, push, and open a PR
