Ich bin geneigt, eine datenunabhängige Replikation wie drbd vorzuschlagen. Die große Anzahl von Dateien führt dazu, dass alles, was auf einer höheren Ebene als "Blockspeicher" ausgeführt wird, übermäßig viel Zeit damit verbringt, über den Baum zu gehen - wie Sie bei der Verwendung von rsync oder beim Erstellen von inotify-Uhren festgestellt haben.
Die Kurzversion meiner persönlichen Geschichte bestätigt dies: Ich habe Ceph nicht verwendet, aber ich bin mir ziemlich sicher, dass dies aufgrund der Ähnlichkeit mit Gluster nicht zu ihrem Hauptmarktziel gehört. Ich habe jedoch in den letzten Jahren versucht, diese Art von Lösung mit Gluster zu implementieren. Es war die meiste Zeit in Betrieb, obwohl es mehrere wichtige Versionsupdates gab, aber ich hatte kein Ende der Probleme. Wenn Ihr Ziel mehr Redundanz als Leistung ist, ist Gluster möglicherweise keine gute Lösung. Insbesondere wenn Ihr Verwendungsmuster viele stat () -Aufrufe enthält, kann Gluster mit der Replikation nicht wirklich gut umgehen. Dies liegt daran, dass stat-Aufrufe an replizierte Volumes an alle replizierten Knoten gesendet werden (eigentlich "Bausteine", aber Sie werden wahrscheinlich nur einen Baustein pro Host haben). Wenn Sie beispielsweise eine 2-Wege-Replik haben, Jeder stat () eines Clients wartet auf eine Antwort von beiden Bausteinen, um sicherzustellen, dass die aktuellen Daten verwendet werden. Dann haben Sie auch den FUSE-Overhead und das Fehlen von Caching, wenn Sie das native Gluster-Dateisystem für Redundanz verwenden (anstatt Gluster als Backend mit NFS als Protokoll und Automounter für Redundanz zu verwenden, was aus dem stat () - Grund immer noch schlecht ist). . Gluster eignet sich sehr gut für große Dateien, in denen Sie Daten auf mehrere Server verteilen können. Das Daten-Striping und die Datenverteilung funktionieren gut, da es genau das ist, wofür es ist. Die neuere Replikation vom Typ RAID10 bietet eine bessere Leistung als die älteren, direkt replizierten Volumes. Aber basierend auf dem, was ich vermute, ist Ihr Nutzungsmodell, ich würde davon abraten. Dann haben Sie auch den FUSE-Overhead und das Fehlen von Caching, wenn Sie das native Gluster-Dateisystem für Redundanz verwenden (anstatt Gluster als Backend mit NFS als Protokoll und Automounter für Redundanz zu verwenden, was aus dem stat () - Grund immer noch schlecht ist). . Gluster eignet sich sehr gut für große Dateien, in denen Sie Daten auf mehrere Server verteilen können. Das Daten-Striping und die Datenverteilung funktionieren gut, da es genau das ist, wofür es ist. Die neuere Replikation vom Typ RAID10 bietet eine bessere Leistung als die älteren, direkt replizierten Volumes. Aber basierend auf dem, was ich vermute, ist Ihr Nutzungsmodell, ich würde davon abraten. Dann haben Sie auch den FUSE-Overhead und das Fehlen von Caching, wenn Sie das native Gluster-Dateisystem für Redundanz verwenden (anstatt Gluster als Backend mit NFS als Protokoll und Automounter für Redundanz zu verwenden, was aus dem stat () - Grund immer noch schlecht ist). . Gluster eignet sich sehr gut für große Dateien, in denen Sie Daten auf mehrere Server verteilen können. Das Daten-Striping und die Datenverteilung funktionieren gut, da es genau das ist, wofür es ist. Die neuere Replikation vom Typ RAID10 bietet eine bessere Leistung als die älteren, direkt replizierten Volumes. Aber basierend auf dem, was ich vermute, ist Ihr Nutzungsmodell, ich würde davon abraten. was aus dem stat () Grund immer noch scheiße ist). Gluster eignet sich sehr gut für große Dateien, in denen Sie Daten auf mehrere Server verteilen können. Das Daten-Striping und die Datenverteilung funktionieren gut, da es genau das ist, wofür es ist. Die neuere Replikation vom Typ RAID10 bietet eine bessere Leistung als die älteren, direkt replizierten Volumes. Aber basierend auf dem, was ich vermute, ist Ihr Nutzungsmodell, ich würde davon abraten. was aus dem stat () Grund immer noch scheiße ist). Gluster eignet sich sehr gut für große Dateien, in denen Sie Daten auf mehrere Server verteilen können. Das Daten-Striping und die Datenverteilung funktionieren gut, da es genau das ist, wofür es ist. Die neuere Replikation vom Typ RAID10 bietet eine bessere Leistung als die älteren, direkt replizierten Volumes. Aber basierend auf dem, was ich vermute, ist Ihr Nutzungsmodell, ich würde davon abraten.
Denken Sie daran, dass Sie wahrscheinlich einen Weg finden müssen, um Hauptwahlen zwischen den Maschinen abzuhalten oder verteilte Sperren zu implementieren. Die gemeinsam genutzten Blockgerätelösungen erfordern ein Dateisystem, das Multi-Master-fähig ist (wie GFS), oder erfordern, dass nur ein Knoten das Lese- und Schreibvorgang des Dateisystems bereitstellt. Dateisysteme mögen es im Allgemeinen nicht, wenn Daten auf der Ebene der Blockgeräte darunter geändert werden. Das bedeutet, dass Ihre Kunden in der Lage sein müssen, den Master zu erkennen und dort direkte Schreibanforderungen zu stellen. Das kann sich als großes Ärgernis herausstellen. Wenn GFS und die gesamte unterstützende Infrastruktur eine Option sind, könnte drbd im Multi-Master-Modus (sie nennen es "Dual Primary") gut funktionieren. Weitere Informationen hierzu finden Sie unter https://www.drbd.org/de/doc/users-guide-83/s-dual-primary-mode .
Unabhängig von der Richtung, in die Sie gehen, werden Sie feststellen, dass dies immer noch ein ziemlich großer Schmerz ist, wenn Sie in Echtzeit arbeiten, ohne nur einem SAN-Unternehmen eine Lastwagenladung Geld zu geben.