가상 에이전트 사용해보기 - 일반적인 SMB 문제를 신속하게 식별하고 해결하는 데 도움이 될 수 있습니다.
이 문서는 SMB(서버 메시지 블록) 문제를 해결하는 데 도움을 주기 위해 작성되었습니다. 대부분의 사용자는 여기에 제공된 솔루션을 사용하여 문제를 해결할 수 있습니다.
SMB 용어
올바른 용어를 전달하는 것은 양질의 SMB 문제 해결의 핵심 측면입니다. 따라서 데이터 수집 및 분석의 정확도를 보장하기 위해 기본 SMB 용어를 학습해야 합니다.
- SRV(SMB 서버)(파일 서버라고도 함)는 항상 파일 시스템을 호스팅하는 시스템입니다.
- SMB 클라이언트(CLI)는 항상 파일 시스템에 액세스를 시도하는 시스템입니다.
이러한 용어는 운영 체제 버전 또는 버전에 관계없이 일관됩니다. 예를 들어 Windows Server 2016 기반 컴퓨터가 Windows 10 기반 컴퓨터에서 SMB 공유 \\MyWorkstation\Data 에 도달하려고 하면 Windows Server 2016은 SMB 클라이언트이고 Windows 10은 SMB 서버입니다.
문제 해결 검사 목록
- 올바른 SMB 네트워크 프로토콜이 설치되어 있는지 확인합니다. SMBv1 네트워크 프로토콜은 더 이상 기본적으로 설치되지 않습니다.
- SMBv1 사용 안 함.
- SMBv1만 지원하는 디바이스에서 SMBv1이 사용하지 않도록 설정된 경우 해당 디바이스에 액세스할 수 없습니다. 이 경우 시스템을 업그레이드합니다.
- 이러한 버전은 동일한 드라이버의 일부이기 때문에 SMBv2 또는 SMBv3을 별도로 사용하지 않도록 설정할 수 없습니다.
- 트래픽 분석: SMB는 TCP/IP를 네트워크 전송 프로토콜로 사용하는 애플리케이션 수준 프로토콜입니다. 따라서 SMB 관련 문제는 기본 TCP/IP 관련 문제가 있음을 나타낼 수 있습니다.
- 프로토콜 분석: 네트워크 추적에서 실제 SMB 프로토콜 세부 정보를 보고 사용되는 정확한 명령과 옵션을 이해합니다.
- SMB 관련 시스템 파일 업데이트: 시스템 파일을 최신 상태로 유지합니다. 최신 업데이트 롤업이 설치되어 있는지 확인합니다.
SMB 파일 정보
%windir%\system32\Drivers 아래에 나열된 SMB 클라이언트 바이너리:
- RDBSS.sys
- MRXSMB.sys
- MRXSMB10.sys
- MRXSMB20.sys
- MUP.sys
- SMBdirect.sys
%windir%\system32 아래에 나열된 SMB 서버 이진 파일:
- Srvsvc.dll
%windir%\system32\Drivers 아래에 나열된 SMB 서버 바이너리:
- SRVNET.sys
- SRV.sys
- SRV2.sys
- SMBdirect.sys
SMB 문제를 해결하기 전에 다음 구성 요소를 업데이트하는 것이 좋습니다.
- iSCSI: 파일 서버에는 파일 스토리지가 필요합니다. 스토리지에 iSCSI 구성 요소가 있는 경우 해당 구성 요소를 업데이트합니다.
- 네트워크: 네트워크 구성 요소를 업데이트합니다.
- Windows Core: 성능 및 안정성을 향상시키려면 Windows Core를 업데이트합니다.
로컬 컴퓨터에서 모든 공유 리소스 연결 끊기
이 명령을 사용하여 로컬 컴퓨터에서 Net Use * /delete
활성 또는 기억된 공유 리소스의 연결을 끊을 수 있습니다.
참고 항목
원격 컴퓨터에서도 이 명령을 사용할 수 있습니다. 더 많은 옵션을 실행 Net help use
합니다.
Important
이 문서의 이 섹션은 커뮤니티 콘텐츠를 기반으로 합니다.
커뮤니티 솔루션 콘텐츠 고지 사항
Microsoft Corporation 및/또는 개별 공급업체는 본 문서에 포함된 정보의 적합성, 신뢰성 또는 정확성에 대해 어떠한 진술도 하지 않습니다. 이러한 모든 정보 및 관련 그래픽은 어떤 종류의 보증도 없이 "있는 그대로" 제공됩니다. Microsoft 및/또는 개별 공급업체는 상품성, 특정 목적에의 적합성, 숙련된 노력, 소유권 및 비침해와 관련된 모든 묵시적 보증 및 조건을 포함하여 이 정보 및 관련 그래픽과 관련한 모든 보증과 조건을 부인합니다. 귀하는 Microsoft 및/또는 해당 공급업체가 어떤 경우에도 본 문서에 포함된 정보 및 관련 그래픽 사용 또는 사용 불가로 인해/그와 관련하여 발생하는 사용 불가, 데이터/수익 손실을 포함하되 이에 국한되지 않는 직접적, 간접적, 징벌적, 부수적, 특별, 결과적 손해 또는 기타 모든 손해에 대해 책임을 지지 않음에 동의합니다. 이는 그러한 손해가 계약, 불법 행위, 과실, 엄정 책임 또는 기타 원인으로 인해 발생한 경우와 Microsoft 또는 해당 공급업체가 그러한 손해의 가능성을 사전에 알고 있었던 경우에도 마찬가지입니다.
일반적인 문제 및 솔루션
스케일 아웃 파일 서버에 액세스할 때 성능이 제한됩니다
클라이언트 액세스 네트워크는 RDMA(고속 원격 직접 메모리 액세스)를 사용하지만 클러스터 네트워크는 사용하지 않습니다. 이 동작으로 인해 리디렉션은 클러스터 네트워크에서만 발생합니다. 클러스터 네트워크는 일반적으로 1GbE 네트워크 어댑터에 연결합니다.
이 문제를 해결하려면 CSV(클러스터 공유 볼륨)에 대한 클라이언트 액세스 네트워크를 사용하는 옵션을 구성할 수 있습니다. 또는 Windows Server 2012 R2 이상 버전으로 업그레이드합니다. 해당 시스템은 파일 공유 볼륨에 가장 잘 액세스할 수 있는 클러스터 노드로 클라이언트를 자동으로 리디렉션합니다. 자세한 내용은 다음 블로그 보관 문서: Windows Server 2012 R2의 자동 SMB 스케일 아웃 리밸런싱을 참조하세요.
SMB는 가상 네트워크 어댑터보다 느린 실제 네트워크 어댑터를 선호합니다
호스트의 가상 네트워크 어댑터는 RSS를 사용할 수 없습니다. 실제 네트워크 어댑터는 RSS를 지원합니다. SMB는 RSS 네트워크 어댑터가 느린 경우에도 RSS가 아닌 네트워크 어댑터 대신 RSS 지원 네트워크 어댑터를 항상 사용합니다.
이 문제를 해결하려면 물리적 네트워크 어댑터에서 RSS 기능을 사용하지 않도록 설정하거나 SMB 다중 채널 제약 조건을 사용하여 하나 이상의 정의된 네트워크 인터페이스로 SMB 통신을 제한합니다. 자세한 내용은 Windows PowerShell의 New-SmbMultichannelConstraint SMB 공유 cmdlet을 참조하세요.
SMB는 네트워크 어댑터가 RDMA를 사용할 수 없다고 생각하더라도 보고합니다
이 문제는 이전 드라이버 또는 펌웨어가 있는 RDMA 지원 네트워크 어댑터가 자신을 RDMA 지원으로 올바르게 식별하지 못할 수 있기 때문에 발생합니다.
이 문제를 해결하려면 제조업체 웹 사이트에서 네트워크 어댑터 펌웨어 및 드라이버를 업데이트합니다.
SMB 다중 채널이 시작되기 전에 필요한 네트워크 트래픽 양
SMB 다중 채널 기능은 네트워크 어댑터의 RSS 및 RDMA 기능을 검색하는 데 사용됩니다. 서버 운영 체제에서 SMB 다중 채널은 초기 읽기 또는 쓰기 작업이 발생할 때 시작됩니다. 클라이언트 운영 체제에서 SMB 다중 채널은 특정 양의 네트워크 트래픽이 발생할 때까지 시작되지 않습니다.
서버 운영 체제에서 SMB 다중 채널은 세션당 한 번만 빠르게 시작됩니다. 클라이언트 운영 체제에서는 SMB 다중 채널을 더 빨리 시작하도록 레지스트리 항목을 구성할 수 있습니다. 자세한 내용은 다음 블로그 보관 블로그 문서를 참조하세요. 멀티채널이 실제로 시작되기 전에 SMB 클라이언트와 서버 간에 전달해야 하는 트래픽의 양입니다.
SMB 다중 채널은 여러 10GbE 네트워크 어댑터를 집계하지 않습니다
RSS 지원 10GbE 네트워크 어댑터는 RSS가 지원되지 않는 것으로 식별되기도 합니다. 이 문제가 발생하면 SMB는 하나의 TCP 연결만 사용합니다. SMB 다중 채널이 RSS 지원 및 비 RSS 네트워크 어댑터를 모두 사용하는 경우 RSS 지원 네트워크 어댑터만 사용해야 합니다.
서버 클래스 네트워크 어댑터는 RSS 지원으로 표시되어야 합니다. 그렇지 않은 경우 제조업체의 웹 사이트에서 네트워크 어댑터 드라이버를 업데이트한 다음 RSS 설정을 다시 확인합니다.
처리량을 집계하려면 두 네트워크 어댑터에서 RSS를 사용하지 않도록 설정해야 할 수 있습니다. 자세한 내용은 다음 블로그 보관 블로그 문서를 참조하세요. Windows Server 2012 파일 서버 팁: 네트워크 인터페이스가 RSS 지원인지 확인합니다.
호스트의 가상 네트워크 어댑터가 제대로 작동하지 않습니다
호스트의 가상 네트워크 어댑터는 RSS를 사용할 수 없습니다. RSS 지원 네트워크 어댑터가 없으면 SMB는 TCP 연결을 하나만 사용합니다. 이 동작은 10GbE 네트워크 어댑터, RSS 지원 네트워크 어댑터 및 NIC 팀을 사용할 때 발생합니다.
이 문제를 해결하려면 여러 가상 네트워크 어댑터를 사용하여 여러 TCP 연결이 있는지 확인합니다. 자세한 내용은 다음 블로그 보관 블로그 문서를 참조하세요. Windows Server 2012 파일 서버 팁: 네트워크 인터페이스가 RSS 지원인지 확인합니다.
Windows Server 2012 R2는 SMBClient 이벤트 ID 30818을 주기적으로 기록합니다.
Windows Server 2012 R2 기반 컴퓨터에서 InfiniBand 네트워크 어댑터를 사용한다고 가정합니다. 이 어댑터는 SMB 직접 기능을 사용하여 클러스터 노드와 Hyper-V 호스트 간의 RDMA(원격 직접 메모리 액세스) 통신을 지원합니다. Hyper-V 호스트를 다시 시작한 후 Windows는 이벤트 뷰어 애플리케이션 및 서비스 로그/Microsoft/Windows/SmbClient 경로 아래에 이벤트 ID 30818을 기록할 수 있습니다. 이 경우 성능 문제도 발생할 수 있습니다.
Windows Server 2012 R2에서 LanmanServer 서비스는 SmbDirect 서비스를 자동으로 시작합니다. 그러나 LanmanWorkstation 서비스가 먼저 시작되고 SmbDirect 서비스가 로드되기 전에 RDMA 연결을 열려고 하면 Windows에서 이벤트 ID 30818을 기록합니다. 클라이언트가 처음에 TCP/IP를 통해 서버와 통신하는 경우 RDMA 인터페이스를 사용합니다. 따라서 복구하는 데 사용자 작업이 필요하지 않습니다.
Microsoft는 이후 버전의 Windows Server에서 이 문제에 대한 해결 방법을 제공하는 방안을 고려하고 있습니다.
해결 방법
Important
이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 신중하게 수행해야 합니다. 보호하기 위해 레지스트리를 수정하기 전에 백업하여 문제가 발생할 경우 레지스트리를 복원할 수 있도록 합니다. 레지스트리를 백업하고 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하십시오.
Windows Server 2012 R2에서 이 문제를 해결하려면 SmbDirect 서비스가 자동으로 시작되도록 구성합니다. 이렇게 하려면 다음 단계를 수행하세요.
레지스트리 편집기를 열고 다음 레지스트리 하위 키로 이동합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\smbdirect
레지스트리 시작 항목을 마우스 오른쪽 단추로 클릭한 다음 수정을 선택합니다.
값 데이터 상자에서 값(기본값은 주문형을 의미하는 3)을 2(자동)로 변경합니다.
이 변경 후 Windows 로깅 이벤트 ID 30818 메시지 없이 컴퓨터를 다시 시작할 수 있어야 합니다. Windows에서 이러한 이벤트를 계속 기록하는 경우 RDMA 인터페이스를 초기화하지 못하는 다른 문제가 있을 수 있습니다.
Windows Server를 설치하면 Windows에서 이벤트 ID 1을 기록합니다.
Windows Server 2019, Windows Server 2016 또는 Windows Server 2012 R2를 설치하면 Windows에서 이벤트 ID 1을 기록합니다. 이벤트 정보는 다음과 유사합니다.
로그 이름: Microsoft-Windows-SMBWitnessClient/Admin
출처: Microsoft-Windows-SMBWitnessClient
이벤트 ID:1
수준: 오류
설명: Witness 클라이언트 초기화에 오류가 발생했습니다(시스템에서 지정된 파일을 찾을 수 없습니다.)
역할 또는 기능을 사용하도록 설정하지 않은 Windows Server의 새 배포인 경우 이 이벤트를 무시해도 됩니다.
SMB의 알려진 문제
- TCP 3방향 핸드셰이크 오류
- 느린 파일 전송 속도
- 협상, 세션 설정 및 트리 연결 실패
- 유효성 검사 협상 중 TCP 연결이 중단됨
- SMB 다중 채널 문제 해결
- SMB 서버의 높은 CPU 사용량 문제
- 이벤트 ID 50 오류 메시지 문제 해결
- SMBv1은 기본적으로 설치되지 않음
- SMB 파일 공유에 액세스할 때 액세스가 거부됨
데이터 수집
Microsoft 지원 문의하기 전에 문제에 대한 정보를 수집할 수 있습니다.
필수 조건
- 로컬 시스템에 대한 관리자 권한이 있는 계정의 보안 컨텍스트에서 TSS를 실행합니다. 처음 실행하면 EULA를 수락합니다. (EULA를 수락하면 TSS에서 다시 메시지를 표시하지 않습니다.)
- 범위에서
RemoteSigned
LocalMachine
PowerShell 실행 정책을 사용하는 것이 좋습니다.
참고 항목
현재 PowerShell 실행 정책에서 TSS를 실행할 수 없는 경우 다음 작업을 수행합니다.
- cmdlet을
RemoteSigned
실행Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
하여 프로세스 수준에 대한 실행 정책을 설정합니다. - 변경 내용이 적용되는지 확인하려면 cmdlet을
Get-ExecutionPolicy -List
실행합니다.
이러한 프로세스 수준 권한은 현재 PowerShell 세션에만 적용됩니다. TSS가 실행되는 PowerShell 창을 닫으면 프로세스 수준에 대한 할당된 권한이 이전에 구성된 상태로 되돌아갑니다.
Microsoft 지원에 문의하기 전에 주요 정보 수집
모든 노드에서 TSS를 다운로드하고 파일을 C:\tss 폴더로 확장합니다.
관리자 권한 PowerShell 명령 프롬프트 창에서 C:\tss 폴더를 엽니다.
다음 cmdlet을 실행하여 클라이언트 및 서버에서 추적을 시작합니다.
클라이언트:
TSS.ps1 -Scenario NET_SMBcli
서버:
TSS.ps1 -Scenario NET_SMBsrv
추적이 서버 또는 클라이언트에서 처음으로 실행되는 경우 EULA를 수락합니다.
녹화 허용(PSR 또는 비디오).
참고 항목
클라이언트와 서버 모두에서 로그를 수집하는 경우 문제를 재현하기 전에 이 메시지가 두 노드에 모두 나타날 때까지 기다립니다.
문제를 재현합니다.
문제를 재현한 후 Y를 입력하여 데이터 로깅을 완료합니다.
TSS는 C:\MS_DATA 폴더의 압축된 파일에 추적을 저장합니다. 분석을 위해 작업 영역에 파일을 업로드할 수 있습니다.