Wie kann ich verhindern, dass Fehler verschwinden, wenn ich rsync mit einem nfs-Mount verwende?

7

Ich bin dabei, Dateien von einem Ubuntu-Server auf einen Snow Leopard-Server zu verschieben. Der Ubuntu-Server hat einen NFS-Anteil von ca. 6 TB, den ich auf den Snow Leopard-Server klonen möchte.

Ich habe die NFS-Freigabe auf dem Snow Leopard-Server bereitgestellt und bin dann ausgeführt worden

rsync -av /Volumes/FromUbuntu /Volumes/LocalCopy

Nachdem es ungefähr 100 GB kopiert hat, beschwert es sich, dass Dateien verschwunden sind. Ich gehe davon aus, dass die NFS-Links aus irgendeinem Grund veraltet sind. Was könnte das verursachen? Der Ubuntu-Server stürzt nicht ab und es gibt keine mir bekannten Verbindungsprobleme. Es würde mir nichts ausmachen, den Befehl rsync immer wieder aufzurufen, bis die Kopie fertig ist, aber es dauert ungefähr 6 Stunden, bis rsync die Dateiliste erstellt hat.

Irgendwelche Vorschläge? Wäre es schneller, nur über SSH zu synchronisieren? Vielen Dank!

(PS: Ich habe versucht, nur 'cp -arv' zu verwenden, was nicht zu scheitern scheint, aber laut dem Netzwerkverkehrsmonitor auf dem Mac scheint das Kopieren von Dateien doppelt so lange zu dauern wie rsync, nachdem rsync seine Dateiliste erstellt hat ?)

UPDATE: Ich versuche, rsync über ssh vom Mac-Server auf den Ubuntu-Server zu übertragen, und es scheint viel schneller zu gehen (es dauerte weniger als zwei Stunden, um eine Dateiliste zu erstellen und mit der Übertragung zu beginnen, wo wie beim rsyncing vom nfs-Mount Etwa sechs Stunden, um die erste Dateiliste zu erstellen.) Es sieht definitiv so aus, als ob es ein Problem beim Mounten der NFS-Freigabe auf dem Mac gibt. Hat jemand Probleme damit gehabt? Was ist umgekehrt: Mounten von NFS-Freigaben auf dem Mac auf einem Ubuntu-Client? Ich hatte vor, eine NFS-Freigabe für Ubuntu-Clients auf dem Mac zu hosten, aber jetzt werde ich nervös. Danke für deinen Beitrag!

Evan
quelle
Gibt es irgendetwas, das den Inhalt dieser Freigabe ändert, nachdem rsync seine Dateiliste erstellt hat?
DerfK
@DerfK Ja, einige der Dateien werden sich wahrscheinlich ändern, sodass ich den Fehler bei einigen Dateien erwarten würde, nur nicht bei jeder Datei, nachdem so viele übertragen wurden? Oder muss ich die NFS-Freigabe von anderen Clients aushängen, damit sie ordnungsgemäß funktioniert?
Evan

Antworten:

5

Soweit ich weiß, ist die Bedingung "Datei ist verschwunden" keine schwerwiegende Fehlerbedingung rsync, und der Prozess sollte problemlos fortgesetzt werden. Wollen Sie damit sagen, dass rsyncdas angehalten wird, wenn die Meldungen "Verschwundene Datei" gemeldet werden?

Wenn Sie ein Live-Dateisystem sichern, ist es immer möglich, die Nachricht "verschwunden" abzurufen rsync. Zwischen dem Zeitpunkt, zu dem rsynceine Datei zu ihrer Übertragungsliste hinzugefügt wird, und dem Zeitpunkt, zu dem sie rsynctatsächlich gelesen wird, kann eine Datei aus einer Reihe legitimer Gründe "verschwinden" (z. B. wurde eine temporäre Sperrdatei entfernt oder eine Datei umbenannt). Beachten Sie, dass einige Anwendungen Einschränkungen beim Sperren von NFS-Dateien umgehen, indem sie versteckte Sperrdateien erstellen und entfernen. rsyncMöglicherweise werden einige davon angezeigt.

Ich würde vorschlagen, Ihr Quelldateisystem während der Sicherung so ruhig wie möglich zu halten. Im Idealfall sollte niemand anderes als der Sicherungsprozess darauf zugreifen, aber mir ist klar, dass dies möglicherweise nicht möglich ist. Wenn sich Ihr Quelldateisystem auf einem logischen LVM-Volume befindet, können Sie einen schreibgeschützten Snapshot erstellen, der als Sicherungsquelle verwendet wird.

Steven Montag
quelle
Danke für deine Antwort! Nein, es ist kein schwerwiegender Fehler, aber es wird gemeldet, dass für jede Datei "Datei ist verschwunden" gemeldet wird, nachdem eine bestimmte Zeitspanne / GB übertragen wurde. Deshalb habe ich gedacht, dass etwas an der NFS-Halterung schuld ist?
Evan
@Evan: Verschwindet also rsyncdie Meldung, dass Dateien, von denen Sie definitiv wissen, dass sie existieren, verschwinden? Das hört sich schlecht an. Nun, Sie könnten versuchen, NFS aus dem Bild zu entfernen, indem Sie den rsyncDämon auf Ihrem Ubuntu-Server ausführen und ein schreibgeschütztes Modul konfigurieren /etc/rsyncd.conf, das als Quelle für Ihre rsyncÜbertragung fungiert.
Steven Montag
Ja, es heißt definitiv, dass Dateien, die dort sind, verschwunden sind und es scheint, als ob nach einer bestimmten Zeitspanne etwas passiert. Ich habe rysnc einige Male ausgeführt und jedes Mal kopiert es ungefähr dieselbe Menge in derselben Zeit, bevor entschieden wird, dass jede andere Datei verschwunden ist. Ich bin mir nicht sicher, was das verursachen würde, da der Ubuntu NFS-Server seit einigen Jahren ohne Probleme funktioniert und es nicht zu passieren scheint, wenn ich einen cp-Befehl anstelle von rsync verwende. Ich werde rsync ohne Verwendung von NFS ausprobieren und Sie in ein paar Tagen aktualisieren, wenn es funktioniert! Danke für Ihre Hilfe.
Evan
2

Was ich in meinem täglichen Sicherungsskript mache, ist dieses Skript ein rsyncWrapper:

#!/bin/bash

rsync "$@" 2> >(grep -v vanished)
ret=$?
((ret==24)) && exit 0 || exit $ret
Gilles Quenot
quelle