Original-URL des Artikels: https://www.golem.de/news/maglev-google-umgeht-mit-seinen-load-balancern-den-linux-kernel-1603-119839.html    Veröffentlicht: 17.03.2016 14:19    Kurz-URL: https://glm.io/119839

Maglev

Google umgeht mit seinen Load-Balancern den Linux-Kernel

Das System Maglev ist für die Lastverteilung in der Google-Cloud verantwortlich. Das Unternehmen hat nun Details dazu beschrieben und beeindruckt mit einem kreativen Umgang mit dem Netzwerk-Stack des Linux-Kernels.

Zwar können Konkurrenten den von Google eingesetzten Software-Load-Balancer Maglev nicht einfach schnell in ihren Rechenzentren ausrollen - dazu fehlt der Quellcode des Projekts. Dank einer nun veröffentlichten wissenschaftlichen Beschreibung des Systems können andere Unternehmen damit aber immerhin aus den Erfahrungen und Details zu Maglev lernen. Interessant ist vor allem der Umgang mit dem Linux-Kernel.

Netzwerk-Stack des Linux-Kernels wird umgangen

Maglev ist der Beschreibung zufolge insbesondere auf das schnelle Verarbeiten von Paketen ausgelegt. So heißt es in der Erklärung, dass die Systeme mit 10 GBit/s angebunden seien und bei Google typischerweise oft sehr kleine Pakete von durchschnittlich nur 100 Byte Größe verarbeiten müssten.

Das entspreche etwa 9 Millionen Paketen pro Sekunde, die weitergeleitet werden müssen. Der Netzwerk-Stack des Linux-Kernels könne derartige Leistungsanforderungen jedoch nicht erfüllen, da dieser zu rechenintensiv sei. Mit der Unterstützung der Netzwerkkarten umgeht Maglev deshalb schlicht den Linux-Kernel und verwendet keinerlei Funktionen des Netwerk-Stacks.

Kosteneffiziente Konfiguration

Statt einer Aktiv-Passiv-Konfiguration, die bei den Hardware-Load-Balancern üblich sei, um einen Failover gewährleisten zu können, seien alle Maglev-Knoten in einem Cluster aktiv. Die notwendige Redundanz für die Hochverfügbarkeit wird über eine N+1-Konfiguration erreicht. Fällt ein Knoten aus, übernehmen die anderen die Arbeit. Über die Google-eigene Cluster-Verwaltung Borg können notfalls auch schnell neue Maglev-Instanzen gestartet werden.

Diese Konfiguration spare Kosten, da weniger physische Ressourcen ungenutzt vorgehalten werden müssten. Zum Verteilen der einkommenden Pakete nutzt Maglev das sogenannte Equal-Cost Multi-Path Routing (ECMP). Über bestimmte Hashing-Techniken ließen sich die Pakete von den Maglevs zudem verfolgen und an die eigentlichen Dienste weiterreichen.  (sg)


Verwandte Artikel:
Aus kostenpflichtiger Version: Nginx veröffentlicht TCP-Load-Balancer   
(21.04.2015, https://glm.io/113627 )
Chinas nächste Maglev: Bis 2020 sollen erste Test-Magnetbahnen 600 km/h erreichen   
(01.02.2018, https://glm.io/132520 )
Stellenanzeige: Facebook will Linux-Netzwerkstack wie in FreeBSD   
(07.08.2014, https://glm.io/108418 )
GPS Share: Gnome-Anwendung teilt GPS-Daten im LAN   
(30.05.2017, https://glm.io/128099 )
Open Networking: Die Zukunft des Netzwerk-Admins ist der Linux-Sysadmin   
(09.05.2017, https://glm.io/127696 )

© 1997–2020 Golem.de, https://www.golem.de/