Frage

Ich habe eine große Menge an Daten auf der ganzen Welt synchronisiert über 4 oder 5 Seiten zu halten, um einen halben Terabyte an jedem Standort. Dies ändert (entweder ergänzt oder ändert) von rund 1,4 Gigabytes pro Tag, und die Daten können auf jedem der vier Standorte ändern.

Ein großer Prozentsatz (30%) der Daten doppelte Pakete (Vielleicht verpackt-up JDKs), so wäre die Lösung einen Weg bis schließen hat die Kommissionierung die Tatsache, dass es solche Dinge auf der lokalen Maschine liegend aruond und greift sie statt von einer anderen Website heruntergeladen werden.

Die Steuerung der Versionierung ist kein Problem, das ist nicht eine Code-Basis pro-se.

Ich bin nur daran interessiert, ob es irgendwelche Lösungen sind da draußen (vorzugsweise Open-Source), die nahe an so etwas zu bekommen?

Mein Baby Skript rsync nicht den Senf nicht mehr schneidet, ich mag immer komplexe, intelligente Synchronisation tun.

Danke

Edit: Dies sollte UNIX basieren:)

War es hilfreich?

Lösung

Haben Sie versucht, Unison ?

Ich habe damit gute Ergebnisse hat. Es ist im Grunde ein smarter rsync, was vielleicht ist das, was Sie wollen. Es gibt eine Auflistung zu vergleichen Datei synchronisieren Tools hier .

Andere Tipps

Klingt wie ein Job für BitTorrent.

Für jede neue Datei an jedem Standort, erstellen Sie eine Bittorrent-Seed-Datei und legen Sie sie in die zentrale Web-zugänglichen Richt.

Jede Seite lädt dann (via Bittorrent) alle Dateien. Dies wird gen Sie Bandbreite und eine automatische lokale Kopie Wiederverwendung zu teilen.

Die tatsächliche Rezept wird nach Bedarf ab. Zum Beispiel können Sie ein Bittorrent-Samen auf jedem Host, für jede Datei erstellen und Änderungszeit der Seed-Datei eingestellt die gleiche wie die Änderungszeit der Datei selbst zu sein. Da Sie es tun täglich (stündlich?) Es besser ist, etwas zu verwenden, wie „make“ (wieder) erstellen Seed-Dateien nur für neue oder aktualisierte Dateien.

Dann kopieren Sie alle Seed-Dateien von allen Hosts an die zentrale Stelle ( „Tracker dir“) mit der Option „überschreiben nur, wenn neuere“. Diese bekommt man einen Satz von torrent Samen für alle neuesten Kopien aller Dateien.

Dann wird jeder Host-Downloads alle Seed-Dateien (auch hier mit „überschreiben, wenn neuere Einstellung“) und startet Bittorrent-Download auf allen von ihnen. Dies wird heruntergeladen / redownload alle neuen / aktualisierten Dateien.

Rince und wiederholt immer wieder.

BTW, gibt es keine „von selbst herunterzuladen“, wie Sie in dem Kommentar sagten. Wenn die Datei auf dem lokalen Rechner bereits vorhanden ist, wird ihre Prüfsumme überprüft werden, und kein Download stattfinden wird.

Wie wäre es etwas entlang der Linien von Red Hat globale Dateisystem , so dass die ganze Struktur ist aufgeteilt in jedem Standort auf mehrere Geräte, anstatt sie alle an jedem Standort repliziert hat?

Oder vielleicht ein kommerzielles Netzwerk-Speichersystem wie von Lefthand Networks (Disclaimer - Ich habe keine Ahnung von den Kosten, und haben sie nicht benutzt).

Sie haben eine Menge Optionen:

  • Sie können versuchen, einzurichten replizierten DB Daten zu speichern.
  • Verwenden Kombination von rsync oder lftp und benutzerdefinierte Skripts, aber das macht man nicht gerecht wird.
  • Mit git repos mit max Kompressionen und Synchronisierung zwischen ihnen einige Skripte mit
  • Da die Datenmenge ziemlich groß ist, und wahrscheinlich wichtig, tut entweder eine kundenspezifische Entwicklung auf mieten einen Experten;)

super flexibel Check out .... es ist ziemlich cool, haben sie nicht in großem Maßstab Umgebung verwendet wird, sondern auf einem 3-Knoten-System es schien perfekt zu arbeiten.

Klingt wie ein Job für Folder

Haben Sie den detect-renamed Patch für rsync versucht ( http://samba.anu.edu.au/ftp/rsync/dev/patches/detect-renamed.diff )? Ich habe es selbst nicht versucht, aber ich frage mich, ob es nicht nur umbenannt, sondern auch dupliziert Dateien erkennt. Wenn es nicht duplizierten Dateien erkennt, dann, glaube ich, könnte es möglich sein, den Patch zu ändern, dies zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top