OVH Community, your new community space.

HowTo Idee: Loadbalancer Selfmade...


schwarzlicht
16.01.08, 19:08
Loadbalancemit MYSQL geht nur wenn Du nur lesend auf die gleichen Datenbestände zugreifst, wird ein Datensatz geschrieben muss dieser repliziert werden, also den balancierenden Servern auch mitgeteilt werden, damit die Datenbanken auf allen Servern immer gleich sind.

Ein MySql-Hostsystem mit 8-16GB RAM und SAS Festplatten (>3) in Raid0 / Raid5 sollte aber schon eine extrem hohe Anzahl an Querys ab können wenn alle unnötigen Dienste abgeschaltet sind.

Das einfachste Mittel ist es aber, seine DB-Anfragen optimieren zu lassen und/oder statische Datenbestände auf einem anderen Server abzulegen.

Gerade Join's(Tabellenverknüpfung) mit einem SELECT * FROM erzeugen extrem viel Last.

Daniel

caraoge
16.01.08, 19:05
Man könnte einen MySQL Master auf Server1 und einen MySQL Slave auf Server2 einrichten. Wenn die Datenbank ständig Repliziert wird, sind die Daten ja überall gleich.
Die Anwendungen (Portal, o.ä.) die auf Server1 laufen müssen dann nur auf den MySQL Master zugreifen.
Die Anwendungen die auf Server2 laufen greifen dann auf den MySQL Slave zu.

Oder halt einen Failover Cluster einrichten:
http://dev.mysql.com/doc/refman/5.1/...plication.html
Dann könnte man die Daten (Portal, Bilder, etc) einer Partition auch ständig mit rsync aktuell halten.

Quiro
16.01.08, 19:05
Hi,

Ich sehe da noch einen kleinen Unterschied, ob es sich um ein Fail Over System oder um ein echtes Load Balancing handelt.

Den genannten Link würde ich zu Fail Over zählen. :-)

LVS ( http://www.linuxvirtualserver.org/ ) zähle ich zu echtem Load Balancing.

LVS habe ich selbst schon in verschiedenen Situationen eingerichtet und auch über Jahre hinweg betrieben. Meiner Meinung ist es nur noch durch eine Load Balancer Lösung auf Hardware Basis zu schlagen.

Ein grosses Problem, dass man fast mit jeder Load Balancer Konfiguration bei einem Provider bekommt sind die IPs und das Routing. Hier muss und sollte man dringendst mit dem Provider Rücksprache halten.

Selbstverständlich kann man mit LVS auch einen DB Cluster aufbauen, der die Anfragen an die Datenbank verteilt. Für die Datenkonsistenz richtet man mehrere MySQL Server mit Replication ein. Bei einer überschaubaren Datenmenge aber eher MySQL Cluster.

Sonnige Grüsse

OVH_Kunde
16.01.08, 18:34
Zitat Zitat von schwarzlicht
Hier ist eins
Habe es aber noch nicht getestet.

Daniel
Interessant...bloß wie ists wenn MySQL zusätzlich zum Einsatz kommt?
Die Datenkonsistenz musst ja gewährleistet sein.

schwarzlicht
16.01.08, 18:04
Hier ist eins
Habe es aber noch nicht getestet.

Daniel

caraoge
16.01.08, 17:42
Ganz einfach wäre ein "DNS Loadbalancing" das über RoundRobin gelöst wird. Bind als Nameserver kann dass.
Wäre zwar kein wirkliches Last Loadbalancing, jedoch schon mal ein anfang ;-)

OVH_Kunde
16.01.08, 17:23
Kennt da jemand ein gutes HowTo oder hat jemand Lust eins zu machen?
Wird ja mit den RPS sicher für viele ein Thema werden...!