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

Kann Plex eine GPU mit einem anderen Docker-Container gemeinsam nutzen?
Plex und ein weiterer Container können häufig auf dieselbe GPU zugreifen, aber du musst die Treiberunterstützung, die Gerätezuordnung, die Auslastung der Video-Engine, den Speicher...

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

