[CRIU] [RFC][PATCH 0/3] Proposal for native (w/o plugins) support for external bind mounts v2

Pavel Emelyanov xemul at parallels.com
Thu Jun 5 08:10:43 PDT 2014


So, the 1st attempt with modifying original mount points roots is
not working since the paths we see in /proc and dump are relative
to the FS's root, not relative to global (well, CRIU's) root.

That said, we can try to go another route and here it is.

On dump we use one or more --ext-mount option with A=B arguments.
A denotes a mountpoint (as seen from the target mount namespace)
criu dumps and B is the string that will be written into the
image file instead of the mountpoint's root. E.g. if we have a
/foo/bar bind mounted into container under /x name, then the
--ext-mount /x=foobar option will tell criu, that /x is a mount
point with external source and it should write "foobar" into image
instead of the path read from /proc.

On restore we use the same --ext-mount option(s) with similar
A=B arguments, but this time criu treats A as string from the
image's root field (foobar in the example above) and B as the
path in criu's mount namespace the should be bind mounted into
the mountpoint.

For example, let's again imagine we have /foo/bar bind mounted
into container under /x name and /foo/bar is inaccessible from
this container.

On dump we say --ext-mount /x=foobar and mountpoints.img will
contain a mountpoint with root=foobar and mountpoint=/x. On restore
we use --ext-mount foobar=/foo2/bar option. This will result the
/foo2/bar from criu's namespace get bind-mounted to /x inside the
container we restore.


Thanks,
Pavel


More information about the CRIU mailing list