[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Konflikt zwischen lxc und cgroup-bin



Hallo allerseits,

offenbar gibt es Konflikte zwischen lxc und cgroup-bin. Ich konnte diese
nicht abschließend lösen, so dass ich nur entweder lxc oder cgroup-bin
einsetzen kann.

* Lxc verweigert in jedem Fall den Start eines Containers, wenn
cgroup-bin alle Prozesse in die Gruppe sysdefault verschiebt. Diea lässt
sich duch eine Änderung in /etc/default/cgconfig abstellen. Der
Standardwert ist meiner Ansicht nach unglücklich gewählt.

* cgroup-bin mountet nach /mnt/cgroup/cpu, /mnt/cgroup/devices usw.,
trägt diese mounts allerdings nicht nach /etc/mtab ein. Lxc verweigert
dann die Arbeit und weist an, cgroups an geeigneter Stelle zu mounten.

* Kopiert man /proc/mounts nach /etc/mtab, so erkennt lxc, dass cgroups
gemountet sind, kommt aber nicht damit klar. Lxc scheitert dann daran,
dass es die Prozesse-ID des Containers nicht von /mnt/cgroup/<pid> nach
/mnt/cgroup/<name> verschieben/umbenennen kann.

* Die Möglichkeit, cgroup-bin so zu konfigurieren, dass alle Mounts nach
/mnt/cgroup gehen, hilft leider nicht.

Im Gegensatz zu lxc kommt libvirt, welches für qemu-kvm auch cgroups
einsetzt, wenn diese verfügbar sind, mit jeder Konfigurationsvariante
zurecht. Definiert man Container mit libvirt, was kaum dokumentiert ist,
so hat man andere Probleme (man weiß nicht so recht, wie man viele der
lxc-Konfigurationsoptionen libvirt beibringen soll), zumindest scheitert
der Start des Container aber nicht an der Behandlung der cgroups.

Insgesamt habe ich den Eindruck, dass die Handbabung von cgroups unter
Debian Squeeze wenig "abgestimmt" erfolgt, wenn mehrere Pakete Gebrauch
von cgroups machen. Offenbar treffen verschiedene Pakete
widersprüchliche Annahmen.

Ich würde gern einen Bug-Report schreiben, bin aber unsicher, welches
Paket hier konkret die Schuld trifft. Generell wäre der richtige Ansatz
vermutlich, eine Strategie für das cgroup-Handling festzulegen,
zulässige Annahmen, und einige Vorgaben etc. definieren und alle Pakete
mit cgroup Nutzung dagegen zu testen und anzupassen.

Ich bin mir auch unsicher, wie "schwerwiegend" dieser Fehler ist.
Grundsätzlich handelt es sich um einen schweren Fehler handeln, weil die
Installation von cgroup-bin dazu führt, dass lxc aufhört zu arbeiten.
Andererseits tendiere ich dazu, dies auf eine fehlerhafte Implementation
von lxc zurückzuführen, welches unzulässige Annahmen trifft. Der Fehler
ist mindestens "important".

Man kann aber auch eine "Policy Violation" darin sehen, weil lxc und
cgroup-bin "de facto" durch den Fehler (ungewollt) im Verhältnis
"conflicts" oder "breaks" zueinander stehen, dann wäre es "serious".
"critical" wäre vielleicht etwas weit hergeholt, da der Schaden an den
lxc-Container durch Deinstallation rückgängig gemacht werden kann.

Ich bitte freundlich um Eure Einschätzung.

Viele Grüße

Michael

-- 
EDV-Serviceteam Annika & Michael Hierweck GbR
Egerstraße 53, 44225 Dortmund (Germany)
http://www.edv-serviceteam.net


Reply to: