Charlys heutiger Kandidat, der Balancer HA-Proxy, verteilt nicht nur die Last zwischen Servern auf wie ein Held, sondern hilft auch Admins dabei, ihre Phobie gegen dicke Konfigurationsdateien zu überwinden.
|
Inhalt |
|---|
|
66 | Syslog-Server für alles Ein zentraler Linux-Logserver sichert die Protokolle der 72 | Spam-Adressen per Brute Force? Ein Sicherheitsexperte behauptet, jeder könnte gültige 76 | Nmap-Werkzeuge Im Schatten des Portscanners ist ein mächtiges Toolset 80 | Management Console im Betatest Für das HA-Tool DRBD gibt es bald eine Java-basierte grafische |
An Load-Balancern für Linux herrscht kein Mangel. Über Pen [1], der in Minutenschnelle in Betrieb zu nehmen ist, habe ich hier bereits geschrieben [2], und auch Pound [3] ist ein Weltstar. Der Überflieger der Balancer-Szene nach meiner Ansicht, HA-Proxy [4], gibt aber den “Unknown Stuntman” [5]. Er beherrscht jede Facette des Double-Geschäfts – aber kaum einer kennt ihn. Dabei hat sein Autor, Willy Tarreau, seine Kompetenz als Maintainer des 2.4er Kernels unter Beweis gestellt.
Der HA-Proxy arbeitet mit einem einzigen Prozess, denn Multithreading ist was für Feiglinge. Sein Single-Thread-Ansatz gefällt durch wenig Overhead und hohe Geschwindigkeit, verlangt dem Entwickler aber sorgfältiges Arbeiten ab. Ein Fehler, ein Speicherleck oder eine Race Condition, und schon ist der – einzige – Prozess zerlegt. Der Stuntman stünde ungewollt voll im Rampenlicht.
HA-… Wer?
Der Mangel an Prominenz begründet sich möglicherweise in HA-Proxys Konfigurationsdatei, die weitaus bauchiger daherkommt als die seiner Konkurrenten. An fehlender Leistungsfähigkeit liegt es sicherlich nicht. Tarreaus profundes Wissen über den Linux-Kernel ist in der Entstehungsgeschichte evident, zum Beispiel beim Polling. Nutzten sehr frühe Versionen noch »select()«, das bei einer großen Zahl offener Dateideskriptoren zur Trägheit neigt, fanden sich zwischenzeitlich »poll()«-Aufrufe und nun »epoll()«.
Um Daten zwischen zwei Interfaces zu transportieren, kommt auch schon das brandneue »splice()« zum Einsatz und katapultiert HA-Proxy in die Liga der zweistelligen GBit/s-Spitzen. Tarreau verweist zudem stolz auf Referenzen, die dauerhaft zwischen 2 und 3 GBit/s durch seinen Balancer schaufeln.
Die Angst vor der länglichen Konfigdatei scheint nicht zwingend. Zwar darf ich an sehr vielen Rädchen drehen, aber ein Grundsetup für das Balancing zweier Webserver ist so übersichtlich wie in Listing 1. Allerdings wird eine so einfache Aufgabe HA-Proxys Leistungsspektrum nicht gerechnet. Andererseits sind Stuntmen es gewohnt, ihr Licht unter den Scheffel zu stellen, damit der eigentliche Star gut rüberkommt. (jk)
|
Listing 1: |
|---|
01 global 02 maxconn 16000 03 ulimit-n 65536 04 user haproxy 05 group haproxy 06 daemon 07 nbproc 1 08 pidfile /var/run/haproxy.pid 09 10 listen http 0.0.0.0:80 11 mode http 12 option httplog 13 balance roundrobin 14 server www1 192.168.1.20:80 check 15 server www2 192.168.1.21:80 check |
|
Infos |
|---|
|
[1] Pen: [http://siag.nu/pen/] [2] Charly Kühnast, “Geteilte Load ist halbe Load”: Linux-Magazin 09/02, S. 71 [3] Pound: [http://www.apsis.ch/pound/] [4] HA-Proxy: [http://haproxy.1wt.eu] [5] Lee Majors “The Unknown Stuntman”: [http://www.youtube.com/watch?v=-3CXp54h4ew] |






