Post by Vagrant CascadianLooks like you need to load the overlayfs or aufs modules. It's not
uncommon for container technologies to disallow loading modules by
default, as that can compromise the security of the host machine. If you
manually load overlayfs or aufs from the host server, it might work.
I still haven't gotten any response on what the preferred kernel options
for AUFS should be for LTSP.
I have built AUFS as a module, because I don't necessarily want it
available to all containers as a feature. If anyone would kindly provide
their suggestions for the following options, I'd appreciate it. I made
the following choices, but I may not need all of them:
Aufs (Advanced multi layered unification filesystem) support
(AUFS_FS) [N/m/y/?] (NEW) m
Maximum number of branches
Post by Vagrant Cascadian1. 127 (AUFS_BRANCH_MAX_127) (NEW)
2. 511 (AUFS_BRANCH_MAX_511) (NEW)
3. 1023 (AUFS_BRANCH_MAX_1023) (NEW)
4. 32767 (AUFS_BRANCH_MAX_32767) (NEW)
choice[1-4?]: 1
Detect direct branch access (bypassing aufs) (AUFS_HNOTIFY) [N/y/?]
(NEW) y
method
Post by Vagrant Cascadian1. fsnotify (AUFS_HFSNOTIFY) (NEW)
2. inotify (DEPRECATED) (AUFS_HINOTIFY) (NEW)
choice[1-2]: 1
NFS-exportable aufs (AUFS_EXPORT) [N/y/?] (NEW) y
Readdir in userspace (AUFS_RDU) [N/y/?] (NEW)
support for /proc/maps and lsof(1) (AUFS_PROC_MAP) [N/y/?] (NEW)
Respect the attributes (mtime/ctime mainly) of special files
(AUFS_SP_IATTR) [N/y/?] (NEW)
Show whiteouts (AUFS_SHWH) [N/y/?] (NEW)
Ramfs (initramfs/rootfs) as an aufs branch (AUFS_BR_RAMFS) [N/y/?]
(NEW) y
Fuse fs as an aufs branch (AUFS_BR_FUSE) [N/y/?] (NEW) y
Hfsplus as an aufs branch (AUFS_BR_HFSPLUS) [Y/n/?] (NEW)
Debug aufs (AUFS_DEBUG) [N/y/?] (NEW)
Summary of what I have done so far:
The latest LTSP servers can be run as OpenVZ containers, but obviously
require AUFS support in the hardware node (HN or CT0) kernel as pointed
out above. I don't really want to give up PVE. The Proxmox Virtual
Environment provides complete server virtualization management for
OpenVZ containers that we've adapted to; its kernel currently uses the
OpenVZ Kernel from sources listed below.
The Proxmox kernel sources are available from:
https://github.com/proxmox/pve-kernel-2.6.32
pve-kernel-2.6.36-32
which includes sources and patches from
http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab093.4/
vzkernel-2.6.32-042stab093.4.src.rpm
patch-042stab093
The AUFS 2.1-32 sources are available from:
http://sourceforge.net/p/aufs/aufs2-standalone/ci/aufs2.1-32/tree/
git clone git://git.code.sf.net/p/aufs/aufs2-standalone
aufs2-standalone.git
cd aufs2-standalone.git
git checkout aufs2.1-32
Here is a summary of what I've done to replace the Proxmox kernel with a
custom one.
Both vzkernel-2.6.32-042stab093.4.src.rpm and patch-042stab093 patch
linux-2.6.32, change symbol names and relocate functions. This, of
course, requires modifying the distributed patches for AUFS 2.1 to
successfully rebuild kernel. I've created a complete aufs2.1-32 patch
that has been created specifically to rebuild the Proxmox 2.6.32 kernel
packages. Note that this custom patch includes all files required to
either compile aufs2.1 into the kernel or as a module. All of
aufs2-base.patch, aufs2-kbuild.patch, aufs2-standalone.patch,
proc_map.patch and loopback.patch have been included into this patch. I
will continue to post new patches as the kernel gets updated
My current pve-kernel-2.6.32+aufs2.1-32.patch can be found on the
owncloud link below, but will be updated to reflect the suggestions
offered for the question at the beginning of this message.
https://owncloud.cs.uwindsor.ca/public.php?service=files&t=83cdb7f8067adaa046c3b3579cc47fdd
To rebuild the kernel:
cd /your/src
apt-get install kernel-package lintian
git clone https://github.com/proxmox/pve-kernel-2.6.32
pve-kernel-2.6.32.git
cd pve-kernel-2.6.32.git
patch -p1 < /your/downloads/pve-kernel-2.6.32+aufs2.1-32.patch
The root changelog.Debian is patched with an arbitrarily large version
epoch so this kernel doesn't get overwritten by an update. You should
customize this changelog.Debian for your site before rebuilding the kernel.
Finally,
make
Install the kernel and headers packages created.