Ich bin nicht sicher, ob echtes Rsync gut zu Amazon passt.
Wie ich es verstehe, bedeutet der Standard-Rsync-Algorithmus, dass der Client Hashes für jeden Block einer Datei berechnet und der Server Hashes für seine Kopie sendet und diese Hashes an den Client sendet, was bedeutet, dass der Client bestimmen kann, welche Blöcke geändert wurden und hochgeladen werden müssen.
Dies führt zu zwei Problemen für Amazon, da viele Hashes über das Internet gesendet werden müssen und außerdem Rechenleistung für die Berechnung all der Hashes benötigt wird, die die Kosten für Amazon erhöhen würden. Dies ist wahrscheinlich der Grund, warum sie es Drittanbietern überlassen, die dies können Für diese Funktion wird eine zusätzliche Gebühr erhoben.
Was die Klone betrifft, speichern sie die Hashes offensichtlich irgendwo und das irgendwo kann abhängig vom Klon variieren. Es wäre für sie möglich, die Hashes als separates Objekt pro Datei bei Amazon oder als Datenbank bei Amazon zu speichern, oder sie könnten sie lokal und remote speichern.
Es gibt Vor- und Nachteile, es so oder so zu machen. Wenn die Hashes remote in einzelnen Dateien gespeichert werden, kann es kostspielig sein, sie kontinuierlich abzurufen. Wenn die Hashes remote in einer Datenbank gespeichert werden, kann diese Datenbank sehr umfangreich werden und es kann kostspielig sein, sie kontinuierlich abzurufen und zu aktualisieren. Wenn die Hashes lokal gespeichert werden, trägt dies zur Kostensenkung bei, führt jedoch zu weiteren Komplikationen und Problemen.
(Natürlich hat Amazon noch andere Dienste, daher wäre es möglich, eine Datenbank in Amazon DB zu führen.)
Als Beispiel habe ich vor vielen Jahren einen frühen rsync-Klon ausprobiert. Dies wurde nicht geschrieben, um die Preisstruktur von Amazon zu berücksichtigen, und es wurden viele http-Zugriffe ausgegeben, um den Hash jedes Blocks abzurufen. Da Amazon für jeden Zugriff eine Gebühr berechnet, bedeutete dies, dass der Speicherteil meiner Rechnung stark abfiel, der Übertragungsteil aufgebläht.
Was verliere ich durch die Verwendung von duplicity + s3 anstelle von rsync + s3rsync + s3?
Sie verlieren die Tatsache, dass Sie mit rsync wissen, dass Sie Quelldateien mit Ihren Sicherungsdateien vergleichen. Mit duplicity und anderen Klonen vergleichen Sie Ihre Quelldateien mit einem Hash, der bei der Sicherung erstellt wurde. Beispielsweise kann es möglich sein, direkt auf S3 zuzugreifen und eine seiner Dateien zu ersetzen, ohne den Hash neu zu berechnen oder die Hash-Datenbank zu aktualisieren.