Kann ich mysqld über glusterfs ausführen?

12

Ich habe kürzlich mit glusterfs gespielt.

Ich möchte versuchen, mysqld auf ähnliche Weise über glusterfs auszuführen, wie es möglich ist, MySQL über DRBD auszuführen .

Ich bin mit der MySQL-Replikation und den Vorteilen dieser Methode vertraut und kenne auch MongoDB und andere NoSQL-Lösungen.

Es wäre jedoch eine einfache Lösung für einige bestimmte Projekte, die ich anstrebe, wenn ich MySQL so lassen und das zugrunde liegende Dateisystem replizieren könnte.

Ist das möglich und wo kann ich herausfinden wie?

Richard Holloway
quelle

Antworten:

16

Aufgrund einer einigermaßen langen Verzögerung ohne Antworten habe ich dies durch Ausprobieren herausgefunden.

Die Antwort lautet: Ja, ich kann mysqld über glusterfs ausführen.

Ich habe dies auf Ubuntu eingerichtet und hier sind kurz die Schritte:

Das eigentliche Problem ist, wie MySQL mit Sperren umgeht.

Sie können all dies jedoch an glusterfs übergeben, damit viele mysqld-Prozesse (die auf separaten Knoten ausgeführt werden) auf dieselben Datenbankdateien unter / mnt / glusterfs zugreifen können. Sie müssen dies sorgfältig lesen .

Richard Holloway
quelle
2
Welche Art von Leistungsproblemen sehen Sie?
CMCDragonkai
4
Das ist wirklich sehr interessant! Ich rate jedoch ausdrücklich davon ab, dies in Situationen zu verwenden, in denen Ihre Daten wichtig sind. Nur weil es zu funktionieren scheint, heißt das nicht, dass es sicher ist. Möglicherweise haben Sie nur Glück und sind noch nicht auf Rennbedingungen gestoßen, die zu Datenverlust führen könnten.
Jlh
Sie werden immer nur einen Server gleichzeitig verwenden, oder? Ich bin ziemlich sicher, dass es nicht von mehreren Servern aus funktioniert. Sie werden Ihre Daten verlieren
Diego Roccia
3

Versuchte dies auf einem K8-Cluster. MySQL wird in einem Container ausgeführt, GlusterFS wird direkt auf dem Knoten installiert (nicht containerisiert). Der MySQL-Container hatte eine Affinität, die so eingestellt war, dass er immer auf demselben Knoten wie GFS lief und das Volume mithilfe des nativen GFS-Volume-Treibers von K8 bereitstellte.

Erfahrene zufällige hohe Latenz für WordPress-Sites, selbst wenn das NGINX FastCGI-Caching (PHP-FPM) aktiviert ist. Auf HostPath-Volume für MySQL-Container umgestellt, sind Latenzprobleme verschwunden.

Aman B.
quelle
2

Ich denke nicht, dass das möglich ist. Richard, der von Ihnen bereitgestellte Link handelt von MyIsam und sie sagen, dass dies sowieso nicht empfohlen wird. Ich habe irgendwo gelesen (ich erinnere mich nicht, wo), dass die Verwendung von innoDB-Dateien, die von mehreren Knoten gemeinsam genutzt werden, zu einer Beschädigung der Daten führt.

rtacconi
quelle
2

Ich weiß nicht, warum Sie von verschiedenen MySQL-Serverprozessen aus auf dieselben DB-Dateien zugreifen möchten, aber wenn der Grund die Leistung ist, sollten Sie sich Galera ansehen.

http://www.codership.com/content/using-galera-cluster

Integriert in Maria DB und Percona XTRA DB Cluster

Engel Der
quelle
Was ist mit der Master-zu-Master-Replikation in GlusterFS?
CMCDragonkai
-1 für Galera, es sei denn, Sie suchen nach Leseskalierbarkeit. Galera eignet sich nicht für große Datenbanken oder Datenbanken, bei denen es auf die Schreibleistung ankommt. Ich spreche aus Erfahrung und den Empfehlungen aus einem Supportvertrag mit MariaDB.
Ross Peoples
@ RossPeoples, um ehrlich zu sein, ist es unwahrscheinlich, dass das OP dies für die Schreibleistung tut. Gluster erhöht wahrscheinlich die Latenz für jede Transaktion. Wahrscheinlich sucht er eher nach HA, möglicherweise mithilfe einer Kubernete, um sicherzustellen, dass eine einzelne dB-Instanz ausgeführt wird.
Aron
1

Theoretisch kannst du. In der Praxis und insbesondere in Bezug auf die Leistung empfiehlt das Handbuch von Gluster, dass es nicht zum Replizieren von DB-Dateien oder anderen feinkörnigen E / A-Systemen verwendet werden soll.

Die offizielle Übersicht zu Gluster finden Sie hier:

http://docs.gluster.org/en/latest/Install-Guide/Overview/#is-gluster-going-to-work-for-me-and-what-i-need-it-to-do

Wird Gluster für mich arbeiten und was muss ich tun?

... Auf der anderen Seite haben einige Leute, die genügend Gluster-Server in den Mix aufgenommen haben, aufgrund der Skalierbarkeit der Technologie eine bessere Leistung bei uns gesehen als andere Lösungen , SQL-Datenbanken. Natürlich wäre es in Ordnung, Gluster zum Sichern und Wiederherstellen der Datenbank zu verwenden. Gluster ist normalerweise besser, wenn Sie eine Dateigröße von mindestens 16 KB verwenden (mit einem Sweet Spot von etwa 128 KB).

Noch einmal, wenn Sie eine MySQL-Replikation wünschen, schlage ich vor:

  1. Verwenden Sie die traditionelle MySQL-Master / Slave-Replikation https://dev.mysql.com/doc/refman/5.7/de/replication.html

  2. Verwenden Sie den Codership Galera-Cluster, der heutzutage in allen MySQL-Varianten wie Oracle MySQL oder MariaDB implementiert ist

Mike Mountrakis
quelle