【Windows】SMBダイレクトを有効にして高速ネットワークでのファイル転送を最適化する手順

【Windows】SMBダイレクトを有効にして高速ネットワークでのファイル転送を最適化する手順
🛡️ 超解決

ビジネス環境で大容量ファイルを頻繁に転送する際、ネットワーク速度がボトルネックとなり業務効率が低下することはありませんか。

WindowsのSMBダイレクト機能は、特定のネットワークアダプターと組み合わせることで、このファイル転送速度の課題を大幅に改善できます。

この記事では、SMBダイレクトを有効化し、高速ネットワークでのファイル転送を最適化するための具体的な手順を解説します。

【要点】SMBダイレクトで高速ファイル転送を実現する

  • SMBダイレクトの有効化: RDMA対応ネットワークアダプターを使用し、ファイル転送を高速化します。
  • RDMA対応ネットワークアダプターの確認: SMBダイレクトの利用に必要なハードウェア要件を確認します。
  • ファイアウォール設定の調整: SMBダイレクトの通信がブロックされないよう、Windows Defenderファイアウォールの設定を見直します。

ADVERTISEMENT

SMBダイレクトの概要と高速転送の仕組み

SMBダイレクトは、Server Message Blockプロトコルを拡張し、Remote Direct Memory Access技術を利用してファイル転送を高速化する機能です。

RDMAは、CPUを介さずにネットワークアダプター間で直接データを転送する技術を指します。

これにより、CPUの負荷を軽減しつつ、大容量データの転送スループットを劇的に向上させることが可能です。

特に、10ギガビットイーサネット以上の高速ネットワーク環境でその真価を発揮します。

SMBダイレクトを利用するには、Windows ServerおよびWindowsクライアントの両方がSMB3.x以降をサポートし、RDMA対応のネットワークアダプターを搭載していることが前提条件です。

この機能は、データセンターやストレージシステム、仮想化環境など、高パフォーマンスなファイルI/Oが求められる場面で特に有効です。

RDMA対応ネットワークアダプターの役割

RDMA対応ネットワークアダプターは、CPUを介さず直接メモリー間でデータをやり取りする能力を持ちます。

これにより、データ転送時のCPUオーバーヘッドが削減され、遅延が大幅に低減します。

InfiniBand、RoCE RDMA over Converged Ethernet、iWARP Internet Wide Area RDMA Protocolなどの技術がRDMAの実現に用いられます。

SMBダイレクトはこれらのRDMA技術をバックエンドで活用することで、従来のTCP/IPベースのファイル転送よりも高いパフォーマンスを提供します。

SMBダイレクトを有効にする手順

SMBダイレクトを有効にするには、まずRDMA対応ネットワークアダプターが正しく認識されているかを確認し、PowerShellコマンドを使って機能を有効化します。

ここではWindows 11を基準に手順を解説します。

1. RDMA対応ネットワークアダプターの確認

  1. デバイスマネージャーを開く
    スタートボタンを右クリックし、表示されるメニューから「デバイスマネージャー」を選択します。
  2. ネットワークアダプターを確認する
    「ネットワークアダプター」の項目を展開し、使用しているネットワークアダプターがRDMAをサポートしているかを確認します。通常、アダプター名に「RDMA」や「InfiniBand」などのキーワードが含まれています。
  3. PowerShellで確認する
    管理者権限でPowerShellを開き、「Get-NetAdapterRdma」コマンドレットを実行します。RDMA機能を持つアダプターがあれば、その情報が表示されます。

2. SMBダイレクト機能の有効化

SMBダイレクトは、既定で有効になっていることが多いですが、念のため確認し、必要に応じて有効化します。

  1. 管理者としてPowerShellを開く
    スタートボタンを右クリックし、「ターミナル 管理者」または「Windows PowerShell 管理者」を選択します。
  2. SMBダイレクトの状態を確認する
    以下のコマンドレットを入力してEnterキーを押します。
    Get-SmbServerConfiguration | Select EnableSMBDirect
    結果が「True」であれば有効、 「False」であれば無効です。
  3. SMBダイレクトを有効にする
    もし無効である場合は、以下のコマンドレットを入力してEnterキーを押します。
    Set-SmbServerConfiguration -EnableSMBDirect $true
    このコマンドはSMBダイレクト機能を有効にします。

3. ファイアウォール設定の確認と調整

SMBダイレクトの通信を阻害しないよう、Windows Defenderファイアウォールの設定を確認します。

  1. Windows Defender ファイアウォールを開く
    スタートボタンをクリックし、「コントロールパネル」と入力して開きます。「システムとセキュリティ」から「Windows Defender ファイアウォール」を選択します。
  2. 詳細設定を開く
    左側のメニューから「詳細設定」をクリックします。
  3. 受信の規則を確認する
    「受信の規則」を選択し、SMB関連の規則が有効になっているかを確認します。
    通常、「ファイルとプリンターの共有 SMB受信」などの規則が有効である必要があります。
  4. 必要に応じて新しい規則を作成する
    もしSMBダイレクトに必要なポートがブロックされている場合は、TCPポート445番とUDPポート5445番を許可する新しい受信規則を作成します。

Windows 10での操作の違い

Windows 10でも、基本的な手順はWindows 11とほぼ同じです。

PowerShellコマンドレットやデバイスマネージャーの操作に大きな違いはありません。

ただし、Windows 10のバージョンによっては、コントロールパネルへのアクセス方法やメニューの配置が若干異なる場合があります。

「スタートボタンを右クリック」から「デバイスマネージャー」や「Windows PowerShell 管理者」を選択する方法は共通です。

SMBダイレクト利用時の注意点とトラブルシューティング

SMBダイレクトは高いパフォーマンスを提供しますが、特定の条件下では期待通りの効果が得られないことがあります。

ここでは、よくある問題とその対処法について解説します。

RDMA対応ハードウェアがない、または認識されない

SMBダイレクトはRDMA対応ネットワークアダプターが必須です。

もしRDMA対応アダプターが搭載されていない場合、SMBダイレクトは機能しません。

また、アダプターが搭載されていても、ドライバーが適切にインストールされていないと認識されないことがあります。

対処法:

  1. ハードウェアの確認
    システムにRDMA対応ネットワークアダプターが物理的に搭載されているかを確認します。
  2. ドライバーの更新
    デバイスマネージャーでネットワークアダプターのドライバーが最新であることを確認します。必要に応じて、メーカーのウェブサイトから最新ドライバーをダウンロードし、インストールします。
  3. Get-NetAdapterRdmaの再実行
    ドライバー更新後、再度PowerShellで「Get-NetAdapterRdma」を実行し、アダプターが認識されているかを確認します。

ファイアウォールによる通信阻害

Windows Defenderファイアウォールやサードパーティ製のファイアウォールがSMBダイレクトの通信をブロックしている可能性があります。

特に、UDPポート5445番がブロックされていると、SMBダイレクトは正常に動作しません。

対処法:

  1. ファイアウォール規則の確認
    前述の「ファイアウォール設定の確認と調整」の手順に従い、SMBダイレクトに必要なポートが許可されているかを確認します。
  2. 一時的な無効化
    問題の切り分けのため、一時的にファイアウォールを無効化してSMBダイレクトが機能するかをテストします。その後、必ずファイアウォールを再度有効にし、適切な規則を設定してください。
  3. サードパーティ製ファイアウォールの確認
    別途セキュリティソフトを導入している場合、そのファイアウォール機能の設定も確認し、SMBダイレクトの通信を許可するよう調整します。

SMBダイレクトが無効化されている

何らかの理由でSMBダイレクト機能自体が無効化されている場合があります。

対処法:

  1. 状態の確認
    PowerShellで「Get-SmbServerConfiguration | Select EnableSMBDirect」を実行し、状態が「True」であることを確認します。
  2. 有効化コマンドの実行
    もし「False」であれば、「Set-SmbServerConfiguration -EnableSMBDirect $true」を実行してSMBダイレクトを有効にします。

パフォーマンスが期待通りに出ない

SMBダイレクトを有効にしても、期待するほどのパフォーマンス改善が見られない場合があります。

これは、ネットワークの他の部分がボトルネックになっている可能性や、RDMAが正常に機能していない可能性があります。

対処法:

  1. ネットワークインフラの確認
    スイッチ、ケーブル、両端のネットワークアダプターがすべてRDMAおよび高速ネットワークに対応しているか確認します。
  2. RDMA接続のテスト
    「Get-NetAdapterStatistics」コマンドレットでRDMAの統計情報を確認し、エラーがないか、RDMAパケットが送受信されているかを確認します。
  3. ジャンボフレームの設定
    RDMAでは大きなデータフレームを使用することが多いため、ネットワークアダプターとスイッチの両方でジャンボフレームが有効になっているかを確認します。

SMBダイレクトの無効化手順

SMBダイレクトを無効化する必要がある場合は、以下のPowerShellコマンドレットを実行します。

  1. 管理者としてPowerShellを開く
    スタートボタンを右クリックし、「ターミナル 管理者」または「Windows PowerShell 管理者」を選択します。
  2. SMBダイレクトを無効にする
    以下のコマンドレットを入力してEnterキーを押します。
    Set-SmbServerConfiguration -EnableSMBDirect $false
    このコマンドはSMBダイレクト機能を無効にします。

ADVERTISEMENT

SMBダイレクトと従来のSMBファイル転送の比較

SMBダイレクトを利用したファイル転送と、従来のTCP/IPベースのSMBファイル転送には明確な違いがあります。

以下の比較表でその特徴をまとめます。

項目 SMBダイレクト 従来のSMBファイル転送
基盤技術 RDMA Remote Direct Memory Access TCP/IP Transmission Control Protocol/Internet Protocol
CPU使用率 低い(CPUを介さずデータ転送) 高い(CPUがデータ転送処理に関与)
転送速度 非常に高速(特に10GbE以上で顕著) ネットワーク帯域幅に依存
遅延 非常に低い 比較的高い
必要なハードウェア RDMA対応ネットワークアダプター 標準的なネットワークアダプター
適用シナリオ 大規模ファイル転送、仮想マシンライブマイグレーション、ストレージアクセスなど、高I/Oが求められる環境 一般的なファイル共有、Webアクセスなど
設定の複雑さ RDMA対応ハードウェアの確認と設定が必要 特別な設定は不要

まとめ

この記事では、Windows環境でSMBダイレクトを有効にし、高速ネットワークでのファイル転送を最適化する手順を解説しました。

SMBダイレクトを活用することで、大容量ファイルの転送速度が向上し、ビジネスにおけるデータ処理の効率化を実現できます。

RDMA対応ネットワークアダプターの確認、PowerShellコマンドによる機能の有効化、そしてファイアウォール設定の調整が重要なポイントです。

これらの手順を参考に、お使いのWindows環境でSMBダイレクトを導入し、ファイル転送の最適化を進めてみてください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。