Lösung 1:
Ich stimme für NFS.
NFSv4.1 fügte die parallele NFS-pNFS-Funktion hinzu, die den parallelen Datenzugriff ermöglicht. Ich frage mich, welche Art von Clients den Speicher verwenden, wenn nur Unix-ähnlich, dann würde ich mich für NFS entscheiden, basierend auf den Leistungszahlen.
Lösung 2:
Die kurze Antwort lautet NFS verwenden. Nach dieser Schießerei und meiner eigenen Erfahrung geht es schneller.
Aber Sie haben mehr Möglichkeiten! Sie sollten einen Cluster-FS wie GFS in Betracht ziehen, bei dem es sich um ein Dateisystem handelt, auf das mehrere Computer gleichzeitig zugreifen können. Grundsätzlich teilen Sie ein Blockgerät über iSCSI, das ein GFS-Dateisystem ist. Alle Clients (Initiatoren im iSCSI-Jargon) können darauf lesen und schreiben. Redhat hat ein Whitepaper. Sie können auch Cluster FS OCFS von Oracle verwenden, um dasselbe zu verwalten.
Das Redhat-Papier leistet gute Arbeit und listet die Vor- und Nachteile eines Cluster-FS gegenüber NFS auf. Grundsätzlich ist GFS wahrscheinlich die Mühe wert, wenn Sie viel Platz zum Skalieren wünschen. Außerdem verwendet das GFS-Beispiel ein Fibre-Channel-SAN als Beispiel, aber das könnte genauso gut ein RAID-, DAS- oder iSCSI-SAN sein.
Sehen Sie sich zu guter Letzt Jumbo Frames an, und wenn die Datenintegrität kritisch ist, verwenden Sie CRC32-Prüfsummenbildung, wenn Sie iSCSI mit Jumbo Frames verwenden.
Lösung 3:
Wir haben einen 2-Server-Load-Blanching-Webcluster. Wir haben die folgenden Methoden zum Synchronisieren von Inhalten zwischen den Servern ausprobiert:
- Lokale Laufwerke auf jedem Server mit RSYNC synchronisiert alle 10 Minuten
- Ein zentrales CIFS (SAMBA) auf beide Server teilen
- Ein zentrales NFS auf beide Server teilen
- Ein freigegebenes SAN-Laufwerk, auf dem OCFS2 ausgeführt wird beide Server gemountet
Die RSYNC Die Lösung war die einfachste, aber es dauerte 10 Minuten, bis die Änderungen angezeigt wurden, und RSYNC belastete die Server so sehr, dass wir sie mit einem benutzerdefinierten Skript drosseln mussten, um sie jede Sekunde anzuhalten. Wir waren auch darauf beschränkt, nur auf das Quelllaufwerk zu schreiben.
Das leistungsstärkste freigegebene Laufwerk war OCFS2 geclustertes Laufwerk, bis es wahnsinnig wurde und das Cluster zum Absturz brachte. Wir konnten die Stabilität mit OCFS2 nicht aufrechterhalten. Sobald mehr als ein Server auf dieselben Dateien zugreift, steigt die Last durch die Decke und die Server starten neu. Dies kann ein Trainingsfehler unsererseits sein.
Das zweitbeste war NFS . Es war extrem stabil und fehlertolerant. Dies ist unser aktuelles Setup.
SMB (CIFS) hatte einige Probleme mit der Sperrung. Insbesondere Änderungen an Dateien auf dem SMB-Server wurden von den Webservern nicht gesehen. SMB neigte auch dazu, beim Failover des SMB-Servers aufzuhängen
Unser Fazit war, dass OCFS2 das größte Potenzial hat, aber VIEL Analyse erfordert, bevor es in der Produktion eingesetzt werden kann. Wenn Sie etwas Unkompliziertes und Zuverlässiges wollen, würde ich einen NFS-Server-Cluster mit Heartbeat für Failover empfehlen.
Lösung 4:
Ich schlage You POHMELFS vor - es wurde vom russischen Programmierer Evgeniy Polyakov erstellt und ist wirklich sehr schnell.
Lösung 5:
In Bezug auf Zuverlässigkeit und Sicherheit "scheint" wahrscheinlich CIFS (alias Samba), aber NFS viel leichter, und bei sorgfältiger Konfiguration ist es möglich, dass Sie Ihre wertvollen Daten nicht vollständig jedem anderen Computer im Netzwerk aussetzen;-)
Keine Beleidigung für das FUSE-Zeug, aber es wirkt immer noch ... frisch, wenn Sie verstehen, was ich meine. Ich weiß noch nicht, ob ich ihm vertraue, aber das könnte daran liegen, dass ich nur ein alter Nebel bin, aber alter Nebel ist manchmal gerechtfertigt, wenn es um wertvolle Unternehmensdaten geht.
Wenn Sie eine Freigabe dauerhaft auf mehreren Computern bereitstellen möchten und mit einigen der Verrücktheiten (hauptsächlich UID/GID-Probleme) mitspielen können, verwenden Sie NFS. Ich benutze es, und das schon seit vielen Jahren.