Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Testen Sie unseren Virtual Agent – Er kann Ihnen helfen, häufige SMB-Probleme schnell zu erkennen und zu beheben.
Server Message Block (SMB) ist ein Netzwerktransportprotokoll für Dateisystemvorgänge, um einem Client den Zugriff auf Ressourcen auf einem Server zu ermöglichen. Der Hauptzweck des SMB-Protokolls besteht darin, den Remote-Dateisystemzugriff zwischen zwei Systemen über TCP/IP zu ermöglichen.
SMB-Problembehandlung kann extrem komplex sein. Dieser Artikel ist kein ausführlicher Leitfaden zur Problembehandlung. Stattdessen ist es eine kurze Einführung, um die Grundlagen der effektiven Problembehandlung bei SMB zu verstehen.
Tools und Datensammlung
Ein wichtiger Aspekt der SMB-Problembehandlung in der Qualität ist die Kommunikation der richtigen Terminologie. Daher führt dieser Artikel grundlegende SMB-Terminologie ein, um die Genauigkeit der Datenerfassung und -analyse sicherzustellen.
Hinweis
Der SMB-Server (SRV) bezieht sich auf das System, das das Dateisystem hosten, auch als Dateiserver bezeichnet. Der SMB-Client (CLI) bezieht sich auf das System, das versucht, auf das Dateisystem zuzugreifen, unabhängig von der Betriebssystemversion oder Edition.
Wenn Sie beispielsweise Windows Server 2016 verwenden, um eine SMB-Freigabe zu erreichen, die auf Windows 10 gehostet wird, ist Windows Server 2016 der SMB-Client und Windows 10 der SMB-Server.
Sammeln von Daten
Bevor Sie SMB-Probleme beheben, empfiehlt es sich, zuerst eine Netzwerkablaufverfolgung auf Client- und Serverseite zu sammeln. Die folgenden Richtlinien gelten:
Auf Windows-Systemen können Sie netshell (netsh), Network Monitor, Message Analyzer oder Wireshark verwenden, um eine Netzwerkablaufverfolgung zu sammeln.
Geräte von Drittanbietern verfügen in der Regel über ein paketinternes Paketerfassungstool, z. B. tcpdump (Linux/FreeBSD/Unix) oder pktt (NetApp). Wenn beispielsweise der SMB-Client oder SMB-Server ein Unix-Host ist, können Sie Daten sammeln, indem Sie den folgenden Befehl ausführen:
# tcpdump -s0 -n -i any -w /tmp/$(hostname)-smbtrace.pcap
Beenden Sie das Sammeln von Daten mithilfe von STRG+C über die Tastatur.
Um die Ursache des Problems zu ermitteln, können Sie die beidseitigen Überwachungen überprüfen: CLI, SRV oder dazwischen.
Verwenden von NetShell zum Sammeln von Daten
Dieser Abschnitt enthält die Schritte zur Verwendung von NetShell zum Sammeln der Netzwerkablaufverfolgung.
Von Bedeutung
Das Microsoft Message Analyzer-Tool wurde eingestellt , und wir empfehlen Wireshark , ETL-Dateien zu analysieren. Für diejenigen, die das Tool zuvor heruntergeladen haben und nach weiteren Informationen suchen, finden Sie diese unter Installieren und Aktualisieren von Message Analyzer.
Hinweis
Eine Netsh-Ablaufverfolgung erstellt eine ETL-Datei. ETL-Dateien können in Message Analyzer (MA), Network Monitor 3.4 geöffnet werden (den Parser auf Netzwerkmonitor-Parsers > Windows festlegen) und Wireshark.
Erstellen Sie sowohl auf dem SMB-Server als auch auf dem SMB-Client einen Temporären Ordner auf Laufwerk C. Führen Sie dann den folgenden Befehl aus:
netsh trace start capture=yes report=yes scenario=NetConnection level=5 maxsize=1024 tracefile=c:\Temp\netTrace.etl
Wenn Sie PowerShell verwenden, führen Sie die folgenden Cmdlets aus:
New-NetEventSession -Name trace -LocalFilePath "C:\Temp\netTrace.etl" -MaxFileSize 1024 Add-NetEventPacketCaptureProvider -SessionName trace -TruncationLength 1500 Start-NetEventSession trace
Reproduzieren Sie das Problem.
Beenden Sie die Überwachung mit folgendem Befehl:
netsh trace stop
Wenn Sie PowerShell verwenden, führen Sie die folgenden Cmdlets aus:
Stop-NetEventSession trace Remove-NetEventSession trace
Hinweis
Sie sollten nur eine Mindestmenge der übertragenen Daten nachverfolgen. Bei Leistungsproblemen sollten Sie immer eine gute und eine schlechte Überwachung verwenden, wenn die Situation das erlaubt.
Verkehr analysieren
SMB ist ein Protokoll auf Anwendungsebene, das TCP/IP als Netzwerktransportprotokoll verwendet. Daher kann ein SMB-Problem auch durch TCP/IP-Probleme verursacht werden.
Überprüfen Sie, ob tcp/IP eines der folgenden Probleme erfüllt:
Bei TCP wird der Drei-Wege-Handshake nicht abgeschlossen. Dies weist in der Regel darauf hin, dass ein Firewallblock vorhanden ist oder der Serverdienst nicht ausgeführt wird.
Neuübertragungen sind aufgetreten. Diese können aufgrund einer Compound TCP-Überlastung/Drosselung langsame Dateiübertragungen verursachen.
Fünf Übertragungen gefolgt von einer TCP-Zurücksetzung können bedeuten, dass die Verbindung zwischen Systemen verloren ging oder dass einer der SMB-Dienste abgestürzt oder nicht mehr reagierte.
Das TCP-Empfangsfenster nimmt ab. Dies kann durch langsamen Speicher oder ein anderes Problem verursacht werden, das verhindert, dass Daten aus dem Winsock-Puffer mit zusätzlichen Funktionen (Hilfsfunktionstreiber, AFD) abgerufen werden.
Wenn kein erkennbares TCP/IP-Problem vorliegt, suchen Sie nach SMB-Fehlern. Gehen Sie dazu wie folgt vor:
Überprüfen Sie SMB-Fehler immer anhand der MS-SMB2 Protokollspezifikation. Viele SMB-Fehler sind gutartig (nicht schädlich). Lesen Sie die folgenden Informationen, um zu ermitteln, warum SMB den Fehler zurückgegeben hat, bevor Sie schließen, dass der Fehler mit einem der folgenden Probleme zusammenhängt:
Im ArtikelMS-SMB2 Nachrichtensyntax werden die einzelnen SMB-Befehle und deren Optionen beschrieben.
Der Artikel MS-SMB2 Client Processing beschreibt, wie der SMB-Client Anfragen erstellt sowie auf Servernachrichten reagiert.
Der Artikel MS-SMB2 Server Processing erläutert, wie der SMB-Server Anforderungen erstellt und auf Clientanforderungen reagiert.
Überprüfen Sie, ob unmittelbar nach einem Befehl „FSCTL_VALIDATE_NEGOTIATE_INFO“ (Validate-Negotiate-Prozess) ein TCP-Zurücksetzungsbefehl gesendet wird. Wenn ja, lesen Sie die folgenden Informationen:
Die SMB-Sitzung muss beendet werden (TCP-Zurücksetzung), wenn der Validate Negotiate-Prozess entweder auf dem Client oder auf dem Server fehlschlägt.
Dieser Vorgang kann fehlschlagen, da ein WAN-Optimierer das SMB Negotiate-Paket ändert.
Wenn die Verbindung vorzeitig beendet wurde, identifizieren Sie die letzte Austauschkommunikation zwischen Client und Server.
Analysieren des Protokolls
Sehen Sie sich die tatsächlichen SMB-Protokolldetails in der Netzwerkablaufverfolgung an, um die genauen Befehle und Optionen zu verstehen, die verwendet werden.
Denken Sie daran, dass SMB nur das tut, was er tun soll.
Sie können viel darüber erfahren, was die Anwendung zu tun versucht, indem Sie die SMB-Befehle untersuchen.
Vergleichen Sie die Befehle und Vorgänge mit der Protokollspezifikation, um sicherzustellen, dass alles ordnungsgemäß funktioniert. Sollte dies nicht der Fall sein, sammeln Sie Daten, die näher oder auf einer niedrigeren Ebene liegen, um nähere Informationen zur Ursache zu finden. Gehen Sie dazu wie folgt vor:
Führen Sie eine Standardpaketerfassung aus.
Führen Sie den Netsh-Befehl aus, um zu prüfen und zu erfassen, ob Probleme im Netzwerkstapel oder Ausfälle bei Anwendungen der Windows-Filterplattform (WFP), wie z. B. Firewall oder Antivirenprogramm, auftreten.
Wenn alle anderen Optionen fehlschlagen, sammeln Sie eine t.cmd, wenn Sie vermuten, dass das Problem innerhalb von SMB selbst auftritt, oder wenn keine der anderen Daten ausreicht, um eine Ursache zu identifizieren.
Beispiel:
Es treten langsame Dateiübertragungen auf einen einzelnen Dateiserver auf.
Die beidseitigen Ablaufverfolgungen zeigen, dass der SRV langsam auf eine READ-Anforderung antwortet.
Durch das Entfernen eines Antivirenprogramms werden die langsamen Dateiübertragungen aufgelöst.
Sie wenden sich an die Antivirenprogramm-Manufaktur, um das Problem zu beheben.
Hinweis
Optional können Sie das Antivirenprogramm auch vorübergehend während der Problembehandlung deinstallieren.
Ereignisprotokolle
Sowohl SMB-Client als auch SMB-Server verfügen über eine detaillierte Ereignisprotokollstruktur, wie im folgenden Screenshot dargestellt. Sammeln Sie die Ereignisprotokolle, um die Ursache des Problems zu finden.
SMB-bezogene Systemdateien
In diesem Abschnitt werden die SMB-bezogenen Systemdateien aufgeführt. Um die Systemdateien auf dem neuesten Stand zu halten, stellen Sie sicher, dass das neueste Updaterollup installiert ist.
Die folgenden SMB-Clientbinärdateien sind unter %windir%\system32\Drivers aufgeführt:
RDBSS.sys
MRXSMB.sys
MRXSMB10.sys
MRXSMB20.sys
MUP.sys
SMBdirect.sys
Die folgenden SMB-Serverbinärdateien sind unter %windir%\system32\Drivers aufgeführt:
SRVNET.sys
SRV.sys
SRV2.sys
SMBdirect.sys
Unter %windir%\system32
srvsvc.dll
Vorschläge aktualisieren
Wir empfehlen, vor dem Beheben von SMB-Problemen die folgenden Komponenten zu aktualisieren:
Ein Dateiserver erfordert Dateispeicher. Wenn Ihr Speicher über eine iSCSI-Komponente verfügt, aktualisieren Sie diese Komponenten.
Aktualisieren Sie die Netzwerkkomponenten.
Aktualisieren Sie Windows Core, um eine bessere Leistung und Stabilität zu erzielen.