LXC mit lxc-attach unter wheezy


LXC ist als Container-Virtualisierung echt praktisch, nur leider gibt es unter wheezy einen lästigen bug: lxc-attach funktioniert nicht, aber mit etwas Trickserei bekommt man das in den Griff.

ACHTUNG: das hier sollte bloß Leute machen, die wissen was Sie da tun !!!

Als erstes braucht man einen halbwegs aktuellen Kernel aus den Backports, dem wheezy Kernel fehlt leider /proc/$pid/ns/pid:

/etc/apt/sources.list.d/backports.list
deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

installieren kann man ihn mit dem Befehl:

apt-get install -t wheezy-backports linux-image-3.9-0.bpo.1-amd64 firmware-linux-nonfree

und dann muss man noch einen lästigen Verzeichnis Bug in lxc-attach beheben, ein Pfad ist falsch einkompiliert:

lxc-attach: No such file or directory - failed to open '/sys/fs/cgroup/<strong>/lxc/lxc</strong>/guest/tasks' 

Wenn man den nicht neu kompilieren will, ändert man halt /sys. Das geht am einfachsten in dem man die /etc/rc.local um den folgenden Inhalt erweitert:

mkdir /sys/fs/cgroup/lxc/lxc
mount -o bind /sys/fs/cgroup/lxc/ /sys/fs/cgroup/lxc/lxc

UPDATE: In Version 0.9.0 von LXC ist der lxc-attach-Bug behoben. Das deb aus Debian Jessie funktioniert auch unter wheezy und man bekommt es fertig kompiliert unter: http://packages.debian.org/search?keywords=lxc&amp;searchon=names&amp;suite=all&amp;section=all

UPDATE2: Version 1.0 aus jessie ist leider nicht mehr kompatibel mit wheezy. Daher hier Version 0.9 aus jessie.

dann noch ein reboot und es sollte laufen. Ich weiß das das keine schöne Lösung ist, sondern eher ein dirty-hack, aber zumindest funktioniert dann lxc-attach so wie man das erwartet:

# lxc-attach -n bart
bart:~# 

PS: damit die  memory Limits funktionieren muss man noch /etc/default/grub ändern:

GRUB_CMDLINE_LINUX="cgroup_enable=memory"

Created: 2013-07-06
Tags: linux lxc wheezy
Words: 231