試用我們的虛擬代理程式 - 它可協助您快速找出並修正常見的 SMB 問題。
本文旨在協助您對伺服器訊息區 (SMB) 的問題進行疑難排解。 大部分的使用者都能夠使用這裡提供的解決方案來解決其問題。
SMB 術語
傳達正確的術語是品質SMB疑難解答的重要層面。 因此,您應該瞭解基本的SMB術語,以確保數據收集和分析的正確性。
- SMB 伺服器 (SRV) (也稱為檔案伺服器) 一律是裝載檔案系統的系統。
- 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
以取得更多選項。
重要
本文的這一節是以社群內容為基礎。
Community 解決方案內容免責聲明
Microsoft 公司和/或其各自的供應商不代表此資訊和其所含相關圖形的適用性、可靠性或精確度。 所有這類資訊和相關圖形都會以「原狀」提供,而不需要任何種類的擔保。 Microsoft 和/或其各自的供應商在這裡免責與此資訊和相關圖形相關的所有瑕疵擔保和條件,包括所有隱含的瑕疵擔保和適售性條件、適合特定用途、工作方式、職稱和非侵權。 您特別同意,在任何情況下,Microsoft 和/或其供應商都不應該對任何直接、間接、懲罰性、附帶性、特殊、衍生性損害或任何損害負責,包括,不限於使用損失、資料或獲利、因使用或無法使用此處所包含的資訊和相關圖形而產生的損害, 不論是根據合約、侵權、過失、嚴格責任,還是如此,即使 Microsoft 或其任何供應商都已獲得損害的可能性。
常見問題與解決方案
存取向外延展檔伺服器時,效能受到限制
用戶端存取網路使用高速遠端直接記憶體存取 (RDMA),但叢集網路則不會。 由於此行為,重新導向只會發生在叢集網路上。 叢集網路通常會連線到 1 GbE 網路適配器。
若要針對此問題進行疑難解答,您可以設定選項以使用叢集共用磁碟區 (CSV) 的用戶端存取網路。 或者,升級至 Windows Server 2012 R2 或更新版本。 該系統會自動將用戶端重新導向至具有檔案共用磁碟區最佳存取權的叢集節點。 如需詳細資訊,請參閱下列部落格封存文章: Windows Server 2012 R2 中的自動 SMB 向外延展重新平衡。
SMB 偏好較慢的實體網路介面卡而非虛擬網路介面卡
主機上的虛擬網路適配器不支援 RSS。 實體網路適配器具備 RSS 功能。 即使 RSS 網路適配器變慢,SMB 一律會使用支援 RSS 的網路適配器,而不是非 RSS 網路適配器。
若要針對此問題進行疑難解答,請在實體網路適配器上停用 RSS 功能,或使用 SMB 多重通道限制來限制對一或多個已定義網路介面的 SMB 通訊。 如需詳細資訊,請參閱 Windows PowerShell 中的 New-SmbMultichannelConstraint SMB 共用 Cmdlet。
SMB 會報告網路介面卡無法支援 RDMA,儘管您認為它應該支援
之所以發生此問題,是因為具有較舊驅動程式或韌體之 RDMA 功能的網路適配器可能無法正確地將自己識別為支援 RDMA。
若要針對此問題進行疑難解答,請從製造商的網站更新網路適配器韌體和驅動程式。
SMB 多重通道啟動前所需的網路流量數量會有所不同
SMB 多重通道功能可用來探索網路適配器的 RSS 和 RDMA 功能。 在伺服器操作系統上,SMB 多重通道會在初始讀取或寫入作業發生時啟動。 在用戶端操作系統上,SMB 多重通道不會啟動,直到發生特定數量的網路流量為止。
在伺服器操作系統上,SMB 多重通道每一會話只會快速啟動一次。 在用戶端作業系統上,您可以設定登錄專案,以更快速地啟動SMB多重通道。 如需詳細資訊,請參閱下列部落格封存部落格文章: 在 Multichannel 實際啟動之前,SMB 用戶端與伺服器之間需要多少流量?
SMB 多重通道不會匯總多個 10 GbE 網路介面卡
支援 RSS 的 10 GbE 網路適配器有時會識別為非 RSS 功能。 發生此問題時,SMB 只會使用一個 TCP 連線。 當 SMB 多重通道同時使用 RSS 功能和非 RSS 網路適配器時,它應該只使用支援 RSS 的網路適配器。
伺服器類別網路配接器應該會顯示為 RSS 功能。 如果沒有,請從製造商的網站更新網路適配器驅動程式,然後重新檢查 RSS 設定。
您可能必須停用這兩張網路適配器上的 RSS,才能匯總輸送量。 如需詳細資訊,請參閱下列部落格封存部落格文章: Windows Server 2012 檔伺服器提示:確定您的網路介面具有 RSS 功能。
主機上的虛擬網路介面卡效能不佳
主機上的虛擬網路適配器不支援 RSS。 若沒有支援 RSS 的網路適配器,SMB 只會使用一個 TCP 連線。 當您使用 10 GbE 網路適配器、支援 RSS 的網路適配器和 NIC 小組時,就會發生此行為。
若要針對此問題進行疑難解答,請使用多個虛擬網路適配器,以確定您有多個 TCP 連線。 如需詳細資訊,請參閱下列部落格封存部落格文章: Windows Server 2012 檔伺服器提示:確定您的網路介面具有 RSS 功能。
Windows Server 2012 R2 會定期記錄 SMBClient 事件標識碼 30818
假設 Windows Server 2012 R2 型電腦使用 InfiniBand 網路適配器。 此配接器使用SMB直接存取功能來支援叢集節點與 Hyper-V 主機之間的遠端直接記憶體存取 (RDMA) 通訊。 重新啟動 Hyper-V 主機之後,Windows 可能會在 [應用程式和服務記錄檔/Microsoft/Windows/SmbClient 路徑] 底下記錄事件識別碼 30818,事件檢視器。 發生這種情況時,您也可能遇到效能問題。
在 Windows Server 2012 R2 上,LanmanServer 服務會自動啟動 SmbDirect 服務。 不過,如果 LanmanWorkstation 服務剛好先啟動,並嘗試在 SmbDirect 服務載入之前開啟 RDMA 連線,Windows 會記錄事件識別碼 30818。 當用戶端一開始透過 TCP/IP 與伺服器通訊時,會使用 RDMA 介面。 因此,不需要用戶動作才能復原。
Microsoft考慮在未來版本的 Windows Server 中提供此問題的解決方案。
因應措施
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 若要獲得保護,請在進行修改前先備份登錄,以便在出現問題時還原登錄。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
若要在 Windows Server 2012 R2 上解決此問題,請將 SmbDirect 服務設定為自動啟動。 若要這樣做,請遵循下列步驟:
開啟註冊表編輯器,然後瀏覽至下列登錄子機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\smbdirect
以滑鼠右鍵按兩下 [ 開始 登錄] 項目,然後選取 [ 修改]。
在 [ 值數據 ] 方塊中,將值(預設值為 3,表示隨選)變更為 2 (自動)。
進行這項變更之後,您應該能夠重新啟動計算機,而不需要 Windows 記錄事件識別碼 30818 訊息。 如果 Windows 繼續記錄這些事件,其他一些問題可能會防止 RDMA 介面初始化。
當您安裝 Windows Server 時,Windows 會記錄事件識別碼 1
當您安裝 Windows Server 2019、Windows Server 2016 或 Windows Server 2012 R2 時,Windows 會記錄事件標識符 1。 事件資訊如下所示:
記錄檔名稱:Microsoft-Windows-SMBWitnessClient/Admin
來源:Microsoft-Windows-SMBWitnessClient
事件標識碼:1
層級:錯誤
描述:見證用戶端初始化失敗,發生錯誤(系統找不到指定的檔案。)
如果這是未啟用任何角色或功能的 Windows Server 全新部署,您可以放心地忽略此事件。
SMB 已知問題
- TCP 三向信號交換失敗
- 檔案傳送速度緩慢
- 交涉、工作階段設定和樹狀連接失敗
- TCP 連線在驗證交涉期間中止
- SMB 多重通道疑難排解
- SMB 伺服器的高 CPU 使用率
- 疑難排解事件識別碼 50 錯誤訊息
- 預設不會安裝 SMBv1
- 存取 SMB 檔案共用時被拒絕存取
資料收集
在連絡 Microsoft 支援服務 之前,您可以收集問題的相關信息。
必要條件
- 在本機系統上具有系統管理員許可權的帳戶安全性內容中執行 TSS。 第一次執行它時,請接受EULA。 (接受 EULA 之後,TSS 不會再次提示您。
- 建議您在範圍中使用
RemoteSigned
PowerShell執行原則LocalMachine
。
注意
如果目前的 PowerShell 執行原則不允許您執行 TSS,請採取下列動作:
RemoteSigned
執行 Cmdlet 來設定進程層級的執行Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
原則。- 若要確認變更生效,請執行
Get-ExecutionPolicy -List
Cmdlet。
這些進程層級許可權僅適用於目前的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 資料夾中的壓縮檔案中。 您可以將檔案上傳至工作區進行分析。