mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-13 13:12:15 +00:00
yet another problem with new overlay fs
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@ubuntu.com> Acked-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
parent
5fdd4b0c11
commit
dd2271e6bb
@ -166,6 +166,7 @@ dest = lxc.Container(os.path.basename(dest_path), args.lxcpath)
|
|||||||
dest.load_config(orig.config_file_name)
|
dest.load_config(orig.config_file_name)
|
||||||
dest.set_config_item("lxc.utsname", dest.name)
|
dest.set_config_item("lxc.utsname", dest.name)
|
||||||
dest.set_config_item("lxc.rootfs", os.path.join(dest_path, "rootfs"))
|
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:
|
for nic in dest.network:
|
||||||
if hasattr(nic, 'hwaddr'):
|
if hasattr(nic, 'hwaddr'):
|
||||||
nic.hwaddr = randomMAC()
|
nic.hwaddr = randomMAC()
|
||||||
@ -238,34 +239,32 @@ LXC_NAME="%s"
|
|||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
for entry in overlay_dirs:
|
for entry in overlay_dirs:
|
||||||
target = "%s/delta%s" % (dest_path, count)
|
deltdir = "%s/delta%s" % (tmpdir, count)
|
||||||
workdir = "%s/work%s" % (dest_path, count)
|
workdir = "%s/work%s" % (tmpdir, count)
|
||||||
fd.write("mkdir -p %s %s\n" % (target, entry[1]))
|
fd.write("mkdir -p %s %s\n" % (deltdir, entry[1]))
|
||||||
if have_new_overlay:
|
if have_new_overlay:
|
||||||
fd.write("mkdir -p %s\n" % workdir)
|
fd.write("mkdir -p %s\n" % workdir)
|
||||||
|
|
||||||
if args.storage_type == "tmpfs":
|
if args.storage_type == "tmpfs":
|
||||||
fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (target))
|
fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (tmpdir))
|
||||||
if have_new_overlay:
|
fd.write("mkdir %s\n" % deltdir)
|
||||||
fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (workdir))
|
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]))
|
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 args.union_type == "overlayfs":
|
||||||
if have_new_overlay:
|
if have_new_overlay:
|
||||||
fd.write("mount -n -t overlay"
|
fd.write("mount -n -t overlay"
|
||||||
" -oupperdir=%s,lowerdir=%s,workdir=%s none %s\n" % (
|
" -oupperdir=%s,lowerdir=%s,workdir=%s none %s\n" % (
|
||||||
target,
|
deltdir,
|
||||||
entry[0],
|
entry[0],
|
||||||
workdir,
|
workdir,
|
||||||
entry[1]))
|
entry[1]))
|
||||||
else:
|
else:
|
||||||
fd.write("mount -n -t overlayfs"
|
fd.write("mount -n -t overlayfs"
|
||||||
" -oupperdir=%s,lowerdir=%s none %s\n" % (
|
" -oupperdir=%s,lowerdir=%s none %s\n" % (
|
||||||
target,
|
deltdir,
|
||||||
entry[0],
|
entry[0],
|
||||||
entry[1]))
|
entry[1]))
|
||||||
elif args.union_type == "aufs":
|
elif args.union_type == "aufs":
|
||||||
@ -275,7 +274,7 @@ LXC_NAME="%s"
|
|||||||
|
|
||||||
fd.write("mount -n -t aufs "
|
fd.write("mount -n -t aufs "
|
||||||
"-o br=%s=rw:%s=ro,noplink,xino=%s none %s\n" % (
|
"-o br=%s=rw:%s=ro,noplink,xino=%s none %s\n" % (
|
||||||
target,
|
deltdir,
|
||||||
entry[0],
|
entry[0],
|
||||||
xino_path,
|
xino_path,
|
||||||
entry[1]))
|
entry[1]))
|
||||||
|
Loading…
Reference in New Issue
Block a user