Udostępnij za pośrednictwem


Wskazówki dotyczące rozwiązywania problemów z protokołem SMB

Wypróbuj naszego agenta wirtualnego — może pomóc w szybkim zidentyfikowaniu i rozwiązaniu typowych problemów z protokółem SMB.

Ten artykuł ma ułatwić rozwiązywanie problemów z blokiem komunikatów serwera (SMB). Większość użytkowników może rozwiązać swój problem, stosując podane tutaj rozwiązania.

Terminologia protokołu SMB

Komunikacja przy użyciu poprawnej terminologii jest kluczowym aspektem jakości rozwiązywania problemów z protokołem SMB. Dlatego należy poznać podstawową terminologię protokołu SMB, aby zapewnić dokładność zbierania i analizy danych.

  • Serwer SMB (SRV) (znany również jako serwer plików) to zawsze system hostujący system plików.
  • Klient SMB (CLI) jest zawsze systemem, który próbuje uzyskać dostęp do systemu plików.

Te terminy są spójne niezależnie od wersji lub wydania systemu operacyjnego. Jeśli na przykład komputer z systemem Windows Server 2016 próbuje nawiązać połączenie z udziałem SMB \\MyWorkstation\Data na komputerze z systemem Windows 10, system Windows Server 2016 jest klientem SMB, a system Windows 10 jest serwerem SMB.

Lista kontrolna rozwiązywania problemów

  • Sprawdź, czy zainstalowano prawidłowy protokół sieciowy SMB. Protokół sieciowy SMBv1 nie jest już instalowany domyślnie.
  • Wyłączanie protokołu SMBv1.
  • Jeśli protokół SMBv1 jest wyłączony na urządzeniu, które obsługuje tylko protokół SMBv1, nie można uzyskać dostępu do tego urządzenia. W takiej sytuacji uaktualnij system.
  • Nie można wyłączyć oddzielnie protokołu SMBv2 lub SMBv3, ponieważ te wersje są częścią tego samego sterownika.
  • Analizowanie ruchu: SMB jest protokołem na poziomie aplikacji, który używa protokołu TCP/IP jako protokołu transportu sieciowego. W związku z tym problem związany z protokołem SMB może wskazywać, że występują inne problemy związane z protokołem TCP/IP.
  • Analizowanie protokołu: przeanalizuj szczegóły protokołu SMB w śladzie sieci, aby sprawdzić dokładne polecenia i opcje, które są używane.
  • Aktualizowanie plików systemowych związanych z protokołem SMB: Aktualizuj pliki systemowe. Upewnij się, że zainstalowano najnowszy pakiet zbiorczy aktualizacji.

Informacje o pliku SMB

Pliki binarne klienta SMB wymienione w folderze %windir%\system32\Drivers:

  • RDBSS.sys
  • MRXSMB.sys
  • MRXSMB10.sys
  • MRXSMB20.sys
  • MUP.sys
  • SMBdirect.sys

Pliki binarne serwera SMB, które są wymienione w folderze %windir%\system32:

  • Srvsvc.dll

Pliki binarne serwera SMB, które są wymienione w folderze %windir%\system32\Drivers:

  • SRVNET.sys
  • SRV.sys
  • SRV2.sys
  • SMBdirect.sys

Przed rozpoczęciem rozwiązywania problemów z protokołem SMB zaleca się zaktualizowanie następujących składników:

  • iSCSI: Serwer plików wymaga magazynu plików. Jeśli magazyn zawiera składniki iSCSI, zaktualizuj te składniki.
  • Sieć: Zaktualizuj składniki sieciowe.
  • Windows Core: aby uzyskać lepszą wydajność i stabilność, zaktualizuj system Windows Core.

Odłączanie wszystkich udostępnionych zasobów z komputera lokalnego

Możesz użyć Net Use * /delete polecenia , aby rozłączyć aktywne lub zapamiętane udostępnione zasoby na komputerze lokalnym.

Uwaga 16.

To polecenie można również użyć na komputerach zdalnych. Uruchom polecenie Net help use , aby uzyskać więcej opcji.

Ważne

Ta sekcja tego artykułu jest oparta na zawartości społeczności.

Rozwiązania społecznościowe – zrzeczenie się odpowiedzialności za treść

Firma Microsoft ani jej dostawcy nie składają żadnych oświadczeń dotyczących przydatności do jakiegokolwiek celu, niezawodności ani ścisłości informacji i pokrewnych grafik tu zawartych. Wszystkie te informacje i pokrewne grafiki są udostępniane „takie, jakie są” i bez żadnej gwarancji. Firma Microsoft i jej dostawcy wykluczają wszystkie gwarancje i warunki dotyczące tych informacji i pokrewnych grafik, w tym wszelkie gwarancje lub warunki dorozumiane w zakresie wartości handlowej, przydatności do określonego celu, braku należytej staranności, tytułu własności i nienaruszalność praw. W szczególności użytkownik potwierdza, że firma Microsoft ani jej dostawcy w żadnym wypadku nie ponoszą odpowiedzialności za żadne szkody bezpośrednie, pośrednie, przypadkowe, szczególne, wynikowe ani powodujące straty bądź krzywdę, za żadne szkody w ogóle, w tym również utratę przydatności, danych bądź zysków, wynikłe ze stosowania lub niemożności stosowania tych informacji i pokrewnych grafik czy w jakikolwiek sposób z nimi powiązane, niezależnie od tego, czy podstawą roszczenia jest umowa, popełnienie czynu niedozwolonego, zaniedbanie, odpowiedzialność obiektywna lub coś innego, nawet jeśli firmę Microsoft lub któregokolwiek z jej dostawców poinformowano o możliwości wystąpienia takich szkód.

Typowe problemy i rozwiązania

Podczas uzyskiwania dostępu do serwera plików skalowalnego w poziomie wydajność jest ograniczona

Sieć dostępu klienta korzysta z szybkiego zdalnego bezpośredniego dostępu do pamięci (RDMA), ale sieć klastra nie. Ze względu na to zachowanie przekierowanie odbywa się tylko w sieci klastra. Sieć klastra zwykle łączy się z kartami sieciowymi 1 GbE.

Aby rozwiązać ten problem, możesz skonfigurować opcję używania sieci dostępu klienta dla udostępnionych woluminów klastra (CSV). Możesz też uaktualnić system Windows Server 2012 R2 lub nowszą wersję. Ten system automatycznie przekierowuje klientów do węzła klastra, który ma najlepszy dostęp do woluminu udziału plików. Aby uzyskać więcej informacji, zobacz następujący artykuł Archiwum blogów: Automatyczne równoważenie skalowania w poziomie protokołu SMB w systemie Windows Server 2012 R2.

Protokół SMB preferuje użycie wolniejszej fizycznej karty sieciowej zamiast wirtualnej karty sieciowej

Wirtualna karta sieciowa na hoście nie obsługuje funkcji RSS. Fizyczna karta sieciowa obsługuje funkcję RSS. Protokół SMB zawsze używa karty sieciowej obsługującej funkcję RSS zamiast karty sieciowej innej niż RSS, nawet jeśli karta sieciowa RSS jest wolniejsza.

Aby rozwiązać ten problem, wyłącz funkcję RSS na fizycznej karcie sieciowej lub ograniczeń SMB Multichannel, aby ograniczyć komunikację SMB do co najmniej jednego zdefiniowanego interfejsu sieciowego. Aby uzyskać więcej informacji, zobacz polecenie cmdlet New-SmbMultichannelConstraint udziału SMB w programie Windows PowerShell.

Protokół SMB zgłasza, że karta sieciowa nie obsługuje funkcji RDMA, chociaż Twoim zdaniem powinna

Ten problem występuje, ponieważ karty sieciowe obsługujące funkcję RDMA, które mają starsze sterowniki lub oprogramowanie układowe, mogą nie być poprawnie identyfikowane jako z obsługą funkcji RDMA.

Aby rozwiązać ten problem, zaktualizuj oprogramowanie układowe i sterownik karty sieciowej z witryny internetowej producenta.

Do uruchomienia funkcji SMB Multichannel wymagane jest różne natężenie ruchu sieciowego

Funkcja SMB Multichannel służy do odnajdywania funkcji RSS i RDMA kart sieciowych. W systemach operacyjnych serwera funkcja SMB Multichannel jest uruchamiana po wystąpieniu początkowej operacji odczytu lub zapisu. W systemach operacyjnych klienta funkcja SMB Multichannel nie uruchamia się, dopóki nie wystąpi określony ruch sieciowy.

W systemach operacyjnych serwera funkcja SMB Multichannel uruchamia się szybko tylko raz na sesję. W klienckich systemach operacyjnych można skonfigurować wpis rejestru, usługa SMB Multichannel była uruchamiana szybciej. Aby uzyskać więcej informacji, zobacz następujący artykuł w blogu Blog Archive: Ile ruchu musi przechodzić między klientem SMB a serwerem przed rzeczywistym uruchomieniem multichannel?.

Funkcja SMB Multichannel nie agreguje wielu kart sieciowych 10 GbE

Karta sieciowa z obsługą funkcji RSS 10 GbE jest czasami identyfikowana jako nieobsługiwna funkcja RSS. W przypadku wystąpienia tego problemu protokół SMB używa tylko jednego połączenia TCP. Gdy funkcja SMB Multichannel używa zarówno kart sieciowych obsługujących funkcję RSS, jak i innych niż RSS, powinna używać tylko kart sieciowych obsługujących funkcję RSS.

Karty sieciowe klasy serwera powinny być wyświetlane jako obsługujące funkcję RSS. Jeśli tak nie jest, zaktualizuj sterownik karty sieciowej z witryny internetowej producenta, a następnie ponownie sprawdź ustawienia RSS.

Może być konieczne wyłączenie funkcji RSS na obu kartach sieciowych w celu agregowania przepływności. Aby uzyskać więcej informacji, zobacz następujący artykuł w blogu Blog Archive: Windows Server 2012 File Server Porada: Upewnij się, że interfejsy sieciowe są obsługujące funkcję RSS.

Wirtualna karta sieciowa na hoście nie działa dobrze

Wirtualna karta sieciowa na hoście nie obsługuje funkcji RSS. Bez karty sieciowej z obsługą funkcji RSS protokół SMB używa tylko jednego połączenia TCP. Takie zachowanie występuje w przypadku używania kart sieciowych 10 GbE, kart sieciowych obsługujących funkcję RSS i tworzenia zespołu kart interfejsu sieciowego.

Aby rozwiązać ten problem, użyj wielu wirtualnych kart sieciowych, aby upewnić się, że masz wiele połączeń TCP. Aby uzyskać więcej informacji, zobacz następujący artykuł w blogu Blog Archive: Windows Server 2012 File Server Porada: Upewnij się, że interfejsy sieciowe są obsługujące funkcję RSS.

System Windows Server 2012 R2 okresowo rejestruje zdarzenie SMBClient o identyfikatorze 30818

Załóżmy, że komputer z systemem Windows Server 2012 R2 używa karty sieciowej InfiniBand. Ta karta używa funkcji SMB Direct do obsługi zdalnej bezpośredniej komunikacji z pamięcią (RDMA) między węzłami klastra i hostami funkcji Hyper-V. Po ponownym uruchomieniu hosta funkcji Hyper-V system Windows może rejestrować identyfikator zdarzenia 30818 w obszarze Dzienniki aplikacji i usług/Ścieżka Microsoft/Windows/SmbClient w Podgląd zdarzeń. W takim przypadku mogą wystąpić również problemy z wydajnością.

W systemie Windows Server 2012 R2 usługa LanmanServer automatycznie uruchamia usługę SmbDirect. Jeśli jednak usługa LanmanWorkstation zostanie uruchomiona jako pierwsza i spróbuje otworzyć połączenie RDMA przed załadowaniem usługi SmbDirect, system Windows rejestruje identyfikator zdarzenia 30818. Gdy klient początkowo komunikuje się z serwerem za pośrednictwem protokołu TCP/IP, używa interfejsu RDMA. W związku z tym do odzyskania nie jest wymagana żadna akcja użytkownika.

Firma Microsoft rozważa rozwiązanie tego problemu w przyszłej wersji systemu Windows Server.

Rozwiązanie

Ważne

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonać poniższe kroki. Aby uzyskać dodatkową ochronę, należy przed rozpoczęciem wykonania tej modyfikacji wykonać kopię zapasową rejestru, aby rejestr mógł zostać przywrócony w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.

Aby obejść ten problem w systemie Windows Server 2012 R2, skonfiguruj usługę SmbDirect do automatycznego uruchamiania. W tym celu wykonaj następujące kroki:

  1. Otwórz Edytor rejestru, a następnie przejdź do następującego podklucza rejestru:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\smbdirect

  2. Kliknij prawym przyciskiem myszy wpis Rozpocznij rejestr, a następnie wybierz polecenie Modyfikuj.

  3. W polu Dane wartości zmień wartość (wartość domyślna to 3, co oznacza na żądanie) na 2 (automatyczne).

Po wprowadzeniu tej zmiany powinno być możliwe ponowne uruchomienie komputera bez komunikatów o identyfikatorze zdarzenia rejestrowania systemu Windows 30818. Jeśli system Windows będzie nadal rejestrować te zdarzenia, inny problem może uniemożliwić zainicjowanie interfejsu RDMA.

Podczas instalowania systemu Windows Server system Windows rejestruje zdarzenie o identyfikatorze 1

Podczas instalowania systemu Windows Server 2019, Windows Server 2016 lub Windows Server 2012 R2, system Windows rejestruje zdarzenie o identyfikatorze 1. Informacje o zdarzeniu są podobne do następujących:

Nazwa dziennika: Microsoft-Windows-SMBWitnessClient/Admin
Źródło: Microsoft-Windows-SMBWitnessClient
Identyfikator zdarzenia:1
Poziom: Błąd
Opis: Inicjowanie klienta monitora nie powiodło się z powodu błędu (system nie może odnaleźć określonego pliku).

Jeśli jest to nowe wdrożenie systemu Windows Server, które nie ma włączonych ról lub funkcji, można bezpiecznie zignorować to zdarzenie.

Znane problemy dotyczące protokołu SMB

Zbieranie danych

Zanim skontaktujesz się z pomoc techniczna firmy Microsoft, możesz zebrać informacje o problemie.

Wymagania wstępne

  • Uruchom TSS w kontekście zabezpieczeń konta z uprawnieniami administratora w systemie lokalnym. Przy pierwszym uruchomieniu zaakceptuj umowy EULA. (Po zaakceptowaniu umowy EULA usługa TSS nie wyświetli monitu ponownie).
  • Zalecamy używanie RemoteSigned zasad wykonywania programu PowerShell w LocalMachine zakresie.

Uwaga 16.

Jeśli bieżące zasady wykonywania programu PowerShell nie zezwalają na uruchamianie TSS, wykonaj następujące czynności:

  1. RemoteSigned Ustaw zasady wykonywania dla poziomu procesu, uruchamiając Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned polecenie cmdlet .
  2. Aby sprawdzić, czy zmiana zostanie w życie, uruchom Get-ExecutionPolicy -List polecenie cmdlet .

Te uprawnienia na poziomie procesu dotyczą tylko bieżącej sesji programu PowerShell. Po zamknięciu okna programu PowerShell, w którym jest uruchamiany TSS, przypisane uprawnienie do poziomu procesu zostanie przywrócone do wcześniej skonfigurowanego stanu.

Zbieranie kluczowych informacji przed skontaktowaniem się z pomocą techniczną firmy Microsoft

  1. Pobierz usługę TSS na wszystkich węzłach i rozwiń plik w folderze C:\tss .

  2. Otwórz folder C:\tss w oknie wiersza polecenia programu PowerShell z podwyższonym poziomem uprawnień.

  3. Uruchom ślady na kliencie i serwerze, uruchamiając następujące polecenia cmdlet:

    • Klient:

      TSS.ps1 -Scenario NET_SMBcli
      
    • Serwer:

      TSS.ps1 -Scenario NET_SMBsrv
      
  4. Zaakceptuj umowy EULA, jeśli ślady są uruchamiane po raz pierwszy na serwerze lub kliencie.

  5. Zezwalaj na nagrywanie (PSR lub wideo).

    Uwaga 16.

    Jeśli zbierzesz dzienniki zarówno na kliencie, jak i serwerze, przed odtworzeniem problemu zaczekaj na wyświetlenie tego komunikatu w obu węzłach.

  6. Odtwórz problem.

  7. Po odtworzeniu problemu wprowadź Y , aby zakończyć rejestrowanie danych.

TSS przechowuje ślady w skompresowanym pliku w folderze C:\MS_DATA . Plik można przekazać do obszaru roboczego na potrzeby analizy.

Informacje