Zum Hauptinhalt Zur Navigation

DHCPLB: Facebooks Loadbalancer verringern Hardware auf ein Zehntel

Zum Provisionieren seiner Server nutzt Facebook DHCP . Dank eines eigenen Loadbalancers und Servers konnte das Unternehmen die benötigte Hardware bei gleichem Traffic-Aufkommen massiv reduzieren. Die Software dazu ist Open Source.
/ Sebastian Grüner
5 Kommentare News folgen (öffnet im neuen Fenster)
Die Server von Facebook werden per DHCP provisioniert. (Bild: Facebook)
Die Server von Facebook werden per DHCP provisioniert. Bild: Facebook

Facebook stellt in seinem Entwicklerblog(öffnet im neuen Fenster) seine aktuelle Infrastruktur für DHCP und das dafür genutzte Loadbalancing vor. Dank verschiedener Neuerungen sehe Facebook damit einen "besseren Durchsatz" . Weiter heißt es: "Tatsächlich verarbeiten wir jetzt das gleiche Verkehrsvolumen mit zehnmal weniger Servern" . Der grundlegenden Code dazu ist nun als Open Source verfügbar.

In seinen Rechenzentren nutzt Facebook nach eigenen Angaben DHCP als Verwaltungsprotokoll, um die Bare-Metal-Server zu provisionieren, also etwa um darauf Betriebssysteme zu installieren. In den vergangenen Jahren hat das dafür zuständige Team viel Arbeit investiert, um die dazu nötige Infrastruktur möglichst skalierbar zu gestalten. Dies ist klar iterativ geschehen und gipfelt vorerst in den nun vorgestellten DHCPLB-Servern.

Begonnen hat das Team mit dem DHCP-Server des ISC, der Referenzimplementierung für das Protokoll. Dieser wurde jedoch schnell durch den KEA-DCHP-Server der ISC(öffnet im neuen Fenster) ersetzt. Dem Blogeintrag zufolge wurde der Netzwerkverkehr jedoch nicht gleichmäßig auf die KEA-Instanzen verteilt. Das Team erstellte deshalb einen Relay-Server, der DHCP-Requests gleichmäßig auf die Kea-Server verteilt - also einen Load Balancer für DHCP (DHCPLB).

Multi-Thread DHCP-Server und Load-Balancer

Doch auch das reichte für das Unternehmen nicht aus, da Kea eine Single-Thread-Anwendung ist, was den Netzwerkverkehr unter Umständen massiv blockieren kann. Im Zuge eines Hackathons erstellte das Team deshalb eine neue DHCP-Bibliothek(öffnet im neuen Fenster) , die in Go geschrieben ist und einen Multi-Thread-Ansatz implementiert.

Die Entwickler des Unternehmens haben schließlich die neue Bibliothek mit ihrem bereits vorhandenen Loadbalancer für DHCP kombiniert und so zu einem vollwertigen DHCP-Server ausgebaut, der deutlich mehr Netzwerkverkehr verarbeiten kann, als das vorher genutzte KEA. Selbst mit einer stark steigenden Anzahl von Anfragen pro Sekunde bleibt die Latenz des neuen Aufbaus außerdem nahezu konstant, während diese bei KEA immer weiter gewachsen ist.

Der Code für diesen Aufbau hat Facebook als Framework auf Github veröffentlicht(öffnet im neuen Fenster) .


Relevante Themen