Re: load balancing

From: Bernd Walter <ticso(at)cicely8.cicely.de>
Date: Sun, 31 Mar 2002 15:54:11 +0200

On Sun, Mar 31, 2002 at 02:49:43PM +0200, universe wrote:
> moin!
>
> wir muessen fuer einen kunden ein load balancing-konzept erstellen. es
> geht dabei um 2 webserver, zwischen denen "balanced" werden soll. als load
> balancer, also der rechner, der als einziges eine externe IP-adresse
> besitzt und eintreffende http-requests per round-robin an die beiden
> internen (10.0.0.x) webserver weiterleitet, moechte ich gerne freebsd
> einsetzen. natd bietet mit dem switch "-redirect_address tcp
> www1:http,www2:http www:http" (aus dem manfile) die passende option.
>
> die frage ist, ob natd versteht, dass wenn einer der beiden webserver
> offline geht (falls die hardware einen schaden bekommt, oder fuer upgrades
> rausgenommen wird), es nur noch requests an den webserver schickt, der
> auch tatsaechlich laeuft. es waere schlecht, wenn 50% der requests
> gedropped werden, waehrend einer der server offline ist.

Wie sollte er das denn feststellen?
Er ändert die IP in den Packeten und das wars.

> leider fehlen mir die moeglichkeiten um dass vorab zu testen. hat da
> jemand erfahrung mit bzw. kennt noch eine andere loesung fuer load
> balancing als natd? dns round-robin kommt nicht in frage.

Ist nicht schwer den natd aufzubohren.
Ich würde das umsetzen mittels Ziel-IP und Port in einer Hashtable
nachfragen und von dort sie neue Ziel-IP und Port abhohlen.
Die Hashtable ist natürlich mit % Angaben über mehrere Alternative
Zielpaare gefüllt.
Die Hashtable kannst du dann mittels externem Programm (z.B. einem
Perlscript) mit frischen Informationen versorgen.
Damit hast du dann auch die Lastverteilung unter Kontrolle.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso(at)cicely.de         Usergroup           info(at)cosmo-project.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 31 Mar 2002 - 16:00:27 CEST

search this site