-
Notifications
You must be signed in to change notification settings - Fork 100
Add support for remote Firecracker snapshots #1107
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
base: main
Are you sure you want to change the base?
Conversation
|
The target branch of this PR is currently stargz-snapshotter, but will be |
b10ef5f to
8139f78
Compare
43fcf55 to
23fd3bd
Compare
23fd3bd to
817fc62
Compare
b81fc78 to
def6841
Compare
4762bc0 to
a6db1e9
Compare
|
@leokondrashov I'll temporarily change the target of this PR to avoid triggering CI |
c0977e3 to
6eed888
Compare
9f5a856 to
4887968
Compare
4887968 to
69d7a38
Compare
|
@moharaka please review it first, then notify me to do my pass |
|
@moharaka @leokondrashov sorry, but don't review it yet. There's a test that is not passing in GitHub actions and I need to debug it |
b14ad5d to
644aa3d
Compare
644aa3d to
455b375
Compare
- When remote snapshots are enabled, after committing the snapshot, it is uploaded to a MinIO instance. When loading from a snapshot, if it is not available locally, it checks if it is available in MinIO and fetches it. - Remote Firecracker snapshots are currently only supported using the Stargz snapshotter (there are some container corruption issues when using devmapper). Signed-off-by: André Jesus <[email protected]>
455b375 to
bdeafcb
Compare
|
@leokondrashov @moharaka This is finally ready for review. The changes are described in the PR description. Feel free to comment if anything looks off—I'm also open to suggestions for design improvements. As for the tests, I know they could be better, but I really can’t spend more time on this PR since I need to start working on the scheduler optimization. |
When set to false and using remote snapshots, snapshots will not be cached locally. The default value is true. Signed-off-by: André Jesus <[email protected]>
Summary
When remote snapshots are enabled, after committing a snapshot, it is uploaded to a MinIO instance. When loading from a snapshot, if it is not available locally, the system checks whether it is available in MinIO and fetches it if found.
Closes #823
Implementation Notes ⚒️
-snapshotsoption type from a boolean to a string, with three valid values:local,remote, ordisabled(default).ObjectStoragewith methods to upload and download objects. CreatedMinioStorageas an implementation of this interface.SnapshotManagerto support uploading and downloading snapshots via theObjectStorageinterface.Remote Firecracker snapshots are currently only supported using the Stargz snapshotter (there are known container corruption issues when using devmapper).
External Dependencies 🍀
github.com/minio/minio-go/v7dependency.Breaking API Changes⚠️