
OpenVZ-Chef Kir Kolyshkin erläutert auf dem Linuxtag 2009, wie sich die Container-Software zum Ressourcenmanagement einsetzen lässt.
Auf dem Linuxtag erläuterte OpenVZ-Projektleiter Kir Kolyshkin, dass sich die Software auch zum Ressourcenmanagement unter Linux eignet .
Die Anforderungen seien klar, legte Kolyshkin eingangs dar: Jeder Computer verfügt nur über endliche Ressourcen wie CPU-Zeit, Speicher, Platten-Platz und -I/O sowie Netzwerk-I/O. Der Administrator hat Interesse daran, diese Ressourcen geplant zu vergeben, etwa um Denial of Service zu verhindern, bestimmten Diensten Quality of Service zu garantieren oder schlicht, um eine Abrechnung zu erstellen.
Der Linuxkernel bringe bereits einige Instrumente zum Ressourcenmanagement mit, fuhr Kir Kolyshkin fort: Disk Quotas, Nice und Renice, die Realtime-Priority-Queue sowie die harte Begrenzung von CPU-Zeit durch “ulimit -c”. Allein Ulimit kontrolliert 16 unterschiedliche Parameter. Für die Praxis findet Kolyshkin dieses Bordmittel aber nicht ausreichend: Einige Grenzen seien gar nicht einzustellen, die übrigen werden beim Login gesetzt und seien nachträglich nicht mehr zu regulieren

OpenVZ-Chef Kir Kolyshkin erläutert auf dem Linuxtag 2009, wie sich die Container-Software zum Ressourcenmanagement einsetzen lässt.
Hier bringt Kir Kolyshkin sein Projekt OpenVZ ins Spiel. Die Software erlaubt es, auf einem einzigen Kernel mehrere voneinander isolierte Userspaces anzulegen, die so genannten Container. Das nutzen beispielsweise Webhoster für ihre Angebote. Anders ausgedrückt sind Container Gruppen von Prozessen.
OpenVZ bringt eigene Mittel zur Kontrolle der Rechnerressourcen mit, die User Beancounters. Sie kennen 20 Parameter, die sich zur Laufzeit ändern lassen, und das für Prozessgruppen. Die Gruppierung kann dabei nach Container, User oder Applikation erfolgen, beispielsweise besitzt der Webserver Apache 2 mehrere Prozesse, die man aber sinnvollerweise zu einer Applikationsgruppe zusammenfasst. Das OpenVZ-Wiki widmet den User Beancounters eine eigene Kategorie.
Im Mainline-Kernel, verriet Kolyshkin, gibt es mit Cgroups einen weiteren Kontrollmechanismus, der aus der Welt des Big Iron von Bull und SGI stammt. Der Google-Entwickler Paul Menage brachte das Erbe als generischen Mechanismus zum Gruppieren von Prozessen in den Linux-Kernel ein. An solche Gruppen lassen sich Controller binden. Cgroups bieten allerdings noch nicht so viele Features wie die Beancounters aus OpenVZ, Kir Kolyshkin wünscht sich unter anderem noch Shared Pages Accounting, I/O-Prioritäten pro Gruppe sowie Checkpoint/Recreate. Letzteres friert den Zustand einer Gruppe ein und wird von Container- oder Virtualisierungssoftware wie OpenVZ und Xen zur Live-Migration eingesetzt. Weitere Informationen finden sich im Kernel-Quelltext unter “Documentation/cgroups/*” und “Documentation/controllers/*”
Am liebsten möchte der OpenVZ-Mann alle Features seiner Container-Software im Mainline-Kernel sehen, aber das dauere “noch Jahre”. Daher denkt Kir Kolyshkin lieber an das nächstliegende Ziel: die Integration von Checkpoint/Recreate in den offiziellen Linux-Kernel.

