• IT-Karriere:
  • Services:

Btrfs, Systemd und Cgroups für Container

Container-Images baut Facebook mit dem eigenen Build-Tool Buck, das als Open Source Software bereit steht. Verteilt werden diese Images in den Facebook-Rechenzentren über eine interne Paketverwaltung.

Stellenmarkt
  1. Gutenberg Rechenzentrum GmbH & Co. KG, Hannover
  2. Hornbach-Baumarkt-AG, Bornheim bei Landau / Pfalz

Die Images selbst werden wie bei anderen Container-Systemen auch in Schichten zusammengesetzt. Facebook nutzt hier als Basis die Distribution Centos, eine eigene Schicht mit Konfigurationen für SSH und Zertifikate sowie eine Schicht für Anwendungen und deren einzelne Binärbestandteile.

Statt der sonst üblichen virtuellen Union-Dateisysteme wie OverlayFS 2 nutzt Facebook jedoch das native Linux-Dateisystem Btrfs und hier insbesondere die Copy-on-Write-Funktion, um lediglich Unterschiede (Binary Diffs) zwischen den Images verteilen zu müssen.

Weitere Vorteile von Btrfs in diesem Kontext sind laut Facebook, dass weniger Festplattenplatz benötigt wird, die I/O-Zugriffe auf die Platten verringert werden und die Layer mit Hilfe der Btrfs-Snapshots unabhängig voneinander versioniert werden können. Letzteres ermöglicht wiederum auch unterschiedliche Update-Zyklen für die Layer. Außer Facebook setzt sonst wohl nur Suse mit seinen kommerziellen Container-Angeboten derart massiv auf Btrfs.

Systemd als Container-Dienst

Anders als Docker, das einen eigenen zentralen Daemon zum Starten der Container verwendet, setzt Facebook analog zu der Rkt-Containerengine von CoreOS auf Systemd. Facebook reduziert hier im Vergleich zu Rkt aber das Einsatzszenario auf das allernötigste und beschränkt sich ausschließlich auf die Verwendung von Systemd-Nspawn, das den Container in einem Namespace startet. Das sei extrem schnell, so Puskas.

In den Containern selbst wird der Init-Daemon von Systemd zum Starten und Verwalten der Anwendungen genutzt. Die Integration der sogenannten Control Groups (Cgroups) in Systemd ermöglicht Facebook zudem eine einfache Kontrollmöglichkeit der zur Verfügung stehenden Systemressourcen für die Anwendungen. Systemd ermögliche es hier außerdem, einfach Log-Dateien aus dem Container heraus zu verteilen.

Der beschriebene Ansatz von Facebook ist im Vergleich zu anderen Container-Systemen sehr minimal, hat laut Puskas aber den klaren Vorteil, das nur Werkzeuge Anwendung finden, die in einer Linux-Distribution sowieso verwendet werden.

Für interessierte Nutzer macht es das zumindest theoretisch sehr einfach, das Container-System von Facebook zu übernehmen. Das Unternehmen plant aber derzeit wohl nicht, daraus ein Open-Source-Projekt zu erstellen. Das gelte insbesondere für den eng an Facebook gebundenen Tupperware-Stack. Ob Facebook dieses als Open Source bereitstellen wird, wollte oder konnte Puskas auf Nachfrage nicht beantworten, die Zukunft vorhersehen könne er aber auch nicht.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Statt Docker und Kubernetes: Facebook braucht Tupperware für seine Container
  1.  
  2. 1
  3. 2


Anzeige
Top-Angebote
  1. ab 419€ Bestpreis bei Geizhals
  2. Seagate Game Drive Xbox GamePass Edition JEDI externe USB-3.0-Festplatte 2TB für 69,99€, Seagate...
  3. 139,99€ (Bestpreis!)

Carl Weathers 25. Okt 2017

Im Notfall Tupperware schlucken, und gut ist. ;)

sofries 24. Okt 2017

Jetzt überleg noch einmal gut. Hier benutzt jemand Open Source Produkte und beschreibt...


Folgen Sie uns
       


    •  /