SMB3 マルチチャネルとSMB Directによる高速化

1. SMB3 マルチチャネルによる帯域統合(ロードバランシング)

 Windows 8/Windows Server 2012以降で導入されたSMB 3.0から、**「SMB マルチチャネル」**が利用可能になりました。これにより、複数のネットワークインターフェースカード(NIC)を同時に使用してデータを転送し、スループットを向上させることができます。

2. Linux/BSD系OSでの注意点:サブネットの分離

 SMB3に対応したLinux(Samba)やBSD(TrueNAS等)でもマルチチャネルは利用可能です。ただし、Windowsとは違い、TCP/IPの規格に沿って同一サブネット内に複数のNICを接続する構成は出来ません。この制約を回避するには、NICごとに異なるサブネットを手動で割り当てます。

  • PC A: 192.168.1.10/24192.168.2.10/24

  • PC B: 192.168.1.11/24192.168.2.11/24

  • Sambaの設定: smb.conf に server multi channel support = yes と記述する。

このように、対応する各NICを同じサブネット同士で対向させることで、マルチチャネル接続を確実に機能させることができます。

3. 動作確認の方法

 マルチチャネルが機能しているかは、タスクマネージャーの「パフォーマンス」タブでネットワーク使用状況を監視しながらファイル転送を行うことで確認できます。複数のNICに対して均等に負荷が分散されていれば、正常に動作しています。

4. SMB Direct(RDMA)とスループットの改善

 Windowsには、さらに効率を高める**「SMB Direct」**という機能があります。本来、この機能のポテンシャルを最大限に引き出すにはRDMA(Remote Direct Memory Access)対応のNICが必要ですが、一般的なギガビットイーサネット対応NICでも、SMB Directに関連するオフロード機能によって恩恵を受けられる場合があります。

Windowsでは初期状態で有効になっていますが、以下の点に注意が必要です。

  • 制限事項: 複数のNICをOS側でブリッジ(チーミングやボンディング)して1つの仮想NICとして動作させている場合、SMB Directは無効になります。

  • 設定コマンド: PowerShell(管理者)で以下のコマンドを実行することで、設定を変更できます。

    • 有効化: Set-NetOffloadGlobalSetting -NetworkDirect Enable
    • 無効化: Set-NetOffloadGlobalSetting -NetworkDirect Disable

シングルNICの環境であっても、SMB Directを有効にすることで5%以上のスループット向上が期待できます。

5. 結論:コストパフォーマンスの最適解

 ストレージがHDDメインのNASであれば、マルチチャネルによる2Gbps程度の帯域があれば十分な速度が得られます。高価な10Gbps対応のNICやスイッチングハブを導入せずとも、既存の資産を活用して安価に高速なネットワーク環境を構築できるのが、この手法の大きなメリットです。