Ich verwende rsync 3.1.1, um zwei Discs synchron zu halten, von denen sich eine im Netzwerk befindet und als Samba-Freigabe bereitgestellt wird /mnt/ROUTER_WD_2TB/
. Dies ist die Quelle mit einer Geschwindigkeit von maximal 30-40 MB / s aufgrund von Netzwerkbeschränkungen. Das andere, das Ziel, wird lokal gemountet (Peak 110 MB / s) und ist /mnt/BACKUP_HITACHI_2TB/
.
Ich benutze den folgenden rsync-Befehl:
rsync -haAXi --quiet --append-verify --delete /mnt/ROUTER_WD_2TB/* /mnt/BACKUP_HITACHI_2TB/.
Die Datenträger enthalten viele Dateien, von denen die meisten klein sind.
Das Problem ist, dass rsync ziemlich lange dauert (10-20 m), bevor mit dem Verschieben von Dateien begonnen wird. Ich denke, weil es Dateilisten für eine sehr große Anzahl kleiner Dateien berechnen muss. Während dieses Zeitraums liegt die Newtwork-Auslastung bei niedrigen 200-500 KB / s, während beim Übertragen von Dateien die Geschwindigkeit etwa 40 MB / s beträgt.
Es kommt normalerweise vor, dass rsync ungefähr 15 m benötigt, um endlich etwas zu finden, das kopiert werden muss, dann 5 Sekunden benötigt, um es zu kopieren, und dann weitere 5 Minuten nach anderen zu kopierenden Dateien sucht. Alles in allem dauert eine 5-Sekunden-Kopie 20 Minuten!
Gibt es Maßnahmen, die ich ergreifen könnte, um diesen langen Zeitraum vor dem Kopieren der Dateien zu vermeiden, außer Ordner auszuschließen? Welche Art von "Cache" kann ich implementieren, damit rsync nicht die gesamte Dateiliste von Grund auf neu erstellen muss?