Ich habe zwei Server in Rechenzentren in Holland und Frankreich. Beide führen Debian Wheezy aus. Ich muss zwischen ihnen / nach Hause mit guter Leistung teilen. Es gibt 300-Bit-Benutzer auf den Servern, von denen ungefähr 30 aktive Prozesse auf einem bestimmten Server zu einem bestimmten Zeitpunkt ausführen können sollten, wobei jeder 50-KBit-Lese- und 20-KBit-Schreibvorgänge pro Sekunde mit kurzen Spitzenwerten von ungefähr 2000 KBit / Sekunde aufweist. s lesen. Maßnahmen mit iotop auf lokalem Speicher. Ich habe viele kleine Dateien, insgesamt etwa 500000, und benötige so wenig Latenz wie möglich. Der Ping zwischen den Servern beträgt 17 ms, und die Verbindung kann bei Verwendung von scp und wget etwa 20 bis 30 MB / s erreichen. Es scheint, dass es genügend Bandbreite geben sollte, damit es auch funktioniert, aber ...
Was ich bisher ausprobiert habe: sshfs: Es schien eine bessere Leistung als nfs zu haben, aber es hat die Berechtigungen von Dateien für den Root-Modus geändert, wodurch die Anwendung abstürzt.
nfs: Es ist viel zu langsam, ich habe zu jeder Zeit eine Reihe anderer Optionen ausprobiert, aber es reagiert weiterhin träge, auch wenn nur wenige Prozesse aktiv sind.
drbd: 5 Stunden Sackgasse, als mir klar wurde, dass ich das Dateisystem nicht auf beiden Systemen mounten konnte :-(
glusterfs: Eine lokale Kopie aller Daten klang wirklich vielversprechend, aber der zufällige Dateizugriff ist sehr langsam und wird nach einer Weile unglaublich langsam und hängt fast. Noatime hilft nicht.
Nochmals nfs: Immer noch träge.
Weinen in die Tastatur: Überhaupt keine Besserung.
Was soll ich als nächstes versuchen? Jede der fehlgeschlagenen Prüfungen hat in der letzten Woche einen oder mehrere Abende gedauert, und ich hätte wirklich gerne, dass die nächste Methode funktioniert. Und ja, es ist entscheidend, dass die Dateisysteme von beiden Servern gemeinsam genutzt werden.
Vielen Dank für neue Ideen zu diesem Problem.
quelle
Antworten:
Hierfür gibt es einige mögliche Lösungen:
Sie können sich für einen replizierten Blockspeicher wie DRBD (oder MARS wie oben erwähnt) entscheiden, aber Sie müssen ein Cluster-Dateisystem über dem Blockspeicher einrichten. Solche Dateisysteme könnten GFS2 oder OCFS2 sein, die beide im Debian-Kernel afaik verfügbar sind. DRBD kann primär / primär verarbeiten und Sie können es gleichzeitig auf beiden Servern bereitstellen. Wenn Sie dies jedoch mit einem Standarddateisystem tun, weiß ein Server nichts über den anderen und Sie würden Ihr Dateisystem in wenigen Sekunden zerstören. Ein übergeordnetes Cluster-Dateisystem übernimmt die Kommunikation und das Sperren, sodass beide Knoten in denselben Block schreiben können.
Verwenden Sie ein verteiltes Dateisystem für / home. Eine Liste solcher Dateisysteme finden Sie unter http://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems . Aber pass auf und entscheide dich mit Bedacht. Sie alle können nicht zaubern und haben alle ihre Nachteile. Gluster ist ein solches Dateisystem. Für einige Systeme benötigen Sie möglicherweise mehr als nur zwei Knoten.
Wenn es nicht in Echtzeit repliziert werden muss und eine nahezu Echtzeit-Dateisynchronisierung ausreicht, schauen Sie sich BitTorrent Sync ( http://www.getsync.com/ ), Dropbox oder Alternativen an. Jeder Server hat sein eigenes Zuhause, aber Änderungen werden auf Dateibasis auf den anderen Server repliziert.
quelle