MySQL-Cluster - Zwei SQL-Server, eine Anwendung - Wie sagt man der Anwendung, welcher Server gerade der Master ist?

Mitglied: Yukari

Yukari (Level 1) - Jetzt verbinden

02.12.2009 um 12:29 Uhr, 5134 Aufrufe, 3 Kommentare

Ich habe vor kurzem mit HIlfe von MySQL-Cluster einen HA-Cluster für meine Datenbank umsetzen können. Es funktioniert auch alles gut soweit, aber jetzt hapert es bei der Verbindung mit den Anwendungs-Servern.

Der Cluster ist folgendermaßen aufgebaut:

sql- & data-server 1 --> mysqld, ndbd --> 192.168.0.1
sql- & data-server 2 --> mysqld, ndbd --> 192.168.0.2
management-server --> ndb_mgmd, ndb_mgm --> 192.168.0.3


Das Problem ist, dass ich der Anwendung eine IP geben muss unter welcher sie die Datenbank finden kann. Verwende ich die IP des ersten SQL-Servers, geht auch alles gut solange dieser der Master ist. Im Falle eines Failover hat das aber logischerweise einen großen Haken. Denn dann ist plötzlich der zweite Server der Master. Die Anwendung versucht natürlich weiterhin auf den ersten Server zuzugreifen, was ja nicht funktionieren kann. Trage ich dann die IP des zweiten Servers manuell in der Anwendung ein, funktioniert zwar alles wieder einwandfrei, aber das ist logischerweise keine wirkliche Lösung.

Meine erste Idee war, einfach einen DNS zu verwenden und beiden Servern den selben Alias zu geben und nur diesen in der Anwendung einzutragen. Dabei taucht aber ein ähnliches Problem auf. Woher weiß der DNS welcher Server gerade der Master ist?

Ich hoffe jemand von euch kann mir bei diesem Problem weiterhelfen oder hat vielleicht eine andere Idee, wie man es lösen könnte.
Ich wäre auf jeden Fall sehr dankbar dafür.

Grüße,
Yukari
Mitglied: maretz
02.12.2009 um 15:51 Uhr
Moin,

du hast da leider nur die halbe Arbeit getan.

Deine Anwendung SOLL gar nicht auf einen der Nodes zugreiffen. Wenn du das machst dann wird das natürlich nur dann gehen wenn dieser auch vorhanden ist. Und wenn der dann ordentlich unter Feuer steht langweilt sich sein Kollege immernoch.

Schalte davor mal nen Load-Balancer -> und deine Anwendung geht immer auf die IP vom LB. Das nutze ich auch in einer Testumgebung - und das läuft super. In dem Moment intressiert dich auch nicht wer hier Master ist und wer nicht - der Mgmt-Srv. sollte automatisch dafür sorgen das die Datenbestände immer gleich sind.

Und wenn du es dann noch ganz schön machen möchtest dann nimmst du auf dem LB noch nen Heartbeat drauf und machst DA den Eintrag das beim Ausfall des LB-1 der LB-n zum Master wird (inkl. übernahme der IP usw.).

Und: Nicht vergessen: Was passiert wenn dein Mgmt-Server ausfällt?
Bitte warten ..
Mitglied: Yukari
02.12.2009 um 16:17 Uhr
Zitat von maretz:

Deine Anwendung SOLL gar nicht auf einen der Nodes zugreiffen. Wenn
du das machst dann wird das natürlich nur dann gehen wenn dieser
auch vorhanden ist.

Genau das ist ja mein Problem.

Schalte davor mal nen Load-Balancer -> und deine Anwendung geht
immer auf die IP vom LB. Das nutze ich auch in einer Testumgebung -
und das läuft super.

Hm, das wäre natürlich auch eine Option. Die Frage ist nur, wie ich das umsetzen kann. Die Anwendungs-Server habe ich bereits mit Hilfe des Windows NLB-Managers verbunden. Die SQL-Server laufen aber unter Linux, da der MySQL-Cluster nicht für Windows empfohlen wird.
Bei Linux habe ich aber wiederum gar keine Ahnung, wie ich da ein Loadbalancing erreichen kann.
Klar, es gibt Hardware-Lösungen, aber im Moment muss ich mich erstmal auf Software-Lösungen beschränken. Hast du da vielleicht einen Tipp für mich?

>In dem Moment intressiert dich auch nicht
wer hier Master ist und wer nicht - der Mgmt-Srv. sollte automatisch
dafür sorgen das die Datenbestände immer gleich sind.

Wenn ich das richtig beobachtet habe, kümmert sich der Management-Server garnicht darum. Den brauche ich eigentlich nur am Anfang um die Verbindung zwischen den beiden SQL-Servern herzustellen. Wenn die einmal laufen, kann ich den Management-Server eigentlich auch aus- oder einschalten wie ich lustig bin. Die Datenbanken sind dann immernoch synchron. Ein Ausfall ist also nicht sofort gravierend, sondern nur dann falls gleichzeitig einer der SQL-Server ausfällt. Der kann die Verbindung zum Cluster dann soweit ich weiß nur wieder herstellen, wenn der Management-Server da ist.

Und wenn du es dann noch ganz schön machen möchtest dann
nimmst du auf dem LB noch nen Heartbeat drauf und machst DA den
Eintrag das beim Ausfall des LB-1 der LB-n zum Master wird (inkl.
übernahme der IP usw.).

Es gibt beim Loadbalancing einen Master? Ich kenne mich damit noch nicht so gut aus, da ich bisher wie gesagt nur eine Lösung mit Windows probiert hatte für die Anwendungsserver. Ich habe dabei noch nicht alle Situationen getestet, aber wenn ich das richtig sehe, sind die Hosts da relativ gleichwertig.
Wenn ich sie konfiguriert habe, ist es bisher egal gewesen ob nur einer da ist anfangs und den anderen erst später hochfahre. Sobald beide da sind und eine Netzwerkverbindung haben scheinen die die Verbindung automatisch herzustellen. Eine Art Master konnte ich dabei nicht erkennen.

Und: Nicht vergessen: Was passiert wenn dein Mgmt-Server
ausfällt?

Siehe weiter oben.
Bitte warten ..
Mitglied: Yukari
07.12.2009 um 15:41 Uhr
Ist zwar nicht gelöst, aber hat sich mittlerweile erledigt ^^ da ich auf Windows umsteigen muss (Anweisung von oben)
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Wohin mit alter (Server)Hardware?
insidERRVor 1 TagFrageOff Topic35 Kommentare

Hallo zusammen. Nachdem unser Leasing nach 5 Jahren ausgelaufen ist, haben wir auf der Arbeit neue Server bekommen. Wieder sind es zwei Hosts für ...

Windows Netzwerk
Wie VPN in Zeiten von HomeOffice einfach gestalten
VizKyneticVor 1 TagFrageWindows Netzwerk12 Kommentare

Moin! Vermehrt kommen die Anfragen zu HomeOffice Arbeitsplätzen und der Möglichkeit Remote zu arbeiten. Wir haben verschiedene Lösungen im Einsatz, da diese Struktur über ...

Datenschutz
DSGVO-konforme Löschsoftware für Festplatten
alwayshungryVor 1 TagFrageDatenschutz26 Kommentare

Hallo zusammen, welche Software gibt es, damit man DSGVO-konform Festplatten löschen kann? Ich kenne zwar Blancco, aber gibt es denn da keine gesetzeskonforme Alternativen? ...

Windows 10
Windows 10 Anmeldezeitenbeschränkung für Kinder
gelöst bastian23Vor 1 TagFrageWindows 1014 Kommentare

Hallo, kennt jemand von Euch eine Lösung, um meine Kinder daran zu hintern ihre Notebooks nach z.B. 21 Uhr zu nutzen? Ein einfacher shutdown ...

TK-Netze & Geräte
Panasonic NS700 an S0 von Fritzbox
jensgebkenVor 1 TagFrageTK-Netze & Geräte38 Kommentare

Hallo Gemeinschaft, gibt es eine Möglichkeit meine gebrauchte NS700 mit einer Fritzbox zu verbinden, so dass ich auch raustelefonieren kann - hinter der NS ...

Microsoft
Druckerwarteschlange druckt nur 9999 Seite
WBPowerVor 1 TagFrageMicrosoft8 Kommentare

Hallo zusammen, ich habe folgende Problemstellung. Wir betreiben einen Printserver auf Basis Windows Server 2016 (ca. 100 Drucker unterschiedlichster Hersteller und Modelle). Die Kollegen ...

Windows 10
Was sagt ihr zum Windows 10 auf den Raspberry Pi 4 ?
SpielfoxLPVor 1 TagFrageWindows 108 Kommentare

Moin , Ich habe gestern auf den Raspberry Pi 4 Windows 10 installiert und wollte Frage was ihr da von haltet ?

Switche und Hubs
100Mbit per 4 Adern
geforce28Vor 1 TagFrageSwitche und Hubs5 Kommentare

Hallo zusammen, ich habe folgendes Szenario realisiert: Über 4 Adern (alte Telefonleitung, die in der Wand liegt mit, ca. 15m) ist eine 100Mbit Ethernet ...