Zentralisierte Verteilung / Synchronisierung von großen Dateien über das lokale Netzwerk

533
mr.b

Obwohl ich mir völlig im Klaren bin, dass Versionen dieser Frage oft Googol gestellt wurden, werde ich versuchen, sie nicht zu wiederholen.

Ich habe viele Sätze von vielen Dateien (einige Dateien sind klein, aber einige sind groß, ~ 10-20 GB). Ich habe mehrere Server, von denen jeder eine oder mehrere dieser Dateisätze hosten kann. Natürlich kann ein Server 50% der Gesamtanzahl von Sätzen hosten, und andere 50% können eine andere Anzahl von Sätzen hosten.

Sie können sich das Set als eine Sammlung großer Mediendateien, wirklich großer Bildbibliotheken, vollständiger Anwendungen oder ähnliches vorstellen, egal, es spielt keine Rolle, solange es große Dateien im Set gibt.

Der Server kann seine Satzkopie jederzeit aktualisieren (entweder durch Ersetzen von Dateien im Satz durch vollständig neue Dateien oder durch Anwenden von Patches auf einige Dateien, was dazu führt, dass fast gleiche Dateien mit nur geringfügigen Unterschieden vorhanden sind).

Auf der anderen Seite habe ich viele Clients, die in der Lage sein sollten, ein bestimmtes Set (oder mehrere Sets) von Servern abzurufen und ihre Kopien von Sets mit den Sets auf dem Server auf dem neuesten Stand zu halten (wann immer dies gewünscht wird) benutze das Set.

Die Werkzeuge, die ich betrachtet habe, sind folgende:

  • rsync - Ideal für die Synchronisierung vieler kleiner bis mittlerer Dateien, jedoch nicht ideal für die Synchronisierung großer Dateien, da ein Algorithmus verwendet wird, der die gesamte Datei auf beiden Seiten liest, um zu bestimmen, ob die Datei kopiert werden soll oder nicht. Dies ist in Ordnung, wenn eine Datei zum ersten Mal kopiert werden soll oder wenn die Datei vollständig geändert wird. Dies ist jedoch nicht der Fall, wenn beispielsweise nur 1% der 10-GB-Datei geändert wird.
  • SVN - Es ist großartig, wenn es darum geht, Unterschiede zu finden und nur diese Deltas zu übertragen, aber ich bin nicht so sicher, wie optimal es ist, wenn es um die Festplattennutzung geht (der gesamte Satz ist sowohl auf Client als auch auf Server doppelt so groß, was wahrscheinlich ist) einmal gesetzt ist im Repository gespeichert?).
  • Torrent - Dies könnte machbar sein, was die Verteilung angeht. Erstellen Sie beispielsweise für jedes Set auf dem Server einen Torrent, und starten Sie das Seeding dort, und Clients, die diese Sets erhalten, setzen das Seeding auch auf andere Clients um, wodurch die Last auf jeden Computer verteilt wird, der eine Kopie des Sets enthält. Ich bin mir jedoch nicht sicher, ob es in der Lage wäre, Unterschiede irgendwie zu verteilen, sobald der Server geändert wurde ... Erfordert das Erstellen eines neuen Torrents für jede Änderung? Ich weiß auch nicht, wie sich Torrent im lokalen Netzwerk schnell verhalten würde (könnte er Dateien zwischen einem Server und einem Client mit maximaler, netzwerkbeschränkter Geschwindigkeit übertragen) oder erheblichen Protokoll-Overhead hinzufügen? Netzüberlastung?)
  • Kundenspezifische Lösung. Nun, nicht viel hinzuzufügen, aber dass das Rad wahrscheinlich neu erfunden wird und dass eine vorhandene Lösung wahrscheinlich zu meinen Bedürfnissen passt, wenn ich es nur wüsste.

Die Frage ist also: Welche Verteilungs- / Synchronisationsmethode (Dienstprogramme, Ansatz) ist am besten für meine Situation geeignet?

1
Dies funktioniert möglicherweise besser bei Serverfehlern. Zian Choy vor 13 Jahren 0

1 Antwort auf die Frage

1
Zian Choy

Von den aufgeführten Lösungen sieht SVN am vielversprechendsten aus. Sie müssen mindestens eine Kopie des Sets im Repository speichern, damit Sie den doppelten Speicherplatz verwenden können (oder 3x, wenn Sie zwei Arbeitskopien haben).

In der heutigen Zeit ist der Festplattenspeicherplatz (im Allgemeinen) billig, daher denke ich nicht, dass der Platzbedarf zu groß wäre, vor allem im Vergleich zu dem Versuch, eine individuelle Lösung zu entwickeln.

Sie können auch das MS Sync Framework betrachten, das von SyncToy verwendet wird.

Dies kann als Kommentar besser funktionieren als als Antwort. Ignacio Vazquez-Abrams vor 13 Jahren 0
Ein funktionierendes Antwort-Textfeld hat möglicherweise besser funktioniert als ein unbrauchbares Kommentarfeld. ;) Zian Choy vor 13 Jahren 0
Hoffentlich geht es jetzt ein bisschen besser. :) Zian Choy vor 13 Jahren 0
Vielen Dank für die MS Sync FW-Referenz. Am Ende wähle ich jedoch Torrent. mr.b vor 12 Jahren 0