Fleet

Live migration

Move a running VM to another machine and it carries on where it was.

What it is

Move a running VM to another host and it carries on mid-program.

The VM sleeps, its state moves in chunks, and it wakes on the target exactly where it was. A snapshot is a portable file: restore it on any host of the same platform.

Why it matters

Long-running agents should never lose their place. Drain a host, rebalance the fleet or follow demand, and every workload keeps going.

  • One command. Name the VM; the controller picks the best target, or you choose one.
  • Safe by design. A failed move wakes the VM back where it started.
  • Portable snapshots. Restore a saved VM on another host and it resumes from the same moment.

Runs on

  • Linux x86_64
  • Linux arm64
  • macOS
  • Windows x64
  • Windows arm64
  • Across your fleet

How it works

Sleep, copy, wake: the controller runs the whole move.

CLI

flash controller move agent-7
flash controller move agent-7 --to rack2
flash controller moves
flash snapshot agent-7 --path agent-7.snap
flash restore --from agent-7.snap --bundle /opt/flashvm/bundles/current --id agent-7 --vcpus 1 --mem-mib 256 --detach

MCP

flash_controller(method: "POST", path: "/v1/moves", body: {"flashvm": "agent-7", "to": "rack2"})

API

POST /v1/moves {"flashvm": "agent-7", "to": "rack2"}
GET  /v1/moves/{move_id}

The result

A running VM changes hosts and its program never notices.

Wake takes 8.4 ms and restore takes 7.8 ms, so the workload is back at full speed on its new host almost at once.

How it works

Related

See it live: flash demo run 19