Skip to content

Latest commit

 

History

History
34 lines (30 loc) · 1.43 KB

File metadata and controls

34 lines (30 loc) · 1.43 KB

Manual creation and booting of remote snapshots

This is based on the initial implementation prototype for full local snapshots.

Prerequisites

  • Run the ./scripts/cloudlab/setup_node.sh script.
  • Copy the snapshot files (memfile, snapfile, infofile) on the cluster node where you want to start the function.

Steps

  • Start firecracker-containerd in a new terminal
sudo /usr/local/bin/firecracker-containerd --config /etc/firecracker-containerd/config.toml
  • Build go program
go build
  • Create a snapshot
# sudo ./remote-firecracker-snapshots-poc -make-snap -id "<VM ID>" -image "<URI>" -revision "<revision ID>" -snapshots-base-path "<path/to/snapshots/folder>"
sudo ./remote-firecracker-snapshots-poc -make-snap -id "0>" -image "docker.io/library/nginx:1.17-alpine" -revision "nginx-0" -snapshots-base-path "./remote-firecracker-snapshots-poc/snaps"
"docker.io/curiousgeorgiy/golang-hello-world:latest"
  • Boot from snapshot
# sudo ./remote-firecracker-snapshots-poc -boot-from-snap -id "<VM ID>" -revision "<revision ID>" -snapshots-base-path "<path/to/snapshots/folder>"
sudo ./remote-firecracker-snapshots-poc -boot-from-snap -id "0" -revision "nginx-0" -snapshots-base-path "./remote-firecracker-snapshots-poc/snaps"

Now, the uVM is started and this is confirmed by the logs of firecracker-containerd, which also gives the IP address of the uVM.

  • Send a request
curl http://<VM IP address>:<container port>