Was verursacht Änderungen an Datei-Prüfsummen nach dem Kopieren über eine SMB-Freigabe?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

SMB überträgt Dateibytes normalerweise unverändert. Eine Prüfsummenabweichung bedeutet daher, dass sich der verglichene Inhalt geändert hat, inkonsistent gelesen wurde oder nicht demselben Datenstrom entsprach.

Die Abweichung kann dadurch entstehen, dass die Quelle gehasht wurde, bevor eine Anwendung den Schreibvorgang abgeschlossen hatte, dass auf einer Seite ein Ressourcenzweig oder alternativer Datenstrom verglichen wurde, dass eine Medien- oder Sicherheitsanwendung das Ziel neu schreibt, dass über einen veralteten Client-Cache gelesen wird oder dass Speicher- und Übertragungsfehler auftreten. Beim korrekten Test wird die Quelle unverändert gehalten, beide Dateien werden mit demselben Werkzeug und Modus gehasht, und die Übertragung wird über einen kontrollierten Pfad wiederholt, bevor SMB selbst verantwortlich gemacht wird.

Verifizieren, dass beide Prüfsummen dieselben Dateidaten abdecken

Notieren Sie den exakten Quellpfad, Zielpfad, Hashing-Befehl, Algorithmus, Binär- oder Textmodus sowie den Zeitpunkt, zu dem jede Prüfsumme erzeugt wurde. Stellen Sie sicher, dass keiner der Befehle eine Verknüpfung, ein Symlink-Ziel, eine temporäre Datei oder eine Begleitdatei gelesen hat.

Das SHA-256-Dienstprogramm berechnet einen Digest aus den Bytes, die es aus der angegebenen Datei liest. Die sha256sum-Referenz unterstützt die Verwendung desselben Algorithmus und Aufrufs auf beiden Endpunkten.

Wenn die Größen abweichen, untersuchen Sie zunächst eine unvollständige oder veränderte Kopie, bevor Sie die Hashes vergleichen. Wenn die Größen übereinstimmen, die Hashes jedoch nicht, fahren Sie mit der Prüfung der Quellenstabilität, des Datenstromumfangs, der Speicherauslesevorgänge und möglicher Änderungen am Ziel fort.

Anwendungen anhalten, die die Quelle während des Kopiervorgangs ändern können

Stoppen Sie Datenbanken, Download-Clients, virtuelle Maschinen, Medieneditoren, Synchronisierungstools und alle Anwendungen, die in die Quelldatei schreiben. Erzeugen Sie erst dann eine neue Quellprüfsumme, wenn die Datei geschlossen wurde.

Die Dokumentation von Rsync weist darauf hin, dass Dateien erst dann in ein überwachtetes Quellverzeichnis verschoben werden sollten, wenn sie vollständig geschrieben sind, da eine sich ändernde Quelldatei inkonsistent übertragen werden kann.

Vergleichen Sie die Quellprüfsumme vor und unmittelbar nach der SMB-Kopie. Wenn sich die beiden Quell-Hashes unterscheiden, ist SMB nicht die erste Ursache: Die Quelle hat sich während des Tests geändert.

Opportunistische Sperren, lokale Schreibvorgänge und den zwischengespeicherten Dateistatus prüfen

Listen Sie offene SMB-Handles und lokale Prozesse auf, die auf die Quelle und das Ziel zugreifen. Achten Sie besonders darauf, wenn dieselbe Freigabe gleichzeitig über SMB und direkt auf dem NAS-Host beschrieben wird.

Samba erklärt, dass opportunistische Sperren es einem Client ermöglichen, Dateiänderungen lokal zwischenzuspeichern und bei Bedarf mit dem Server zu synchronisieren. Das Sperr- und Oplock-Modell zeigt, warum gleichzeitige lokale und über SMB ausgeführte Schreibvorgänge während eines Integritätstests kontrolliert werden müssen.

Deaktivieren Sie Opportunistic Locks nicht als erste Maßnahme systemweit auf dem Server. Schließen Sie die konkurrierenden Anwendungen, öffnen Sie eine neue Sitzung und wiederholen Sie die Kopie einer einzelnen Datei, um festzustellen, ob eine gleichzeitige Nutzung beteiligt war.

Dateiinhalte von erweiterten Attributen und alternativen Datenströmen trennen

Legen Sie fest, ob die erwartete Prüfsumme nur die Hauptdateidaten oder auch ein Archiv umfasst, das Ressourcenzweige, erweiterte Attribute, alternative Datenströme, ACLs und Metadaten enthält. Verwenden Sie auf beiden Seiten denselben Umfang.

ArchWiki beschreibt erweiterte Attribute als Metadaten, die getrennt von gewöhnlichen Dateiinhalten gespeichert werden. Das Verlieren oder Umwandeln dieser Metadaten kann den Hash eines Archivs oder Pakets ändern, ohne dass sich die Prüfsumme des Hauptdatenstroms ändert.

Bei macOS-Dateien sollten Sie den Hauptdatenzweig getrennt von einem Ressourcenzweig oder einer AppleDouble-Begleitdatei vergleichen. Interpretieren Sie eine Metadatenabweichung nicht als Beweis dafür, dass sich die primären Dateibytes geändert haben.

Ein Kopierwerkzeug mit Fortsetzung und Protokollierung verwenden

Wiederholen Sie die Übertragung mit einer einzigen bekannten Kopiermethode und einem neuen Dateinamen am Ziel. Speichern Sie das Protokoll zu Wiederholungen, Fortsetzungen, Übersprüngen und Fehlern, anstatt sich auf den Fortschrittsdialog eines Dateibrowsers zu verlassen.

Microsoft definiert SMB als Protokoll, das Anwendungen das Lesen, Erstellen und Aktualisieren von Dateien auf entfernten Systemen ermöglicht. Sein SMB-Dateizugriffsmodell unterstützt die Einordnung einer geänderten Prüfsumme als Problem im Datenpfad oder durch einen Schreibprozess, nicht als erwartete Protokollumwandlung.

Wenn eine protokollierte Kopie über die Befehlszeile übereinstimmt, eine Drag-and-drop-Kopie jedoch nicht, vergleichen Sie Anwendung, Wiederholungsverhalten, Umgang mit Teildateien, Virenschutzprüfung und Verarbeitung nach dem Kopieren, anstatt den SMB-Server zu ändern.

Das Ziel prüfen, bevor Indexierer oder Anwendungen es neu schreiben

Hashen Sie das Ziel unmittelbar nach dem Kopieren, während es geschlossen ist und bevor Medienscanner, Dokumentkonverter, Fotomanager, Virenschutzprogramme oder Synchronisierungsclients es ändern können.

Der Robocopy-Leitfaden der Oregon State University hebt protokolliertes und fortsetzbares Kopieren hervor. Dadurch lässt sich die Grenze zwischen dem Abschluss der Übertragung und späteren Zugriffen von Anwendungen auf das Ziel klarer bestimmen.

Wenn der unmittelbare Hash des Ziels übereinstimmt, sich später jedoch ändert, ermitteln Sie den ersten Prozess, der die Datei zum Schreiben öffnet. Die dauerhafte Lösung liegt im Verhalten dieser Anwendung hinsichtlich Metadaten, Optimierung oder Synchronisierung.

Den Test über Speicher- und Netzwerkgrenzen hinweg wiederholen

Kopieren Sie dieselbe geschlossene Testdatei lokal auf dem Quell-NAS, lokal auf dem Zieldateisystem, über SMB von einem anderen Client und über den ursprünglichen Client. Hashen Sie die Datei nach jedem Schritt.

Der ZimaSpace-Leitfaden zum Erhalt von NAS-Migrationsmetadaten liefert die dazugehörige Regel: Inhaltshashes und Metadatenfelder müssen als separate Abnahmekriterien validiert werden.

Das Problem ist behoben, wenn eine geschlossene Quelldatei bei wiederholten Kopien übereinstimmende Hashes erzeugt und nach der Ausführung nachgelagerter Dienste unverändert bleibt. Stoppen Sie die Migration und schützen Sie die Quelle, wenn die Abweichungen immer bei derselben Festplatte, demselben Controller, demselben Client oder an einem reproduzierbaren Datei-Offset auftreten.

Support & Tipps

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.