Hallo Datenbankforum,
in den letzten Tage habe ich mich mit dem Datenbankdesign auseinander gesetzt (ich bin noch Neuling und versuche viel zu lernen). Ich bin mir nicht ganz sicher was das beste Setup für meine Datenbank ist und würde die Idee hier gerne kurz vorstellen.
Hardware-Setup: 2 x Load Balancer - HAProxy (1xBare Metal, 1xVM extern), 1 x Bare Metal Server für DB, zusätzliche VM's (langsamer als Bare Metal Server). Gerne würde ich MariaDB ggf. mit Galera Cluster nutzen.
Idee:
Die Load Balancer (HAProxy mit Corosync + Pacemaker) sollen den gesamten Traffic auf den performanten Bare Metal Server (BMS) leiten. Hiermit geht die Load Balancer Fähigkeit verloren, die benötige ich aber auch nicht. Sollte der BMS ausfallen soll der HAProxy auf die VM umleiten bis der BMS wieder verfügbar ist.
Der BMS + VM bilden das Galera Cluster. Die VM soll sich synchron replizieren als "ungenutzter Master" falls der BMS ausfällt. Es wird nur der BMS genutzt für read/writes, da die VM langsamer ist.
Back-Up: zusätzlich würde ich gerne eine VM außerhalb des Clusters nutzen um über den Arbitrator ein asynchrones Backup mit mysqldump zu generieren.
Frage:
- Kann die VM synchron im Galera Cluster laufen ohne den BMS zu verlangsamen, da sie nur replizieren muss?
- Falls der BMS ausfällt wird der HAProxy den Traffic auf die VM umleiten. Wie stelle ich sicher, wenn der BMS wieder online ist, dass er sich zunächst synchronisiert bevor der HAProxy den Traffic wieder auf den BMS leitet? Muss ich das mit GTID per Skript veranlassen? Im Prinzip wäre das ein geplanter "Switchover" nach erfolgreicher Synchronisierung. MariaMaxScale könnte so etwas ist aber leider nicht open source.
- Gibt es die Möglichkeit ein Galera Cluster (Master-Master) synchron zu replizieren ohne das die langsame VM die BMS Performance verlangsamt? Wäre das mit einem Master-Slave setup möglich?
in den letzten Tage habe ich mich mit dem Datenbankdesign auseinander gesetzt (ich bin noch Neuling und versuche viel zu lernen). Ich bin mir nicht ganz sicher was das beste Setup für meine Datenbank ist und würde die Idee hier gerne kurz vorstellen.
Hardware-Setup: 2 x Load Balancer - HAProxy (1xBare Metal, 1xVM extern), 1 x Bare Metal Server für DB, zusätzliche VM's (langsamer als Bare Metal Server). Gerne würde ich MariaDB ggf. mit Galera Cluster nutzen.
Idee:
Die Load Balancer (HAProxy mit Corosync + Pacemaker) sollen den gesamten Traffic auf den performanten Bare Metal Server (BMS) leiten. Hiermit geht die Load Balancer Fähigkeit verloren, die benötige ich aber auch nicht. Sollte der BMS ausfallen soll der HAProxy auf die VM umleiten bis der BMS wieder verfügbar ist.
Der BMS + VM bilden das Galera Cluster. Die VM soll sich synchron replizieren als "ungenutzter Master" falls der BMS ausfällt. Es wird nur der BMS genutzt für read/writes, da die VM langsamer ist.
Back-Up: zusätzlich würde ich gerne eine VM außerhalb des Clusters nutzen um über den Arbitrator ein asynchrones Backup mit mysqldump zu generieren.
Frage:
- Kann die VM synchron im Galera Cluster laufen ohne den BMS zu verlangsamen, da sie nur replizieren muss?
- Falls der BMS ausfällt wird der HAProxy den Traffic auf die VM umleiten. Wie stelle ich sicher, wenn der BMS wieder online ist, dass er sich zunächst synchronisiert bevor der HAProxy den Traffic wieder auf den BMS leitet? Muss ich das mit GTID per Skript veranlassen? Im Prinzip wäre das ein geplanter "Switchover" nach erfolgreicher Synchronisierung. MariaMaxScale könnte so etwas ist aber leider nicht open source.
- Gibt es die Möglichkeit ein Galera Cluster (Master-Master) synchron zu replizieren ohne das die langsame VM die BMS Performance verlangsamt? Wäre das mit einem Master-Slave setup möglich?