Neuerungen in LXC 1.0
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Die Userspace Tools LXC erlauben die Verwaltung von Linux Container. Im Februar 2014 ist LXC 1.0 erschienen, die erste als stabil deklarierte Version.
Wichtige Neuerungen
LTS Support
LXC 1.0 ist Teil von Ubuntu 14.04 LTS (trusty) und erhält somit 5 Jahre Support. Außerdem wird LXC 1.0 Teil von Debian 8 (Jessie) sein.
liblxc API
Es wurde ein eigenes API für LXC geschaffen.
Unprivileged Containers dank User Namespaces
Ab Linux Kernel 3.12 sind unprivileged Container möglich. Dies bedeutet, dass Container als normale Benutzer ("kein root") gestartet werden können. Ein Ausbruch aus dem Container verschafft somit nicht automatisch root-Rechte.
Notwendig ist dafür eine Überarbeitung des ID Mappings und des Cgroup Managements (cgmanager) geworden.
Prebuilt Containers
Es gibt nun vorgefertigte Container unter http://jenkins.linuxcontainers.org.
Dies wurde notwendig, da ohne root Rechte das Bootstrapping von Systemen (z.b. debootstrap) problematisch sein kann.
Container Nesting
Es können nun auch Container innerhalb eines Containers gestartet werden. Dafür ist ebenfalls der cgmanager erforderlich.
Cgmanager
Bisher wurden in LXC die Cgroups über ein Filesystem Interface (z.b. /sys/fs/cgroup/) verwaltet. Für die Einführung von Container Nesting und auch des immer komplexer gewordenen Codes für die Cgroup-Verwaltung, wurde mit Cgmanager Abhilfe geschaffen. Dieser wird über ein D-Bus Interface angesprochen.
Im Paket cgmanager-utils ist der Client cgm enthalten. Damit können z.B. Werte abgefragt werden:
root@lxc:/# cgm getvalue memory '/lxc/test_container' memory.usage_in_bytes method return sender=(null sender) -> dest=(null destination) reply_serial=1 string "1676333056"
Oder alternativ via lxc-cgroup:
lxc-cgroup --name test_container memory.usage_in_bytes 1676333056
Für die Swap Limitierung muss bei Ubuntu 14.04 der Kernelparameter swapaccount=1 hinzugefügt werden. Dies erfolgt in /etc/default/grub, danach muss noch update-grub2 aufgerufen werden mit anschließendem Neustart.
Devices hinzufügen
Mit dem Kommando lxc-device können Geräte vom Host in einen Container hinzugefügt werden.
Configuration Templates
In /usr/share/lxc/config/ gibt es nun Templates die als Basis für einzelne lxc Container Konfigurationsdateien verwendet werden können. Durch diese mittels "include" eingebunden Templates bekommt man eine wesentlich schlankere Container Konfiguration.
z.B. centos.common.conf, ubuntu.common.conf, ...
Auto Start via Container Konfiguration
Bisher wurde der automatische Start von Containern via Symlinks in /etc/lxc/auto gelöst.
Nun ist diese Funktionalität mit der Container Konfigurationsdatei möglich
lxc.start.auto = 1
Beispiele auf der Kommandozeile
Die im Container konfigurierte IP kann nun am Host ausgegeben werden:
lxc-ls --fancy NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------------------------------------------------- p1 RUNNING 10.0.3.128 2607:f2c0:f00f:2751:216:... YES (ubuntu) p2 RUNNING 10.0.3.165 2607:f2c0:f00f:2751:216:... YES
Das Attach Kommando funktioniert nun ohne Probleme mit einem aktuellem 14.04er Ubuntu Kernel.
lxc-attach -n test_container
Weitere Informationen
- LXC 1.0: Blog post series (0/10) (Stéphane Graber Blog, 20.12.2013)
- S3hh's Blog (Blog, enthält viele LXC Beiträge)
Autor: Christoph Mitasch Christoph Mitasch arbeitet in der Abteilung Web Operations & Knowledge Transfer bei Thomas-Krenn. Er ist für die Betreuung und Weiterentwicklung der Webshop Infrastruktur zuständig. Seit einem Studienprojekt zum Thema Hochverfügbarkeit und Daten Replikation unter Linux beschäftigt er sich intensiv mit diesem Themenbereich. Nach einem Praktikum bei IBM Linz schloss er sein Diplomstudium „Computer- und Mediensicherheit“ an der FH Hagenberg ab. Er wohnt in der Nähe von Linz und ist neben der Arbeit ein begeisterter Marathon-Läufer und Jongleur, wo er mehrere Weltrekorde in der Team-Jonglage hält.
|