Lösung 1:
Ich kann nicht mit dem Rest sprechen, aber Sie scheinen zwischen einer „verteilten Speicher-Engine“ und einem „verteilten Dateisystem“ verwechselt zu sein. Sie sind nicht dasselbe, sie sollten nicht mit demselben verwechselt werden, und sie werden niemals dasselbe sein. Ein Dateisystem ist eine Möglichkeit, den Überblick darüber zu behalten, wo sich Dinge auf einer Festplatte befinden. Eine Speicher-Engine wie Hadoop ist eine Möglichkeit, einen Datenblock zu verfolgen, der durch einen Schlüssel identifiziert wird. Konzeptionell kein großer Unterschied. Das Problem ist, dass ein Dateisystem eine Abhängigkeit einer Speicher-Engine ist ... schließlich braucht es eine Möglichkeit, auf ein Blockgerät zu schreiben, nicht wahr?
Abgesehen davon kann ich es sprechen für die Verwendung von ocfs2 als verteiltes Dateisystem in einer Produktionsumgebung. Wenn Sie die groben Details nicht wollen, hören Sie nach dieser Zeile auf zu lesen:Es ist irgendwie cool, aber es kann mehr Ausfallzeit bedeuten, als Sie denken.
Wir haben ocfs2 in den letzten Jahren in einer Produktionsumgebung ausgeführt. Es ist OK, aber es ist nicht großartig für viele Anwendungen. Sie sollten sich Ihre Anforderungen genau ansehen und herausfinden, was sie sind – Sie werden vielleicht feststellen, dass Sie viel mehr Spielraum für Fehler haben, als Sie dachten.
Beispielsweise hat ocfs2 ein Journal für jede Maschine im Cluster, die die Partition mounten wird. Nehmen wir also an, Sie haben vier Webmaschinen, und wenn Sie diese Partition mit mkfs.ocfs2 erstellen, geben Sie an, dass es insgesamt sechs Maschinen geben wird, um sich etwas Raum zum Wachsen zu verschaffen. Jedes dieser Journale beansprucht Speicherplatz, wodurch sich die Datenmenge verringert, die Sie auf den Festplatten speichern können. Angenommen, Sie müssen auf sieben Maschinen skalieren. In dieser Situation müssen Sie das gesamte abbauen Cluster (d. h. unmounten Sie alle ocfs2-Partitionen) und verwenden Sie das Dienstprogramm tunefs.ocfs2, um ein zusätzliches Journal zu erstellen, sofern Speicherplatz verfügbar ist. Dann und nur dann können Sie die siebte Maschine zum Cluster hinzufügen (was erfordert, dass Sie eine Textdatei an den Rest des Clusters verteilen, es sei denn, Sie verwenden ein Dienstprogramm), alles wieder hochfahren und dann die Partition auf allen sieben einhängen Maschinen.
Verstehst du, was ich meine? Es soll Hochverfügbarkeit sein, was "immer online" bedeuten soll, aber genau dort haben Sie eine Menge Ausfallzeiten ... und Gott bewahre, dass Sie wegen des Festplattenspeichers überfüllt sind. Sie wollen NICHT sehen, was passiert, wenn Sie ocfs2 drängen.
Denken Sie daran, dass evms, das früher die „bevorzugte“ Methode zum Verwalten von ocfs2-Clustern war, den Weg des Dodo Bird zugunsten von clvmd und lvm2 gegangen ist. (Und gute Befreiung von evms.) Außerdem wird sich Heartbeat schnell zu einem Zombie-Projekt zugunsten des Openais/Pacemaker-Stacks entwickeln. (Nebenbei:Wenn Sie die anfängliche Cluster-Konfiguration für ocfs2 durchführen, können Sie 'pcmk' als Cluster-Engine im Gegensatz zu Heartbeat angeben. Nein, dies ist nicht dokumentiert.)
Für das, was es wert ist, sind wir zu nfs zurückgekehrt, das von Pacemaker verwaltet wird, da die wenigen Sekunden Ausfallzeit oder ein paar verlorene TCP-Pakete, wenn Pacemaker eine nfs-Freigabe auf einen anderen Computer migriert, trivial sind im Vergleich zu der Menge an Ausfallzeiten, die wir für Basic sahen Shared-Storage-Operationen wie das Hinzufügen von Maschinen bei Verwendung von ocfs2.
Lösung 2:
Ich denke, Sie müssen die POSIX-Anforderung aufgeben, nur sehr wenige Systeme implementieren das - tatsächlich tut nicht einmal NFS wirklich (denken Sie an Sperren usw.), und das hat keine Redundanz.
Jedes System, das synchrone Replikation verwendet, wird eisig langsam sein; Jedes System mit asynchroner Replikation (oder "Eventual Consistency") wird die POSIX-Regeln verletzen und sich nicht wie ein "konventionelles" Dateisystem verhalten.
Lösung 3:
Ich verstehe Ihre Anforderungen möglicherweise falsch, aber haben Sie sich http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_file_systems
angesehenLösung 4:
Nur um meine 0,02 € hier hineinzuwerfen:Kann OpenAFS nicht tun, was Sie wollen?
Lösung 5:
Sehen Sie sich chirp http://www.cse.nd.edu/~ccl/software/chirp/ und parrot http://www.cse.nd.edu/~ccl/software/parrot/
an