Drahtlose Netzwerke sind überall: Zu Hause, im Café und in der Firma. Im Gegensatz zu Kabelnetzen verliert der Admin bei WLANs allerdings schnell die ... (mehr)

Cgroups

Dabei stechen zwei Funktionen hervor: Cgroups und Namespacing. Cgroups steht für Control Groups und bezeichnet eine Kernel-Funktion in Linux, mit der sich Prozessgruppen definieren lassen, um anschließend die verfügbaren Ressourcen für diese Gruppen zu beschränken. Vornehmlich geht es um Hardware: Für Cgroups lässt sich festlegen, wieviel RAM, Platz auf der Platte oder Disk-I/O eine Gruppe verwenden darf. Die Liste der verfügbaren Kriterien ist dabei freilich weit länger als diese Beispiele. Seit der Version 2.6.24 sind Cgroups fester Bestandteil des Kernels, und über die Jahre haben die Kernel-Entwickler die Cgroup-Funktionen deutlich ausgebaut. Neben der oben erwähnten Begrenzung von Ressourcen lassen sich Cgroups nämlich mittlerweile auch priorisieren sowie von außen ordentlich steuern.

Namespacing

Namespacing spielt in Linux zusätzlich eine zentrale Rolle, wenn es um das Thema Sicherheit geht. Cgroups per se sind nämlich nicht vorrangig dafür da, Prozesse voneinander abzugrenzen – sie kümmern sich bevorzugt um Ressourcen. Den Sicherheitsaspekt werfen Namespaces in die Waagschale: Über Namespaces lassen sich nämlich einzelne Prozesse oder Cgroups vor anderen Prozessen oder Cgroups verstecken.

Feingranular ist die Technik obendrein: Namespaces unterscheiden zwischen den Prozess-IDs, dem Netzwerkzugriff, dem Zugriff auf den gemeinsamen Hostnamen, Mountpoints oder der Kommunikation aller Prozesse miteinander (IPC). Network-Namespaces sind mittlerweile zum Beispiel recht beliebt, um auf dem gleichen Host eine Trennung zwischen den Paketen von mehreren Benutzern herbeizuführen: Ein Prozess innerhalb eines Namespaces kann dabei weder die Host-Interfaces noch die Interfaces in den Namespaces anderer Kunden sehen – und schon gar nicht anzapfen.

Während Cgroups und Namespaces für sich genommen nette Features sind, werden sie im Team zur attraktiven Virtualisierungstechnik. Denn durch die Option, Prozesse zu kontrollierbaren Gruppen zusammenzufassen, um sie anschließend in ihren Möglichkeiten zu begrenzen, ergibt sich ein simpler, aber effektiver Container-Ansatz. Diese Funktionen bietet LXC, und Docker baut auch auf dieser Grundfunktionalität auf.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021