Ich sichere eine Linux-Box über SMB auf einem NAS. Ich mounte den NAS lokal und synchronisiere dann viele Daten (ca. 100 GB). Ich glaube, es dauert furchtbar lange: mehr als 12 Stunden. Ich würde erwarten, viel schneller zu sein, wenn alles kopiert ist, da sich von Tag zu Tag fast nichts ändert.
Gibt es eine Möglichkeit, dies zu beschleunigen?
Ich dachte, dass rsync vielleicht denkt, dass es mit lokalen Festplatten funktioniert und Prüfsumme anstelle von Zeit- / Größenvergleichen verwendet? Aber ich habe keine Möglichkeit gefunden, Zeit- und Datumsvergleiche zu erzwingen. Kann ich sonst noch etwas überprüfen?
Antworten:
Ich denke, Sie haben ein Missverständnis des Rsync-Algorithmus und der Art und Weise, wie das Tool angewendet werden sollte.
Der Leistungsvorteil von Rsync ergibt sich aus Delta-Übertragungen, dh dem Verschieben nur der geänderten Bits in einer Datei. Um die geänderten Bits zu bestimmen, muss die Datei von den Quell- und Zielhosts gelesen und die Prüfsummen blockiert werden, um festzustellen, welche Bits geändert wurden. Dies ist der "magische" Teil von rsync - der rsync-Algorithmus selbst.
Wenn Sie das Zieldatenträger mit SMB bereitstellen und rsync verwenden, um Dateien von dem zu kopieren, was Linux als lokale Quelle und lokales Ziel "ansieht" (beide auf diesem Computer bereitgestellt), wechseln die meisten modernen rsync-Versionen in den Kopiermodus "Ganze Datei" und schalten Sie den Delta-Kopieralgorithmus aus. Dies ist ein "Gewinn", da rsync bei aktiviertem Delta-Copy-Algorithmus die gesamte Zieldatei (über die Leitung vom NAS) lesen würde, um festzustellen, welche Bits der Datei sich geändert haben.
Der "richtige Weg" zur Verwendung von rsync besteht darin, den rsync-Server auf einem Computer und den rsync-Client auf dem anderen auszuführen. Jeder Computer liest Dateien aus seinem eigenen lokalen Speicher (was sehr schnell sein sollte), stimmt zu, welche Bits der Dateien sich geändert haben, und überträgt nur diese Bits. Auf diese Weise verwenden Sie rsync-Beträge eines erfundenen 'cp'. Sie könnten das gleiche mit 'cp' erreichen und es wäre wahrscheinlich schneller.
Wenn Ihr NAS-Gerät die Ausführung eines rsync-Servers (oder Clients) unterstützt, sind Sie im Geschäft. Wenn Sie es nur über SMB auf dem Quellcomputer bereitstellen möchten, können Sie die Dateien auch einfach mit 'cp' kopieren.
quelle
Es hört sich so an, als wären Zeitstempel Ihr Problem, da diese Seite Folgendes betrifft:
http://www.goodjobsucking.com/?p=16
Die vorgeschlagene Lösung besteht darin, hinzuzufügen
zu den rsync-Parametern.
quelle
Ja, Sie können es beschleunigen. Sie müssen entweder die Quelle oder das Ziel wie einen Remote-Computer aussehen lassen, indem Sie ihn beispielsweise als "
localhost:
" adressieren .Sie haben angegeben, dass Sie die SMB-Freigabe lokal bereitstellen. Dadurch sieht die Quelle oder das Ziel wie ein lokaler Pfad zu rsync aus. Die Manpage rsync gibt an, dass Kopien, bei denen Quelle und Ziel lokale Pfade sind, die gesamte Datei kopieren. Dies wird im Absatz für die Option "--whole-file" in der Manpage angegeben. Daher wird der Delta-Algorithmus nicht verwendet. Die Verwendung der
localhost:
Problemumgehung " " stellt die Funktionalität des Delta-Algorithmus wieder her und beschleunigt die Übertragung.quelle
rsync
verwendet Zeit- und Datumsstempel, um zu prüfen, ob eine Datei aktualisiert werden muss oder nicht. Wenn ein Update erforderlich ist, teilt rsync die Datei in Blöcke auf und vergleicht die Prüfsummen. Das heißt, es wird die gesamte Datei gelesen, um dies zu tun. Wenn Sie also keinen rsync-Daemon haben, der remote ausgeführt wird, müssen Sie die gesamte Datei trotzdem übertragen, um das Chunking und die Prüfsumme durchzuführen, damit Sie sie genauso gut sofort übertragen können. Die hier beschriebene "Problemumgehung" verschafft Ihnen in diesem Szenario tatsächlich nichts.Ich dachte, ich würde meine 2p hier reinwerfen.
Mein Bruder hat gerade ein Buffalo NAS in seinem Büronetzwerk installiert. Er prüft derzeit Backups außerhalb des Standorts, sodass er im Falle eines Brandes im Büro zumindest noch alle seine Geschäftsdokumente an einem anderen Ort (viele hundert Kilometer entfernt) hat.
Meine erste Hürde bestand darin, den VPS, den er hat (einen kleinen virtuellen privaten Linux-Server, nichts zu bulliges), als VPN-Benutzer in seinen Breitband-Router einzuwählen (er verwendet dafür einen DrayTek), damit er selbst Teil davon sein kann sein VPN, und so kann es dann auf sichere Weise direkt auf den NAS zugreifen. Habe das sortiert und arbeite hervorragend.
Das nächste Problem bestand darin, die Dateien vom NAS auf den VPS-Server zu übertragen. Ich begann mit einem Samba-Mount und stieß auf genau das gleiche (oder noch schlimmere) Problem, das Sie beschrieben haben. Ich habe einen Trockenlauf-Rsync durchgeführt und es dauerte über 1 Stunde und 30 Minuten, um herauszufinden, welche Dateien übertragen werden sollten, da, wie Evan sagt, bei dieser Methode das andere Ende nicht rsync ist und daher viele Dateien abgelegt werden müssen System ruft / liest auf dem Samba-Mount (über eine PPTP / Tunnel-Verbindung mit einer Roundtrip-Zeit von ca. 40 ms). Völlig unbrauchbar.
Ich wusste nicht, dass auf dem Buffalo tatsächlich ein rsync-Daemon ausgeführt wird. Wenn Sie diesen stattdessen verwenden, dauert der gesamte Trockenlauf für 87.000 Dateien mit insgesamt 50 GB nur 1 Minute 30 Sekunden. Das Übertragen von 50 GB Dateien (von einem NAS, der sich auf einer Breitbandverbindung mit nur 100 k / s ausgehender Bandbreite befindet) ist natürlich eine ganz andere Sache (dies dauert mehrere Tage), aber sobald die anfängliche Rsync abgeschlossen ist, sollten alle inkrementellen Sicherungen durchgeführt werden Fettaufhellung (seine Daten werden sich täglich nicht wesentlich ändern).
Mein Vorschlag ist, aus den oben genannten Gründen ein anständiges NAS zu verwenden, das rsync unterstützt. Es wird alle Ihre Probleme lösen.
quelle
Es riecht nach einem günstigeren NAS. Es könnte auch von Ihrer Netzwerkbandbreite sein ...
"Standard" -Konsumenten-NAS sind sehr schwach, wenn es um schwere E / A geht, was Sie hier versuchen. Es könnte auch ein billiger Switch sein, der Ihren PC und Ihr NAS verbindet und nicht stark genug ist, um alle Pakete korrekt zu verarbeiten.
quelle
Versuchen Sie dies, wenn Sie glauben, dass Aleast Ihnen 10% mehr Geschwindigkeit verleiht, wenn Sie http://www.thegeekstuff.com/2009/09/linux-remote-backup-using-rsnapshot-rsync-utility/ erhalten.
quelle
Es gibt zwei mögliche Ursachen für das Problem: Entweder verwenden Sie falsche Kommandozeilenoptionen oder Ihr NAS hat Probleme mit der Zeitstempelung (oder beides :-). Weitere Informationen finden Sie in diesem Thread "rsync to NAS kopiert jedes Mal alles" .
quelle