仮想オペレーターを試す - 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
コマンドを使用して、ローカル コンピューター上のアクティブな共有リソースまたは記憶されている共有リソースを切断できます。
Note
このコマンドは、リモート コンピューターでも使用できます。 その他のオプションについては、 Net help use
を実行します。
重要
この記事のこのセクションは、コミュニティ コンテンツに基づいています。
Community ソリューション コンテンツの免責事項
Microsoft の企業および/またはそれぞれのサプライヤーは、ここに含まれる情報および関連するグラフィックスの適合性、信頼性、または正確性について何ら表明を行いません。 このような情報および関連するグラフィックスはすべて、いかなる種類の保証も行わずに「as is」 で提供されます。 Microsoft および/またはそれぞれのサプライヤーは、この情報および関連グラフィックに関して、商品性、特定の目的に対する適性、作業マンライクな努力、タイトルおよび非侵害に関する黙示の保証と条件を含む、すべての保証および条件を放棄します。 お客様は、いかなる場合も、Microsoft および/またはサプライヤーが直接、または 間接的、懲罰的、偶発的、特別な、結果的な損害、または、Microsoft またはサプライヤーが損害の可能性について助言を受けた場合でも、契約、不法、過失、厳格な責任など、ここに含まれる情報および関連するグラフィックの使用または使用に関連する、または使用できない方法に関連するいかなる方法であれ、使用の損失、データまたは利益に対する損害を含むがこれらに限定されない損害。
一般的な問題と解決方法
スケールアウト ファイル サーバーにアクセスすると、パフォーマンスが制限される
クライアント アクセス ネットワークでは高速リモート ダイレクト メモリ アクセス (RDMA) が使用されますが、クラスター ネットワークでは使用されません。 この動作により、リダイレクトはクラスター ネットワーク上でのみ行われます。 通常、クラスター ネットワークは 1 GbE ネットワーク アダプターに接続します。
この問題をトラブルシューティングするには、クラスター共有ボリューム (CSV) のクライアント アクセス ネットワークを使用するオプションを構成できます。 または、Windows Server 2012 R2 以降のバージョンにアップグレードします。 そのシステムは、ファイル共有のボリュームに最適なアクセス権を持つクラスター ノードにクライアントを自動的にリダイレクトします。 詳細については、次のブログ アーカイブ記事を参照してください。 Windows Server 2012 R2 での自動 SMB スケールアウト再調整。
SMB で仮想ネットワーク アダプターより、低速の物理ネットワーク アダプターの使用が優先される
ホスト上の仮想ネットワーク アダプターは RSS 対応ではありません。 物理ネットワーク アダプターは RSS 対応です。 SMB では、RSS ネットワーク アダプターの速度が遅い場合でも、RSS 以外のネットワーク アダプターではなく、常に RSS 対応ネットワーク アダプターが使用されます。
この問題をトラブルシューティングするには、物理ネットワーク アダプターで RSS 機能を無効にするか、SMB マルチチャネル制約を使用して SMB 通信を 1 つ以上の定義されたネットワーク インターフェイスに制限します。 詳細については、Windows PowerShell の SMB 共有コマンドレットの「New-SmbMultichannelConstraint」を参照してください。
SMB は、ネットワーク アダプターが RDMA に対応していると思われる場合でも、ネットワーク アダプターが RDMA に対応していないと報告する
この問題は、古いドライバーまたはファームウェアを持つ RDMA 対応ネットワーク アダプターが、RDMA 対応として正しく識別されない可能性があるために発生します。
この問題をトラブルシューティングするには、製造元の Web サイトからネットワーク アダプターのファームウェアとドライバーを更新します。
SMB マルチチャネルが開始するまでに必要なネットワークトラフィックの量は異なる
SMB マルチチャネル機能は、ネットワーク アダプターの RSS および RDMA 機能を検出するために使用されます。 サーバー オペレーティング システムでは、SMB マルチチャネルは、最初の読み取りまたは書き込み操作が発生したときに開始されます。 クライアント オペレーティング システムでは、SMB マルチチャネルは、一定量のネットワーク トラフィックが発生するまで開始されません。
サーバー オペレーティング システムでは、SMB マルチチャネルはセッションごとに 1 回だけすばやく起動します。 クライアント オペレーティング システムでは、SMB マルチチャネルをより迅速に開始するようにレジストリ エントリを構成できます。 詳細については、次のブログ アーカイブのブログ記事を参照してください。 マルチチャネルが実際に開始される前に SMB クライアントとサーバーの間でトラフィックを渡す必要がある状況。
SMB マルチチャネルで複数の 10 GbE ネットワーク アダプターが集約されない
RSS 対応の 10 GbE ネットワーク アダプターは、RSS 対応でないと識別される場合があります。 この問題が発生した場合、SMB は 1 つの TCP 接続のみを使用します。 SMB マルチチャネルで RSS 対応と RSS 以外の両方のネットワーク アダプターを使用する場合は、RSS 対応ネットワーク アダプターのみを使用する必要があります。
サーバー クラスのネットワーク アダプターは、RSS 対応として表示されます。 そうでない場合は、製造元の Web サイトからネットワーク アダプター ドライバーを更新し、RSS 設定を再確認します。
スループットを集計するには、両方のネットワーク アダプターで RSS を無効にする必要がある場合があります。 詳細については、ブログ アーカイブのブログ記事「 Windows Server 2012 ファイル サーバーのヒント: ネットワーク インターフェイスが RSS 対応であることを確認するを参照してください。
ホスト上の仮想ネットワーク アダプターが正常に動作しない
ホスト上の仮想ネットワーク アダプターは RSS 対応ではありません。 RSS 対応のネットワーク アダプターがない場合、SMB で使用されるのは 1 つの TCP 接続のみです。 この動作は、10 GbE ネットワーク アダプター、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 では、イベント ビューアーの Applications およびサービス ログ/Microsoft/Windows/SmbClient パスの下にイベント ID 30818 が記録されることがあります。 この場合、パフォーマンスの問題が発生する可能性もあります。
Windows Server 2012 R2 では、LanmanServer サービスによって SmbDirect サービスが自動的に開始されます。 ただし、LanmanWorkstation サービスが最初に開始され、SmbDirect サービスが読み込まれる前に RDMA 接続を開こうとした場合、Windows はイベント ID 30818 をログに記録します。 クライアントは、最初に TCP/IP 経由でサーバーと通信するときに、RDMA インターフェイスを使用します。 そのため、回復にユーザー アクションは必要ありません。
Microsoft では、今後のバージョンの Windows Server でこの問題の解決策を提供することを検討しています。
回避策
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。
Windows Server 2012 R2 でこの問題を回避するには、SmbDirect サービスを自動的に開始するように構成します。 これを行うには、次の手順を実行します。
レジストリ エディターを開き、次のレジストリ サブキーに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\smbdirect
Start レジストリ エントリを右クリックし、 Modifyを選択します。
[ 値のデータ ] ボックスで、値 (既定値は 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
レベル: エラー
説明: ミラーリング監視クライアントの初期化がエラーで失敗しました (指定されたファイルがシステムで見つかりません)。
役割や機能が有効になっていない Windows Server の新しい展開である場合は、このイベントを無視しても問題ありません。
SMB に関する既知の問題
- TCP 3 ウェイ ハンドシェーク エラー
- ファイル転送速度が遅い
- ネゴシエーション、セッション設定、ツリー接続のエラー
- ネゴシエーションの検証中に TCP 接続が中断される
- SMB マルチチャネルのトラブルシューティング
- SMB サーバーで CPU 使用率が高い問題
- イベント ID 50 のエラー メッセージのトラブルシューティング
- SMBv1 は既定でインストールされない
- SMB ファイル共有へのアクセス時にアクセスが拒否される
データ収集
Microsoft サポートに連絡する前に、問題に関する情報を収集できます。
前提条件
- ローカル システムに対する管理者特権を持つアカウントのセキュリティ コンテキストで TSS を実行します。 初めて実行するときは、EULA に同意します。 (EULA に同意すると、TSS から再度メッセージが表示されることはありません)。
LocalMachine
スコープでRemoteSigned
PowerShell 実行ポリシーを使用することをお勧めします。
Note
現在の PowerShell 実行ポリシーで TSS の実行が許可されていない場合は、次のアクションを実行します。
Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
コマンドレットを実行して、プロセス レベルのRemoteSigned
実行ポリシーを設定します。- 変更が有効であることを確認するには、
Get-ExecutionPolicy -List
コマンドレットを実行します。
これらのプロセス レベルのアクセス許可は、現在の PowerShell セッションにのみ適用されます。 TSS が実行されている PowerShell ウィンドウを閉じると、プロセス レベルに割り当てられたアクセス許可が以前に構成された状態に戻ります。
Microsoft サポートに連絡する前に重要な情報を収集する
すべてのノードで TSS をダウンロードし、ファイルを C:\tss フォルダーに展開します。
管理者特権の PowerShell コマンド プロンプト ウィンドウで C:\tss フォルダーを開きます。
次のコマンドレットを実行して、クライアントとサーバーでトレースを開始します。
クライアント:
TSS.ps1 -Scenario NET_SMBcli
サーバー:
TSS.ps1 -Scenario NET_SMBsrv
トレースがサーバーまたはクライアントで初めて実行される場合は、EULA に同意します。
記録を許可する (PSR またはビデオ)。
Note
クライアントとサーバーの両方でログを収集する場合は、問題を再現する前に、このメッセージが両方のノードに表示されるまで待ちます。
問題を再現します。
問題を再現したら、「 Y 」と入力して、データのログ記録を完了します。
TSS は、 C:\MS_DATA フォルダー内の圧縮ファイルにトレースを格納します。 分析のためにファイルをワークスペースにアップロードできます。