State & time travel
Snapshots and clones
Save a running VM to a file and bring it back, mid-program, in 7.8 ms, or start many copies from it.
What it is
Save a running VM to a file and bring it back mid-program in 7.8 ms.
A snapshot captures memory, disk and every running program. Restore brings the VM back exactly where it was, without booting. Clone starts brand-new VMs from the same file, each with its own name.
Why it matters
Setup is the slow part of every job. Do it once, snapshot it, and every future run starts from the finished state instead of from scratch.
- No boot. Restore in 7.8 ms, programs still running.
- One setup, many copies. Clone any number of VMs from one file.
- Portable state. A snapshot is a file: keep it, move it, restore it later.
Runs on
- Linux x86_64
- Linux arm64
- macOS
- Windows x64
- Windows arm64
How it works
Snapshot to a path, then restore or clone from it.
CLI
flash snapshot vm-1 --path /snaps/vm-1.snap
flash restore --from /snaps/vm-1.snap --bundle BUNDLE --id vm-1 --vcpus 1 --mem-mib 256 --cpu-template host-raw --detach
flash clone --from /snaps/vm-1.snap --bundle BUNDLE --id clone-1 --vcpus 1 --mem-mib 256 --cpu-template host-raw --detachMCP
flash_api(vm_id: "vm-1", method: "POST", path: "/v1/flashvm/snapshots", body: {path: "/snaps/vm-1.snap"})
flash_cli(args: ["clone", "--from", "/snaps/vm-1.snap", "--bundle", "BUNDLE", "--id", "clone-1", "--vcpus", "1", "--mem-mib", "256", "--detach"])API
POST /v1/flashvm/snapshots {"path": "/snaps/vm-1.snap"}
GET /v1/flashvm/snapshotsThe result
A counter saved, the VM removed, then restored in 7.8 ms, counting on from where it stopped.
Clones from the same file start at that same moment, each its own VM.
How it works
Related
See it live: flash demo run 16