Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

micro VM snapshotting support #239

Open
kzys opened this issue Jun 4, 2020 · 6 comments
Open

micro VM snapshotting support #239

kzys opened this issue Jun 4, 2020 · 6 comments
Milestone

Comments

@kzys
Copy link
Contributor

kzys commented Jun 4, 2020

Firecracker's next release will have microVM snapshotting. The API definition file has been updated on master already (see #233).

@kzys kzys changed the title Snapshotting Support micro VM snapshotting support Jun 17, 2020
@kzys
Copy link
Contributor Author

kzys commented Aug 11, 2020

Firecracker v0.22.0 doesn't have snapshotting. We are going to release the SDK's v0.22.0 to address breaking changes first.

@kzys
Copy link
Contributor Author

kzys commented Jun 16, 2021

Note to myself, we have Pause, Resume and CreateSnapshot. Loading from a snapshot (restore) is still pending. It would need some redesign of the Machine abstraction we have.

@MNThomson
Copy link

MNThomson commented Nov 25, 2021

Restoring from a snapshot would be a highly appreciated feature, any updates on progress or timeline?
Thx!

@ustiugov
Copy link

vHive has complete support for snapshots in a research-tailored frameowork, integrating Knative, Kubernetes, and Firecracker. If you are interested in the snapshot support only, you can take a look at our changes in firecracker-containerd fork.

@kzys kzys added this to the 1.0.0 milestone Feb 9, 2022
@alexellis
Copy link

alexellis commented Mar 4, 2022

Hi @kzys

I'm interested in using this feature in Firecracker

Note to myself, we have Pause, Resume and CreateSnapshot. Loading from a snapshot (restore) is still pending. It would need some redesign of the Machine abstraction we have.

It looks like milestone 1.0.0 was opened on 4 Jun 2020 - quite some time ago.

When do you expect to see LoadSnapshot in the Go SDK?

Could machines be created with the Go SDK using CNI, and then restored by manually creating a firecracker process and using the unix socket's HTTP API as per the Snapshot API?

Do you see any issues with CNI and the names of the tap adapters?

@Joffref
Copy link
Contributor

Joffref commented Aug 20, 2022

Hello @alexellis,

Quick disclaimer, I'm not part of the dev team and everything that follows reflect only my knowledge of the SDK.

At this time, LoadSnapshot works very well, but it's not available in v0.22, so it will be usable in the next version of the SDK.

You can create a machine with the go SDK, snapshot it and then use firecracker API to restore the VM. As you mentioned restoring with network is a big deal, you can restore a VM but as described in this documentation you must follow some basics steps to ensure VM will properly retrieve its connectivity. I think the main issue is to store somewhere the VM IP and tapName (if not setted using the SDK it's the machine ID) and then be able to restore with the proper CNI configuration.

As I understand your last question (if it's also related to this issue : awslabs/tc-redirect-tap#12) and after digging into the tc-redirect-tap code, it seems that there is an argurment avoiding tapName to be random, that is used by this function and called in add plugin method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants