---------- Configuration
# echo -e $(grep VERSION= /etc/os-release)\\nSIGNATURE=\"$(cat /proc/version_signature)\"
VERSION="16.04.3 LTS (Xenial Xerus)"
SIGNATURE="Ubuntu 4.10.0-35.39~16.04.1-generic 4.10.17"
# dpkg --list | grep zfs
ii libzfs2linux 0.6.5.6-0ubuntu18
ii zfs-doc 0.6.5.6-0ubuntu18
ii zfs-initramfs 0.6.5.6-0ubuntu18
ii zfs-zed 0.6.5.6-0ubuntu18
ii zfsutils-linux 0.6.5.6-0ubuntu18
---------- Fault: Creating an overlay of multiple directories on a ZFS volume does not work
# df /var/tmp
Filesystem Type 1K-blocks Used Available Use% Mounted on
tank07/var/tmp zfs 129916288 128 129916160 1% /var/tmp
# mkdir /var/tmp/{lower,middle,upper,workdir,overlay}
# mount -t overlay overlay -olowerdir=/var/tmp/middle:/var/tmp/lower,upperdir=/var/tmp/upper,workdir=/var/tmp/workdir /var/tmp/overlay
mount: wrong fs type, bad option, bad superblock on overlay,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
# dmesg|tail -1
[276328.438284] overlayfs: filesystem on '/var/tmp/upper' not supported as upperdir
---------- Control test 1: Creating an overlay of multiple directories on another filesystem works
# df /tmp
Filesystem Type 1K-blocks Used Available Use% Mounted on
tmpfs tmpfs 1048576 133492 915084 13% /tmp
# mkdir /tmp/{lower,middle,upper,workdir,overlay}
# mount -t overlay overlay -olowerdir=/tmp/middle:/tmp/lower,upperdir=/tmp/upper,workdir=/tmp/workdir /tmp/overlay
# mount | grep overlay
overlay on /tmp/overlay type overlay (rw,relatime,lowerdir=/tmp/middle:/tmp/lower,upperdir=/tmp/upper,workdir=/tmp/workdir)
---------- Control test 2: Creating an overlay using AuFS works on ZFS volume and elsewhere
# mount -t aufs -obr=/tmp/lower:/tmp/middle:/tmp/upper:/tmp/workdir none /tmp/overlay
# mount -t aufs -obr=/var/tmp/lower:/var/tmp/middle:/var/tmp/upper:/var/tmp/workdir none /var/tmp/overlay
# mount | grep aufs
none on /var/tmp/overlay type aufs (rw,relatime,si=9ead1ecae778b250)
none on /tmp/overlay type aufs (rw,relatime,si=9ead1ec9257d1250)
---------- Remark
While the use of AuFS can be used as a workaround in the above scenario, AuFS in turn will not work with [fuse.]glusterfs mounts (this has been documented elsewhere). Given that OverlayFS is part of the (upstream) kernel and Ubuntu now officially supports ZFS, the above should be fixed.
---------- Configuration release) \\nSIGNATURE= \"$(cat /proc/version_ signature) \" 35.39~16. 04.1-generic 4.10.17"
# echo -e $(grep VERSION= /etc/os-
VERSION="16.04.3 LTS (Xenial Xerus)"
SIGNATURE="Ubuntu 4.10.0-
# dpkg --list | grep zfs
ii libzfs2linux 0.6.5.6-0ubuntu18
ii zfs-doc 0.6.5.6-0ubuntu18
ii zfs-initramfs 0.6.5.6-0ubuntu18
ii zfs-zed 0.6.5.6-0ubuntu18
ii zfsutils-linux 0.6.5.6-0ubuntu18
---------- Fault: Creating an overlay of multiple directories on a ZFS volume does not work {lower, middle, upper,workdir, overlay} /var/tmp/ middle: /var/tmp/ lower,upperdir= /var/tmp/ upper,workdir= /var/tmp/ workdir /var/tmp/overlay
# df /var/tmp
Filesystem Type 1K-blocks Used Available Use% Mounted on
tank07/var/tmp zfs 129916288 128 129916160 1% /var/tmp
# mkdir /var/tmp/
# mount -t overlay overlay -olowerdir=
mount: wrong fs type, bad option, bad superblock on overlay,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
# dmesg|tail -1
[276328.438284] overlayfs: filesystem on '/var/tmp/upper' not supported as upperdir
---------- Control test 1: Creating an overlay of multiple directories on another filesystem works middle, upper,workdir, overlay} /tmp/middle: /tmp/lower, upperdir= /tmp/upper, workdir= /tmp/workdir /tmp/overlay lowerdir= /tmp/middle: /tmp/lower, upperdir= /tmp/upper, workdir= /tmp/workdir)
# df /tmp
Filesystem Type 1K-blocks Used Available Use% Mounted on
tmpfs tmpfs 1048576 133492 915084 13% /tmp
# mkdir /tmp/{lower,
# mount -t overlay overlay -olowerdir=
# mount | grep overlay
overlay on /tmp/overlay type overlay (rw,relatime,
---------- Control test 2: Creating an overlay using AuFS works on ZFS volume and elsewhere lower:/ tmp/middle: /tmp/upper: /tmp/workdir none /tmp/overlay tmp/lower: /var/tmp/ middle: /var/tmp/ upper:/ var/tmp/ workdir none /var/tmp/overlay si=9ead1ecae778 b250) si=9ead1ec9257d 1250)
# mount -t aufs -obr=/tmp/
# mount -t aufs -obr=/var/
# mount | grep aufs
none on /var/tmp/overlay type aufs (rw,relatime,
none on /tmp/overlay type aufs (rw,relatime,
---------- Remark
While the use of AuFS can be used as a workaround in the above scenario, AuFS in turn will not work with [fuse.]glusterfs mounts (this has been documented elsewhere). Given that OverlayFS is part of the (upstream) kernel and Ubuntu now officially supports ZFS, the above should be fixed.