[lxc-devel] [PATCH RFC] yet another problem with new overlay fs
Stéphane Graber
stgraber at ubuntu.com
Tue Jan 20 23:44:30 UTC 2015
On Mon, Jan 19, 2015 at 05:06:55AM +0000, Serge Hallyn wrote:
> It turns out that the new upstream overlay fs requires that the delta
> and work dirs be under the same mount. So create a $lxcpath/tmpfs
> and create delta0 and work0 under that. If the user asks for a
> tmpfs that'll be mounted under $lxcpath/tmpfs and workdir and delta0
> both created under that.
>
> This isn't heavily tested. But if fixes mounting of 'overlay' fs
> for me.
>
> It's "not backward compatible", since it moves delta0, but that
> shouldn't matter since ephemeral containers are either destroyed
> on exit, or re-started with lxc-start.
>
> Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
Looks fine to me
Acked-by: Stéphane Graber <stgraber at ubuntu.com>
> ---
> src/lxc/lxc-start-ephemeral.in | 23 +++++++++++------------
> 1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/src/lxc/lxc-start-ephemeral.in b/src/lxc/lxc-start-ephemeral.in
> index 36e2579..66abe56 100644
> --- a/src/lxc/lxc-start-ephemeral.in
> +++ b/src/lxc/lxc-start-ephemeral.in
> @@ -166,6 +166,7 @@ dest = lxc.Container(os.path.basename(dest_path), args.lxcpath)
> dest.load_config(orig.config_file_name)
> dest.set_config_item("lxc.utsname", dest.name)
> dest.set_config_item("lxc.rootfs", os.path.join(dest_path, "rootfs"))
> +print("setting rootfs to .%s.", os.path.join(dest_path, "rootfs"))
> for nic in dest.network:
> if hasattr(nic, 'hwaddr'):
> nic.hwaddr = randomMAC()
> @@ -238,34 +239,32 @@ LXC_NAME="%s"
>
> count = 0
> for entry in overlay_dirs:
> - target = "%s/delta%s" % (dest_path, count)
> - workdir = "%s/work%s" % (dest_path, count)
> - fd.write("mkdir -p %s %s\n" % (target, entry[1]))
> + deltdir = "%s/delta%s" % (tmpdir, count)
> + workdir = "%s/work%s" % (tmpdir, count)
> + fd.write("mkdir -p %s %s\n" % (deltdir, entry[1]))
> if have_new_overlay:
> fd.write("mkdir -p %s\n" % workdir)
>
> if args.storage_type == "tmpfs":
> - fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (target))
> - if have_new_overlay:
> - fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (workdir))
> + fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (tmpdir))
> + fd.write("mkdir %s\n" % deltdir)
> + fd.write("mkdir %s\n" % workdir)
>
> - fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], target))
> + fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], deltdir))
> fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], entry[1]))
> - if have_new_overlay:
> - fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" % (entry[0], workdir))
>
> if args.union_type == "overlayfs":
> if have_new_overlay:
> fd.write("mount -n -t overlay"
> " -oupperdir=%s,lowerdir=%s,workdir=%s none %s\n" % (
> - target,
> + deltdir,
> entry[0],
> workdir,
> entry[1]))
> else:
> fd.write("mount -n -t overlayfs"
> " -oupperdir=%s,lowerdir=%s none %s\n" % (
> - target,
> + deltdir,
> entry[0],
> entry[1]))
> elif args.union_type == "aufs":
> @@ -275,7 +274,7 @@ LXC_NAME="%s"
>
> fd.write("mount -n -t aufs "
> "-o br=%s=rw:%s=ro,noplink,xino=%s none %s\n" % (
> - target,
> + deltdir,
> entry[0],
> xino_path,
> entry[1]))
> --
> 2.1.0
>
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20150120/50af7af9/attachment.sig>
More information about the lxc-devel
mailing list