Share / Home zwischen Rechenzentren

15

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.

user3850506
quelle
6
"In die Tastatur weinen: Keine Besserung." OK, das bekommt eine +1 von mir.
Ceejayoz
Du wirst wahrscheinlich entweder glusterfs oder ceph wollen. Ein verteiltes Dateisystem. Sie können drbd auch mehrmals mounten, aber nur einmal lesen und schreiben, und es ist trotzdem eine beängstigende schlechte Idee.
Sirex
Ich habe glusterfs ausprobiert, und obwohl es mit großen Dateien hervorragend funktioniert, wird es beim Lesen oder Schreiben kleiner Dateien sehr langsam. Es scheint ein allgemeines Problem mit glusterfs zu sein, und ich habe keine Lösung dafür finden können. Ich werde Ceph untersuchen. Hast du es versucht, hast du es selbst versucht?
user3850506
3
Das Mounten desselben Blockgeräts und Dateisystems, auch von RO auf einem anderen System, ist kein Problem, es sei denn, der Dateisystemtreiber weiß, dass das Backing-Blockgerät jederzeit beliebig geändert werden kann. Das Blockiergerät könnte den Inode-Cache ändern und vollständig ungültig machen, und das VFS würde glücklich Daten lesen, die nicht mehr dort sind, wo Sie gedacht haben. Shared-Disk-fähige Dateisysteme wie GFS2 und veritas können dies auf DRBD oder jeder SAN-ähnlichen Festplatte tun. Ich kann nicht sicher sagen, ob die Leistung Ihrer kleinen Dateien akzeptabel ist.
Andrew Domaszek

Antworten:

2

Hierfür gibt es einige mögliche Lösungen:

  1. 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.

  2. 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.

  3. 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.

mgabriel
quelle
1
rsync ftw 123456
dmourati