HA Datenbank

Frank Sommer

New Member
Jul 6, 2016
6
0
1
56
Hallo Forum, ich bin ganz neu hier und gerade bei den ersten Gehversuchen mit proxmox.
Folgendes ist das erklaerte Ziel: Ich moechte eine ausfallsichere MySQL-Datenbank aufbauen, bestehend aus (zunaechst) zwei Nodes in einem Cluster. Da die Maschinen neben der DB auch einige crons und permanente loop-scripts laufen haben, kommt eine reine DB-Replikation nicht in Frage, sondern ich moechte die komplette Maschine spiegeln. So weit ich das verstanden habe, muss ich auf beiden nodes PX installieren, dann je eine virtuelle Maschine erstellen und in der (zumindest auf einem Host) mein OS fuer die DB installieren. Richtig?
Meine Fragen nun:
1.) Ist mein Ansatz ueberhaupt der richtige? Geht das so, wie ich mir das denke? Kann ich dann meine DB auf einer virtuellen IP ansprechen, ohne zu wissen, welcher node dahinter steckt?
2.) Wie krieg ich die HA-Clusterung zum laufen? Ich habe auf 2 Testmaschinen das PX drauf, eine "Migration" ueber das Webinterface hat auch geklappt, aber das ist ja noch kein HA-cluster. Kann mir jemand ein Syntaxbeispiel fuer den ha-manager geben bitte?

Vielen Dank so weit, Frank
 
Hi,

1.) Ist mein Ansatz ueberhaupt der richtige? Geht das so, wie ich mir das denke? Kann ich dann meine DB auf einer virtuellen IP ansprechen, ohne zu wissen, welcher node dahinter steckt?
Ja bei einer migration ist die VM unter der gleichen IP errechbar.
Wichtig ist nur das die Virtualbridge im selben Netzwerk sind und den Selben Namen haben.

HostA HostB
vmbr0 vmbr0
192.168.1.11 192.168.1.12
VM
192.168.1.50


2.) Wie krieg ich die HA-Clusterung zum laufen? Ich habe auf 2 Testmaschinen das PX drauf, eine "Migration" ueber das Webinterface hat auch geklappt, aber das ist ja noch kein HA-cluster. Kann mir jemand ein Syntaxbeispiel fuer den ha-manager geben bitte?
Ha kannst du über die GUI aktivieren im Datacenter->HA

Für HA brauchst du aber 3 Nodes.
Alles andere ist kein HA.

Siehe
https://pve.proxmox.com/wiki/High_Availability_Cluster_4.x
 
Danke Wolfgang, das klingt ja schon mal vielversprechend. Dass man fuer HA drei Maschinen braucht, hab ich schon gelesen, ja. Naja, die zwei DB-Server sind aktuelle Xeons, davon kann ich mir vorerst keinen dritten leisten ;-) Aber, als Fallback irgend eine $kiste ist sicher verfuegbar. Hauptsaechlich gings mir darum, ob ich ueberhaupt auf dem richtigen Weg bin, kenne mich mit Clustern noch nicht so aus. (Mosix ist ja schon seit 20 Jahren aus der Mode... :p)

Mein erster Versuch grad mit PX war auf zwei VirtualBox-Images, hab die Grundbedienung verstanden, scheint ein wirklich tolles System zu sein! Nun nehme ich mir zwei reale PCs vor. Wie ist das mit der Installation des Gast-OS? Mache ich das nur auf einer Maschine und suche dann die Stelle, wo man den Cluster anschaltet? Oder muss ich den Gast auf beiden physischen Servern anlegen?
 
Mosix war aber schon gaaaaanz anders (war ein Compute-Cluster). Hab es sehr gerne benutzt und hatte damit einen 16 Knoten-SMP-Cluster. Egal ...

Du hast einfach eine VM die du nachher als "HA" markierst und gut ist. Installation natürlich nur einmal. Für die 3. Quorum-Kiste reicht sogar ein Pi aus, jedoch ist das non-trivial und non-supported. Es geht z.B. auch eine virtualisierte Proxmox VM in einem anderen Cluster (z.B. VMware oder Hyper-V) wenn man keinen anderen Rechner mehr hat. Die reine Quorum-VM hat auch keine hohen Hardwareanforderungen.

Als Alternative könntest du dir mal anschauen was es an MySQL-internen Clusterlösungen gibt, das ist oft "besser", da es neben Hochverfügbarkeit auch noch Lastverteilung beinhaltet (angenommen Multi-Master-Replikation). Kannst auch bei Oracle mal anfragen ob es dazu mittlerweile auch was gibt. Warscheinlich wird das nur alles Geld kosten, wie man es von Oracle her kennt. Ich weiß nicht wie weit an der Stelle MariaDB ist.
 
Ja, Mosix war cool. (Ich hatte allerdings nur 3 Knoten, und auch nur privat zum rumspielen)

Jetzt hingegen gehts nicht ums spielen, sondern ich muss eine Produktivumgebung bauen. Aber, mit eurer Hilfe schaff ich auch das. Quorumkisten sind genug da, da find ich schon eine.

MySQL Cluster hab ich mit Percona probiert, war aber nicht erfolgreich. Ausserdem sind ja da eben auch noch Wartungsskripte und crons, die ebenfalls redundant liegen sollen. Und, so weit ich verstanden hab, erfordert die DB-Replikation jedes Mal n table lock. Ich erwarte um die 3-5k insert/update pro Minute, da ist die Repli vllt eh nicht das richtige.

Ich teste jetzt mal weiter und wuensche derweil einen sonnigen Tag. Bis spaeter.

PS.: Habt ihr n IRC-channel?
 
Jetzt hingegen gehts nicht ums spielen, sondern ich muss eine Produktivumgebung bauen. Aber, mit eurer Hilfe schaff ich auch das. Quorumkisten sind genug da, da find ich schon eine.

MySQL Cluster hab ich mit Percona probiert, war aber nicht erfolgreich. Ausserdem sind ja da eben auch noch Wartungsskripte und crons, die ebenfalls redundant liegen sollen. Und, so weit ich verstanden hab, erfordert die DB-Replikation jedes Mal n table lock. Ich erwarte um die 3-5k insert/update pro Minute, da ist die Repli vllt eh nicht das richtige.

Ja, an sich ist die Hochverfügbarkeit mit Proxmox eine sehr schöne Sache. Was verwendest du als Shared Storage? Falls du kein Technologie wie ein hochverfügbares SAN hast, wäre DRBD eine gute Alternative.

PS.: Habt ihr n IRC-channel?

Nicht, dass ich wüsste.
 
Kann mir bitte jemand kurz helfen, wie das mit dem Cluster dann weiter geht?
Ich habe jetzt 2 Maschinen, ct17 und ct18. Auf der 17 ist ein Ubuntu14 TLS in der Virtualisierung installiert. Ich habe mit dem ha-manager den cluster gebaut und sehe nun:

root@ct17:~# ha-manager status
quorum OK
master ct17 (active, Thu Jul 7 11:25:53 2016)
lrm ct17 (active, Thu Jul 7 11:25:56 2016)
lrm ct18 (active, Thu Jul 7 11:26:01 2016)
service vm:100 (ct17, started)

Aber, muesste ich nun nicht irgendwie in der GUI sehen, dass meine VM auf ct18 gespiegelt wird?

... shared storage? brauch ich das? OMG (ich weiss. ich stell mich an wie der erste Mensch, sorry, aber ist alles Neuland fuer mich) Ok, DRBD hab ich schon gelesen, wuerde ich dann nehmen, wenns die beste Loesung ist. Das klingt ja mal wieder nach einer grossen Baustelle... Und ich wil ab Montag in urlaub ;-)
 
Kann mir bitte jemand kurz helfen, wie das mit dem Cluster dann weiter geht?
Ich habe jetzt 2 Maschinen, ct17 und ct18. Auf der 17 ist ein Ubuntu14 TLS in der Virtualisierung installiert. Ich habe mit dem ha-manager den cluster gebaut und sehe nun:

root@ct17:~# ha-manager status
quorum OK
master ct17 (active, Thu Jul 7 11:25:53 2016)
lrm ct17 (active, Thu Jul 7 11:25:56 2016)
lrm ct18 (active, Thu Jul 7 11:26:01 2016)
service vm:100 (ct17, started)

Aber, muesste ich nun nicht irgendwie in der GUI sehen, dass meine VM auf ct18 gespiegelt wird?

HA hat nichts mit spiegelung zu tun. eine HA-managed VM wird (wenn der knoten auf dem sie läuft ausfällt) automatisch migriert.
 
Ah ok... Hab nun ct17 ausgeschaltet, nach "pvecm expected 1" hat der ct18 ein "quorum ok", und er ist auch master, aber weiss nicht, vllt dauert ja das migrieren bissel...
Frage waehrend der Wartezeit: Wie gebe ich dem Cluster eine virtuelle IP?

PS., ihr seid grossartig, DAAAAAAAAANKE fuer die viele Hilfe!
 
Der Cluster arbeitet "von außen", also keine Änderung in der VM nötig. Ohne Shared Storage wirst du leider kein HA bekommen, wie soll das auch gehen wenn die Daten der VM nicht auf beiden VMs liegen.
 
Ah ok, verstehe. Hab mich gestern Abend noch etwas eingelesen in die Materie, so langsam klart das Bild auf. Na, dann werd ich wohl mein setup noch mal von vorn anfangen. DRBD braucht ja eine eigene Partition. (Waere cool, wenn die Installation vom PX-iso das gleich mit vorschlagen wuerde, dann haette ich mich schon eher gewundert ;-) )

Welche Daten muessen dann eigentlich zwingend auf dem DRBD liegen? /var/lib nehm ich mal an. Was noch?
 
DRBD benötigt (technisch gesehen) keine eigene Partition, ein logisches Volume reicht hier aus. Wenn man "schnelles" DRBD möchte sollte man es aber auf extra Disk(s) inkl. SSD für die Log haben. Wichtig ist, dass es aktuell kein Dateisystem gibt, mit welchem du von beiden Knoten auf das DRBD schreiben kannst und dass stabil genug dafür ist, somit geht /var/lib (du meintest aber wohl meintest /var/lib/vz) nicht.

Du musst also ein physical Volume auf das DRBD-Gerät drauflegen und darauf eine clustered LVM-Umgebung, dann läuft das prima. Das heißt dann, dass du deine VMs nur als LVM anlegen kannst. Das setup ist nicht trivial, aber die einzige Möglichkeit ohne ein externes, shared storage zu arbeiten.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!