-
Notifications
You must be signed in to change notification settings - Fork 66
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
Aufs to overlay2 migration utility #168
Conversation
9bbc785
to
c87c269
Compare
bc6cd2d
to
3e70c79
Compare
5c9e031
to
9088b6a
Compare
08b758c
to
c6eb51b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't seem to have a test that would illustrate a rollback scenario.
IMHO it's worth adding to catch other errors like those usages of "overlay2" string instead of the value passed by a user.
@@ -0,0 +1,80 @@ | |||
// TODO: do we need to handle .wh..wh.plnk layer hardlinks? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have an answer to the question? :)
vendor/github.com/containerd/containerd/cmd/containerd-shim/main_unix.go
Outdated
Show resolved
Hide resolved
8c65690
to
e757b40
Compare
4c3c293
to
57a16a2
Compare
36b7d5d
to
28969bd
Compare
@roman-mazur I have finally squashed this down :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me in general. However, it would be great to have a test that tries to simulate a failure and rollback (just to make sure we cover basic path).
For instance, having an integration-test-failure.sh
:
./a2o-migrate -version
./a2o-migrate -debug -migrate
// Maybe also do some files corruption (rewriting/deleting some of the migrated files)
./a2o-migrate -debug -rollback
Is it ok travis build fails? Should we fix it or disable it? |
@roman-mazur fixing the travis build here: #189 |
sounds good. will work on that tomorrow |
28969bd
to
2e4c142
Compare
@roman-mazur should we close this for now and reopen when we move the migration logic to the engine too? |
I created #205 to track the motivation and progress of this, should we decide to postpone the work. |
c7b1ce9
to
d17f992
Compare
updated this with the new approach. moving the a2o code under Right now it's guarded by a check if the storage driver is set to It will attempt a migration. If that fails run the fail-cleanup routine and if not commit the changes. Of course this can't check if the migration was actually successful in the sense that we can run anything... I think it makes more sense to have the integration testing done using a custom meta-balena image, since the previous vagrant-based test needs a custom OS anyway |
7b71bff
to
7a56167
Compare
We use this from a2o-migrate to get valid layer IDs Signed-off-by: Robert Günzler <robertg@balena.io>
8cb45b5
to
224eff2
Compare
Your landr site preview has been successfully deployed to https://landr-balena-os-repo-balena-engine-preview-168.netlify.app Deployed with Landr 6.13.1 |
224eff2
to
369a091
Compare
The main logic is under pkg/storagemigration. This is able to seamlessly migrate images and containers from AUFS to overlay2. Change-type: patch Signed-off-by: Robert Günzler <robertg@balena.io>
Signed-off-by: Robert Günzler <robertg@balena.io>
Signed-off-by: Robert Günzler <robertg@balena.io>
@klutchell I think I want to merge this one pretty soon. Most of the work here has gone through pretty intense manual testing (on the big platforms anyway) and should we identify any follow-up problems they can always be fixed in subsequent PRs For the most part merging this would allow me to open the meta-balena part of this as a PR pointing to engine master :) |
@balena-ci rebase |
@balena-ci rebase |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Migrate image store, containers and daemon configs to overlayfs (overlay2 graphdriver)