For anyone else following this, I neglected to mention that you do need to run 'make install_headers" from the aufs2-standalone.git directory in order to build aufs2-util.

git clone git://git.code.sf.net/p/aufs/aufs2-standalone aufs2-standalone.git
    cd aufs2-standalone.git
    git checkout aufs2.1-32
    make install_headers

    git clone git://git.code.sf.net/p/aufs/aufs2-util aufs2-util.git
    cd aufs2-util.git
    git checkout aufs2.1
    make install

Although I've managed to get this part done, I haven't been able to get a container to use aufs yet.

On 15/09/14 03:02 PM, Robert Mavrinac wrote:
On 29/08/14 01:07 PM, Vagrant Cascadian wrote:
Looks 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
    > 1. 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
      > 1. 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.



--

Robert Mavrinac
Server & Network Technician
School of Computer Science
Room 3104 Lambton Tower
University of Windsor
401 Sunset Avenue, Windsor, ON N9B 3P4
519-253-3000 (4410)
Email:[email protected]  <mailto:[email protected]>


------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_____________________________________________________________________
Ltsp-discuss mailing list.   To un-subscribe, or change prefs, goto:
      https://lists.sourceforge.net/lists/listinfo/ltsp-discuss
For additional LTSP help,   try #ltsp channel on irc.freenode.net

Reply via email to