-
Notifications
You must be signed in to change notification settings - Fork 3.8k
WIP: Mount Windows layers as volumes on the host #2287
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
Conversation
mount/mount_windows.go
Outdated
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.
This is stripping the target down to just the directory with no path separator?
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.
Yep. It is required for the alternate data stream (ADS). Looking back at this, I think the better way to do this is to use filepath.Split and add the ADS tag to the filename and Join again.
mount/mount_windows.go
Outdated
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.
Can you explain this one? Is there any documentation for this which could be referred to in a comment?
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.
This is an alternate data stream on the mounted layer folder. Short version is that this is used to store extra data on the same file without affecting the actual file.
Docs on alternate data streams that I can add in a comment https://blogs.technet.microsoft.com/askcore/2013/03/24/alternate-data-streams-in-ntfs/
mount/mount_windows.go
Outdated
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.
Same comment here for documentation, curious what this means
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.
I will look back at this to see if there is a better way to do it, but this is checking if the sandbox was mounted as a volume or if the function returned the path to the expanded layer on disk. \\?\ is the prefix of a volume on Windows, the volume path is of the form \\?\Volume{bc6dcf0c-7fde-4d12-9853-0d1dafad0b5b}\. If the expanded layer is returned instead of the volume GUID path, it needs to be mounted via symlink. Will add a comment to explain if I can't find a way that's obvious what it is doing.
|
It is nice to see the tests running though. The base related changes and changes to tests look good so far. What is the impact of this |
|
|
|
Pushed more commits that get the following tests passing on Windows: |
|
Can you rebase, also there is a vet complaint |
|
Vet failure is due to enabling certain tests while in development. I'm adding proper test skipping for tests that will not work on Windows in a change soon. Will rebase. |
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
|
Locally tests are passing. Debugging why they're failing in CI. Edit: I also need to get the Continuity changes into there to vendor into containerd. |
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
|
This PR is ready for review pending containerd/continuity#113 |
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Signed-off-by: Darren Stahl <[email protected]>
Codecov Report
@@ Coverage Diff @@
## master #2287 +/- ##
==========================================
- Coverage 49.28% 45.31% -3.97%
==========================================
Files 84 93 +9
Lines 7424 9572 +2148
==========================================
+ Hits 3659 4338 +679
- Misses 3089 4532 +1443
- Partials 676 702 +26
Continue to review full report at Codecov.
|
|
Going to close this one, we have a carry PR open and windows work is still ongoing |
This is a work in progress implementation of mounting Windows volumes on the host. It currently is failing the Basic snapshotter test due to a few assumptions made by the tests. The first issue is that the root directory of the layer is a link, which is tripping up the filesystem differ. The second is mounting a parent and child layer at the same time is currently failing.
This PR is to share the current progress.
/cc @johnstep @stevvooe @dmcgowan