Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

MySQL Cluster

Diskussion: MySQL Cluster im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Ich möchte mich mit MySQL HA Lösungen beschäftigen, unsere jetzigen Lösungen basieren auf einer gebalancten Webserver Umgebung und einem ...

Antwort
Alt 24.12.08, 20:55   #1 (permalink)
HDT
 
Registriert seit: 24.12.08
HDT Leistung: Facit NTK
HDT eine Nachricht über ICQ schicken
Likes: 0
Standard MySQL Cluster

Anzeige

Ich möchte mich mit MySQL HA Lösungen beschäftigen, unsere jetzigen Lösungen basieren auf einer gebalancten Webserver Umgebung und einem MySQL Server mit maximal einem hot stand by Server.

Zur Zeit verwenden wir INNODB, ich habe jetzt gelesen, dass MySQL ab Version 5 clusterfähig ist.
Hier kommt dann die NDB-Speicherengine zum Einsatz, in den Howtos habe ich gesehen, das man mindestens 3-4 Server benötigt, 2 für die Speichernodes, 1 Management Server und einen API Knoten, der in manchen Howto's aber auch weggelassen wird. Meine Frage ist jetzt wenn ich eine Webserver Umgebung habe, auf welchen Server greifen dann die Webserver/IP greifen die Webserver letztendlich zu? Auf die IP-Adresse des Management Servers, wozu ist der API Server genau da, wieso wird er oft weggelassen?

Danke!

HDT ist offline   Mit Zitat antworten
Alt 24.12.08, 21:25   #2 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Zuerstmal solltest du dir anschauen ob MySQL-Clustering wirklich eine brauchbare Lösung für dich ist. In Webumgebungen ist sie es erfahrungsgemäss zumeist nicht. Das liegt vor allem daran, dass NDB-Tabellen nicht die Features bieten wie InnoDB oder MyISAM. Schau dir also unbedingt nochmal die Spezifikationen der NDB-Tabellen an und schau ob eure Webapplikation damit überhaupt klar kommt. Sollte es nicht reichen, dann solltest du ggf. eher auf eine replizierte Umgebung setzen. Bei schreibintensiven Umgebungen wäre da eine Master-Master-Replikation sicherlich brauchbar. Habt ihr eher Lesezugriffe auf die DB, können diese auf mehrere Slave-Servern mittels Hardware-Loadbalancer oder eine Softwarelösung gut verteilt werden.

Nun noch zu eigentlichen Frage... Im Normalfall stellt man im Cluster einen API-Knoten für jeden Webserver zur Verfügung, über den dann der Zugriff auf's Cluster erfolgt. Oftmals wird der API-Knoten sogar auf den Webservern selbst installiert. Die Alternative ist ein Loadbalancer, der die Zugriffe auf die einzelnen Storage-Knoten verteilt.

Aber wie bereits gesagt... die Erfahrung hat gezeigt, dass in Webumgebungen replizierte Lösungen eher brauchbar sind als Cluster. Ich würde dir das Buch "High Performance MySQL" von Jeremy D. Zawodny und Derek J. Balling (ist bei O'Reilly erscheinen) empfehlen. Da bekommst du auf knapp 300 Seiten die Möglichkeiten der Lastverteilung bei MySQL erklärt, beginnend mit der Master-Slave-Replikation, über replizierte Umgebungen mit mehreren Mastern bis hin zum MySQL-Cluster.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.12.08, 22:12   #3 (permalink)
HDT
Themenstarter
 
Registriert seit: 24.12.08
HDT Leistung: Facit NTK
HDT eine Nachricht über ICQ schicken
Likes: 0
Standard

Hallo Bitmuncher,

stimmt, das wir dann auf viele Features verzichten müssen ist mir bewusst, ist man bei einer Master-Master Replikation auf 2 Server beschränkt? Dann würde ich mir einen Hardware Loadbalancer mit mehreren Master - Master Servern genauer anschauen.

Danke schonmal für die ausführliche Antwort.
HDT ist offline   Mit Zitat antworten
Alt 24.12.08, 23:10   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Mit einer Multi-Master-Replikation mit mehr als 2 Servern hab ich keine Erfahrung. Ich würde auch davon abraten, auch wenn sie theoretisch möglich sein dürfte, wenn man die Replikationswege gut plant. Problematisch wird vermutlich eher die Wartung und eine anständige Redundanz wirst du damit auf Dauer vermutlich auch nicht hinbekommen.

Wenn du aber so viele Schreibzugriffe auf die DBs erwartest, dass du mehr als 2 Master einplanst, ist ggf. MySQL allgemein nicht die richtige Wahl. Ich würde da eher auf eine dateibasierte DB-Lösung setzen wie Berkeley DB oder SQLite und die DB-Dateien auf einem (oder mehreren) entsprechend schnellen Fileserver(n) (z.B. einem NAS) für die Webserver verfügbar machen.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 26.12.08, 12:33   #5 (permalink)
HDT
Themenstarter
 
Registriert seit: 24.12.08
HDT Leistung: Facit NTK
HDT eine Nachricht über ICQ schicken
Likes: 0
Standard

Hallo Bitmuncher,

ich habe mich erstmal für eine Master-Master Replikation entschieden. Das ist schonmal besser als die jetzige Lösung. Cluster kommt denke ich einfach nicht in Frage. Spricht etwas dagegen vor die 2 Master Server einen Loadbalancer zu schalten? Hast du Erfahrung mit einer Master-Master Repikation? In der my.cnf muss ich doch die Datenbanken angeben welche repliziert werden sollen, wie muss das bei mehreren Datenbanken aussehen, ein Komma dazwischen? (replicate-do-db: exampledb1, exampledb2)

Danke
HDT ist offline   Mit Zitat antworten
Alt 26.12.08, 14:55   #6 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Für jede DB, die repliziert werden soll, muss eine extra Zeile mit replicate-do-db in den mysql-Abschnitt der my.cnf. Ein LB bei einer Master-Master-Replikation sollte eigentlich kein Problem sein. Bedenke aber, dass jeder Master alle Schreibzugriffe durchführen muss, egal auf welchen gerade geschrieben wird. Sollten es zuviele Schreibzugriffe werden, werdet ihr vermutlich um ein Aufteilen der DBs auf mehrere Server nicht herum kommen.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » MySQL Cluster
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[SOLVED] Simpler MySQL Cluster : SQL Node not connected buggybunny Linux/UNIX 0 12.10.07 13:02
Linux Cluster Headmaster Network · LAN, WAN, Firewalls 6 07.04.06 21:55
JohnNet (jtr cluster) kraeh Virenschutz · Tools & Aggressive Software 9 24.09.05 15:45
Cluster-Größe Achim_S Windows 2 12.03.04 15:07
Cluster mit 4 Rechnern Watchme Network · LAN, WAN, Firewalls 1 22.10.03 21:02


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61