Frage Verwenden von RSYNC mit Amazon S3


Ich bin daran interessiert, Amazon S3 zu verwenden, um unsere ~ 100gb Server Images zu sichern (erstellt mit Acronis Backup Tools)

Offensichtlich wäre dieses Hochladen auf S3 jede Nacht in Bezug auf Bandbreite und Kosten teuer. Ich überlege, Rsync mit S3 zu verwenden und stieß auf s3rsync. Ich habe mich nur gefragt, ob irgendjemand irgendwelche Erfahrung mit diesem oder irgendeinem anderen Dienstprogramm hatte?


33
2017-10-13 10:02


Ursprung


Eine Sache, die mir an s3rsync aufgefallen ist, ist, dass Sie derzeit auf 10GB Bucket-Größen beschränkt sind (siehe FAQ). Sie können mehrere Buckets haben, aber Sie müssen Ihre Daten in 10 GB-Chunks aufteilen. - dana


Antworten:


Ich bin kürzlich über diesen Thread bei Google gestolpert und es sieht so aus, als hätte sich die Landschaft ein wenig verändert, seit die Frage gestellt wurde. Die meisten der hier vorgeschlagenen Lösungen werden entweder nicht mehr gepflegt oder sind kommerziell geworden.

Nach einigen Frustrationen mit FUSE und einigen anderen Lösungen habe ich mich entschieden, meine eigene Kommandozeile rsync "clone" für S3 und Google Storage mit Python zu schreiben.

Sie können das Projekt auf GitHub überprüfen: http://github.com/seedifferently/boto_rsync

Ein anderes Projekt, auf das ich kürzlich aufmerksam gemacht wurde, ist "Duplizität". Es sieht ein wenig ausgeklügelter aus und es kann hier gefunden werden: http://dublicity.nongnu.org/

Hoffe das hilft.

AKTUALISIEREN

Das Python-Team von AWS hat intensiv an einem BOTO-basierten CLI-Projekt für seine Cloud-Dienste gearbeitet. Zu den enthaltenen Tools gehört eine Schnittstelle für S3, die die meisten Funktionen von boto-rsync verdoppelt (und in vielerlei Hinsicht überflüssig macht):

https://github.com/aws/aws-cli

Insbesondere die sync Der Befehl kann so konfiguriert werden, dass er fast genau wie rsync funktioniert:

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


30
2018-01-22 01:30



toller Beitrag! Danke und ich gebe deinem Code bald eine Chance. Hast du irgendwelche Must-Reads für das Lernen von Python / Django? Prost - iainlbc
Welche Vorteile / Unterschiede hat Ihr Programm gegenüber S3cmd und S3sync? - James McMahon
@JamesMcMahon s3cmd / s3sync sind umfangreichere CLIs für S3 (manage Buckets, listet Inhalte usw.), während boto-rsync ein Versuch ist, rsync nachzuahmen. - Seth
Es gibt eine s3fs-Sicherung: github.com/s3fs-fuse/s3fs-fuse Das funktioniert ziemlich gut und kann mit rsync kombiniert werden, aber ich bin mir nicht sicher, wie effizient. - Stanislav
Es wäre großartig, wenn Sie erklären könnten, wie "der Sync-Befehl so konfiguriert werden kann, dass er fast genau wie rsync funktioniert". - trusktr


Ich hatte auch viel Glück mit S3cmd und S3synchBeide sind frei.


10
2017-10-13 14:56



+1 für S3cmd -.- - fnkr
S3cmd hat ein Problem mit großen Dateinummern (> 300k Dateien) .. Es isst etwa 1gig pro 100k Dateien Arbeitsspeicher so gut, um diese Einschränkung zu beachten .. - Tuxie


Abhängig davon, wie Ihre Acronis-Images erstellt werden, bin ich mir nicht sicher, ob Rsync Ihnen Bandbreite sparen würde. Acronis-Images sind einzelne Dateien, so dass rsync nicht in der Lage ist, in ihnen zu lesen, um nur zu sichern, was geändert wurde. Auch nicht sicher, welche Art von Serverbildern Sie erstellen, aber seit Sie 100GB gesagt haben, werde ich voll übernehmen? Ein inkrementelles Bild würde die nächtliche Bildgröße stark reduzieren und somit Bandbreite sparen. Sie könnten auch in Erwägung ziehen, die Bilder an einem anderen Speicherort als S3 zu speichern, z. B. auf Bandmedien, und diese Daten außerhalb des Standorts speichern.


7
2017-10-13 11:32



Nein, rsync funktioniert nicht so. Es funktioniert mit jedem Dateityp und benötigt keine Kenntnis der Interna der zu synchronisierenden Datei. Stattdessen vergleicht es Hashes von Chunks der Datei und überträgt nur die Chunks, die sich unterscheiden. en.wikipedia.org/wiki/Rsync - Alan Donnelly
und keine der Chucks wird übereinstimmen, da jede kleine Änderung in den Dateien im Bild dazu führt, dass sich die gesamte Datei aufgrund der Komprimierung ändert. Selbst wenn die Komprimierung ausgeschaltet ist, bin ich mir nicht sicher, ob Rsync gut funktioniert, da die Dateien im Bild die Reihenfolge ändern können und auf einer rollenden Basis übereinstimmen, anstatt nur einen Teil des gleichen zu finden. - JamesRyan


Ich habe S3sync nie probiert.

Ich verwende Duplikate für unsere Offsite-Backups. Es unterstützt inkrementelle Backups auf S3, spart aber aufgrund des Amazon S3-Speicherprotokolls nicht wirklich Bandbreite, da Sie bei jeder Dateiänderung gezwungen sind, die gesamte neue Datei erneut hochzuladen. Auf jeden Fall werden nur Unterschiede von der letzten inkrementellen Sicherung hochgeladen.

Mit Duplicity müssen Sie nicht wie S3sync durch einen anderen Server gehen, aber wenn Sie Ihre Daten verschlüsseln, sollte es sich lohnen, S3sync auszuprobieren.


4
2017-10-13 12:26





S3 verfügt außerdem über einen Zusatzdienst namens AWS Import / Export, mit dem Sie ein USB-Laufwerk mit Ihrem ursprünglichen 100-Gb-Datensatz an diese senden können, und sie werden mithilfe einiger Backend-Tools in ihren Rechenzentren in die S3-Cloud geladen. Sobald Ihre 100 GB hoch sind, können Sie jede Nacht nur differenzielle Sicherungen durchführen, um alles zu sichern, was sich geändert hat.

Die Website ist http://aws.amazon.com/importexport/

Wenn die Mehrheit Ihrer Daten ziemlich statisch ist, dann wäre dies eine gute Option, wenn sich die gesamten 100 Gb Daten täglich ändern, dann wird Ihnen das nicht viel helfen.


1
2017-11-09 21:35



Wie denken Sie, dass sie ein 128 GB Flash-Laufwerk "laden"? Ich stelle mir den größten USB-Hub der Welt vor, ein raumhohes Patchpanel mit USB-Anschlüssen, 3/4 voller kundenspezifischer Flash-Laufwerke, die alle auf die Rückseite eines einzelnen Blade-Servers gehen. - Paul
Was für ein Bild !! In der Realität wahrscheinlich ein armer Kerl in einer dunklen Ecke eines Datenzentrums mit Ihrem größten USB-Hub der Welt mit seinem PC verbunden :) - monkeymagic


Das neue Dschungel Disk Server Edition (Beta) könnte für Sie nützlich sein. Es verfügt über eine Deduplizierung auf Blockebene. Wenn Ihre Acronis-Images also etwas gemeinsam haben, wird dadurch die Menge an Backups stark reduziert. Die Funktionen sind ideal für Server-Backups. Lesen Sie die Versionshinweise.

Ich habe die Beta zwei Wochen lang getestet und abgesehen von einigen kleinen Problemen mit der GUI, von denen ich sicher bin, dass sie im Finale behoben werden, bin ich von dem Produkt begeistert.


0
2017-10-21 21:15





Du kannst es versuchen Minio-Client aka "mc". mc bietet nur minimale Tools für die Arbeit mit Amazon S3-kompatiblen Cloud-Speicher- und Dateisystemen.

mc implementiert die folgenden Befehle

  ls        List files and folders.
  mb        Make a bucket or folder.
  cat       Display contents of a file.
  pipe      Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.
  share     Generate URL for sharing.
  cp        Copy one or more objects to a target.
  mirror    Mirror folders recursively from a single source to many destinations.
  diff      Compute differences between two folders.
  rm        Remove file or bucket [WARNING: Use with care].
  access    Manage bucket access permissions.
  session   Manage saved sessions of cp and mirror operations.
  config    Manage configuration file.
  update    Check for a new software update.
  version   Print version.

Sie können den Befehl mirror verwenden, um Ihre Operation auszuführen. "localdir" ist das lokale Verzeichnis & S3 [Alias ​​für Amazon S3] und "remoteDir" der Name Ihres Buckets in S3.

$ mc mirror localdir/ S3/remoteDir

Sie können auch einen Cronjob für dasselbe schreiben. Auch im Falle eines Netzwerkes können Sie "$ mc session" verwenden, um den Upload von diesem Zeitpunkt an neu zu starten.

PS: Ich trage zum MiniO Projekt bei und würde gerne Feedback und Beiträge erhalten. Ich hoffe es hilft.


0
2017-11-25 17:14