Sistemo v0.5.0: Storage-Driven VM Lifecycle
Every VM now has a tracked root volume. Resize storage, move data between VMs, and preserve disks across deletions. Storage is a first-class citizen.
v0.5.0 is here, and it brings the biggest architectural change since launch. Every VM now has a tracked root volume — storage is no longer a hidden implementation detail, it's a first-class resource you can inspect, resize, detach, and preserve independently of the VM that created it.
What changed
Root volumes
When you deploy a VM, Sistemo now automatically creates a tracked root volume for it. No extra flags needed — it just works.
sistemo vm deploy debian --name web --storage 5GBThat single command creates both the VM and a root volume named web-root with 5 GB of storage.
Volume resize
Need more space? Grow a volume without redeploying. Stop the VM, resize, start it back up.
sistemo vm stop web
sistemo volume resize web-root 10GB
sistemo vm start webAttach and detach
Data volumes can be moved between VMs. Create a volume once, attach it to whichever VM needs it, detach when done.
sistemo volume create 2G --name appdata
sistemo vm stop web
sistemo vm volume attach web appdata
sistemo vm start web
# later, move it to another VM
sistemo vm stop web
sistemo vm volume detach web appdata
sistemo vm volume attach api appdata
sistemo vm start apiPreserve storage on delete
The new --preserve-storage flag lets you delete a VM while keeping its volumes intact. Rebuild the VM later and reattach the same data.
Volume listing
$ sistemo volume list
NAME SIZE STATUS ATTACHED TO TYPE
web-root 5.0GB attached web root
appdata 2.0GB attached web data
pgbackup 1.0GB detached - dataWhy this matters
Before v0.5.0, a VM's root filesystem was a hidden file buried inside the vms/ directory. When you deleted a VM, the rootfs was deleted with it — no questions asked, no way to recover it.
Now the rootfs is a tracked volume. It shows up in sistemo volume list, it can survive VM deletion, and it can be resized without redeploying. This is how production infrastructure works — we built Sistemo on patterns proven in large-scale VM platforms — and now those patterns are available on your own hardware.
Example workflow
Here's a real workflow that shows the new storage features working together:
# Deploy with custom storage
sistemo vm deploy debian --name web --storage 5GB
# Create and attach a data volume
sistemo volume create 2G --name appdata
sistemo vm stop web
sistemo vm volume attach web appdata
sistemo vm start web
# Resize the root volume
sistemo vm stop web
sistemo volume resize web-root 10GB
sistemo vm start web
# Delete VM but keep data
sistemo vm delete web --preserve-storage
sistemo volume list # volumes still thereAfter that last command, both web-root and appdata are still on disk, ready to be attached to a new VM whenever you need them.
Other improvements in v0.5.0
- Per-IP rate limiting — configurable, defaults to 100 requests per second
- Graceful daemon shutdown — in-flight operations complete cleanly on SIGTERM
- Configurable reconciler interval and SSH timeout — tune the daemon to your workload
- Security hardening — XSS prevention, input validation, daemon URL validation
- Better error messages — no more raw e2fsck output leaking into the CLI
- Comprehensive audit logging — every operation is tracked in the history log
- JSON output — add
-o jsonto list and status commands for scripting - Skip confirmation — use
-yto skip delete prompts in scripts - Command aliases —
lsfor list,rmfor delete,showfor status - Boot from volume — use
--volumeto deploy a VM from an existing root volume