Google verrät Details über Loadbalancer

18.03.2016

In einem Paper stellt Google die Architektur seines softwarebasierten Loadbalancers vor.

Auf dem 13. Usenix-Symposium on Networked System Design and Implementation (NSDI) in Santa Clara (USA) stellt Google zum ersten Mal die Architektur seines Loadbalancers der Öffentlichkeit vor. Bisher war über die Funktion des Loadbalancers namens Maglev, der für die meisten Google-Dienste und die Google-Cloud verwendet wird, wenig bekannt. Im zum Vortrag gehörigen Paper können Interessierte, die nicht vor Ort sind, alle Details nachlesen. 

In dem Paper " Maglev: A Fast and Reliable Software Network Load Balancer " gehen die Autoren zunächst auf die Schwierigkeiten ein, die konventionelle, auf spezieller Hardware basierende Loadbalancer mit sich bringen. Beispielsweise sind die meisten Geräte nur dafür ausgelegt, paarweise Loadbalancing und Failover zu realisieren. Google wollte dagegen eine flache Struktur mit einer beliebigen Anzahl von Loadbalancer-Knoten, die sich gut skalieren lässt. Außerdem sind die meisten kommerziellen Produkte relativ abgeschlossene Systeme, die sich nicht gut in eine hausgemachte Infrastruktur wie bei Google integrieren lassen. 

So setzt Google auf normale Server-Hardware mit 10 GBit/s schnellen Netzwerkkarten und selbstgeschriebener Software, die die Loadbalancing-Funktionen implementiert. Google umgeht dabei den Netzwerk-Stack des Linux-Kernels, da der durch seine Komplexität relativ langsam ist und Pakete zwischen Userspace und dem Kernel hin- und herkopiert werden müssen. Stattdessen nimmt der Google-Loadbalancer-Code die Pakete von der Netzwerkkarte, berechnet die nötigen Hashes für die Verwaltung, packt sie in das Tunnel-Protokoll GRE ein, um sie dann an die Backend-Server weiterzuleiten. Auf den Dual-Core-Rechnern ist ein Core für die Netzwerkverarbeitung reserviert, während der andere die restlichen Arbeiten übernimmt, beispielsweise die Betriebssystem-Tasks. 

Damit erreicht Google sehr hohe Performance, die nahezu der Bandbreite der Netzwerk-Interfaces entspricht. In Tests mit 40-Gbit/s-Karten hat sich das System ebenfalls bewährt, konnte aber die verfügbare Bandbreite nicht komplett nutzen. Dafür wollen die Google-Programmierer den Maglev-Loadbalancer künftig optimieren. 

Was die Verarbeitung von Netzwerk-Paketen im Userspace betrifft, gehen Projekte wie Seastar  , mTCP und  DPDK einen ähnlichen Weg wie Maglev. 

Ähnliche Artikel

comments powered by Disqus
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 /2023