Um große Dateien oder Blockgeräte mit geringen bis mäßigen Unterschieden zu synchronisieren, können Sie entweder eine einfache Kopie erstellen oder bdsync verwenden . Rsync ist für diesen speziellen Fall absolut nicht geeignet *.
bdsync
Arbeitete für mich, scheint ausgereift genug, es ist die Geschichte der Fehler ermutigend (kleine Probleme, schnelle Lösung). In meinen Tests lag die Geschwindigkeit in der Nähe des theoretischen Maximums, das Sie ** erreichen konnten (dh Sie können ungefähr in der Zeit synchronisieren, in der Sie die Datei lesen müssen). Endlich ist es Open Source und kostet nichts.
bdsync
Liest die Dateien von beiden Hosts und tauscht Prüfsummen aus, um sie zu vergleichen und Unterschiede zu erkennen. All dies zur gleichen Zeit . Schließlich wird eine komprimierte Patch-Datei auf dem Quellhost erstellt. Anschließend verschieben Sie diese Datei auf den Zielhost und führen bdsync ein zweites Mal aus, um die Zieldatei zu patchen.
Bei der Verwendung über eine relativ schnelle Verbindung (z. B. 100-Mbit-Ethernet) und bei Dateien mit geringen Unterschieden (wie dies häufig bei VM-Festplatten der Fall ist) verkürzt sich die Synchronisierungszeit auf die Zeit, die zum Lesen der Datei erforderlich ist. Über eine langsame Verbindung benötigen Sie etwas mehr Zeit, da Sie die komprimierten Änderungen von einem Host auf den anderen kopieren müssen (anscheinend können Sie mit einem netten Trick Zeit sparen , haben ihn aber nicht getestet).
*: rsync ist bei großen Dateien äußerst ineffizient. Auch wenn --inplace zuerst die gesamte Datei auf dem Zielhost liest, beginnt AFTERWARDS, die Datei auf dem Quellhost zu lesen und schließlich die Unterschiede zu übertragen (führen Sie einfach dstat oder ähnliches aus, während Sie rsync ausführen und beobachten). Das Ergebnis ist, dass selbst bei Dateien mit kleinen Unterschieden etwa doppelt so viel Zeit erforderlich ist, um die Datei zu lesen und zu synchronisieren.
**: Unter der Annahme, dass Sie keine andere Möglichkeit haben, festzustellen, welche Teile der Dateien geändert wurden. LVM-Snapshots verwenden Bitmaps, um die geänderten Blöcke aufzuzeichnen, sodass sie extrem schneller sind (die Readme- Datei von lvmsync enthält weitere Informationen).