LANを手軽にスピードアップ【SMBマルチチャンネルとは?】

シェアする

  • このエントリーをはてなブックマークに追加
BUFFALO 有線LANアダプター LUA4-U3-AGTE-NBK ブラック Giga USB3.0対応 簡易パッケージ 【Nintendo Switch動作確認済み】
Shuttle DS437T
BUFFALO 有線LANアダプター LUA4-U3-AGT Giga USB3.0対応 【Nintendo Switch動作確認済み機器】
GIGABYTE GZ-X1BPD-100



 先日のSeagate Exos X12に関する記事では、2台のPCを使用してGigabit LAN(1000Mbps)経由でファイル共有を行い、その際のコピー速度などについて書きました。

 その後、Windowsでのファイル共有速度をアップさせるSMBマルチチャンネルを試してみたので、今回はその方法などについて書いてみたいと思います。

投稿日 2019/8/20
先日の記事はこちら!

SMBマルチチャンネルの仕組みと条件

SMBマルチチャンネルとは複数のNICを束ねる機能

TP-Link 1000BASE-T/100BASE-TX/10BASE-T対応PCI-E バス用ギガビットLANアダプター TG-3468
出典:www.amazon.co.jp
 Windows OSで使われているファイル共有のネットワークプロトコル、SMB(Server Message Block)。この通信を複数のNIC(Network Interface Card)を束ね、同時に(分散して)行うことでファイルの読み書きをスピードアップさせる機能が、SMBマルチチャンネルです。使用できるNICは最大4つとなっています。

SMBマルチチャンネルを行うための条件

玄人志向 STANDARD PCI-Express接続 Gigabit LAN増設カード GBE-PCIE4
出典:www.amazon.co.jp
 SMBマルチチャンネルを行うためには、以下のような条件を満たす必要があります。

サーバーとクライアントのどちらも、OSがWindows 8 / Windows Server 2012以降である。
サーバーとクライアントのどちらも、複数のNICを搭載している。
使用する全てのNICで、RSSの有効 / 無効を揃える。

「RSS(Receive-Side Scaling)」とは
 受信作業を、複数のCPUコアで分散することで、処理を高速化する技術です。

準備をしよう

 今回は、普段ファイル・メディアサーバーとして使用しているスモールファクター ベアボーンPCのShuttle DS437Tと、クライアントとしてメインで使用している自作PCの2台でSMBマルチチャンネルを行います。それぞれの主なスペックは次のようなものです。

サーバー:DS437T(OS、メモリ、2.5インチSSDは筆者が別途追加)

Shuttle DS437T
出典:www.amazon.co.jp

・OS:Windows 10 Home 64bit
・CPU:Intel Celeron 1037U(1.8GHz)
・メモリ:DDR3 8GB(Team DDR3 1600MHz PC3-12800 1.5V 4GB×2)
・起動ディスク:2.5インチSSD 120GB(Silicon Power S60 SATA3 120GB)
・有線LAN(オンボード):Gigabit(Realtek PCIe GBE)

クライアント:メインで使用している自作PC

GIGABYTE ミドルタワー GZ-X1シリーズ PCケース GZ-X1BPD-100
GIGABYTE GZ-X1BPD-100 出典:www.amazon.co.jp

・OS:Windows 10 Home 64bit
・CPU:Intel Core i7-6700 3.40GHz(ターボ・ブースト時 4.00GHz)
・グラボ:MSI GeForce GTX 1080 ARMOR 8G OC
・メモリ:32GB(TEAM DDR4 PC4-19200 2400MHz、8GB×4枚)
・マザーボード:GIGABYTE GA-Z170XP-SLI(rev. 1.0)
・有線LAN(オンボード):Gigabit(Intel I219-V)
・起動ディスク:M.2 SSD 256GB(PLEXTOR PX-256M8SeG)
・データ編集作業用SSD:M.2 SSD 512GB(SAMSUNG 970 PRO 512GB)
・データ保存用HDD:2TB×3(Western Digital WD Green WD20EARS / WD20EARX)

OSのバージョンはWindows 10 Home 64bit

Microsoft Windows 10 Home April 2018 Update適用 32bit/64bit 日本語版【最新】|オンラインコード版
出典:www.amazon.co.jp
 上記の2台のPCは、OSがどちらもWindows 10 Home 64bit。なので、前述の条件のうち「 サーバーとクライアントのどちらも、OSがWindows 8 / Windows Server 2012以降である」は既に満たしています。

USB LANアダプターを2つ用意して接続

BUFFALO LUA4-U3-AGTE-NBKを購入

※価格は2020年8月1日時点のものであり、変更されている場合があります。以下同。


 BUFFALO LUA4-U3-AGTE-NBKを購入しました。説明は不要かと思いますが、PCのUSB 3.0ポートに接続することで、Gigabit(1000Mbps)の有線LAN通信が可能となるアダプターです。

手元のBUFFALO LUA4-U3-AGTも使用

BUFFALO 有線LANアダプター LUA4-U3-AGT Giga USB3.0対応 【Nintendo Switch動作確認済み機器】
6,240円(税込)

出典:www.amazon.co.jp
 さらに、手元にあったBUFFALO LUA4-U3-AGTも使用します。上記のBUFFALO LUA4-U3-AGTE-NBKの前モデルで、2015年6月購入です。ただし、チップはどちらもASIX AX88179なので、基本性能は変わりません。

LANケーブルで直結

 これらのLANアダプターを、前述の2台のPCに取り付けて、カテゴリ6のLANケーブルで直結しました(Gigabitでの通信は、カテゴリ5e以上なら可です)。

 直結なので、IPアドレスはDHCPではなく、手動で設定しています。

サンワサプライ カテゴリ6UTP LANケーブル 3m レッド LA-Y6-03R
475円(税込)

出典:www.amazon.co.jp

 これで、前述の条件のうち「 サーバーとクライアントのどちらも、複数のNICを搭載している」を満たしました。

 LANのレイアウトを簡単に示すと、以下のようになります。

LAN layout

各デバイスの写真の出典:www.amazon.co.jp

USB LANアダプターは直結しても、スイッチングハブに接続しても可
BUFFALO Giga対応 金属筺体 電源内蔵 8ポート ブラック スイッチングハブ LSW5-GT-8NS/BK
出典:www.amazon.co.jp
 2つのUSB LANアダプターは、それぞれをスイッチングハブに接続しても、もちろん可です。

 ただ、現在使用しているスイッチングハブのポートに余りがなかったこと、LANケーブルはなるべく少なくしたいこと、そしてSMBマルチチャンネルで接続するのが2台のPCのみということで、今回は直結にしたというわけです。

全てのNICでRSSを無効にする

 これは、サーバーのDS437Tの画面で説明します。

 筆者はイーサネットの設定が分かりやすいよう、コントロールパネルの「ネットワーク接続」で、それぞれの名称を「ASIX AX88179 USB3.0」、「Realtek PCIe GBE」に変更しています。

ネットワーク接続

NICのRSS対応状況を確認

 まずは、NICのRSSの対応状況を知る必要があります。NICによって、RSSに対応しているもの、対応していないものがあるからです。

 Windows PowerShell(管理者)から、次のコマンドを実行します。

[code lang=”text”]Get-SmbClientNetworkInterface[/code]

 すると、次のような画面になります。

PowerShell Get-SmbClientNetworkInterface
 「RSS Capable」のところは、「Realtek PCIe GBE」の方が「True」、「ASIX AX88179 USB3.0」の方が「False」になっています。このように揃っていない状態では、SMBマルチチャンネルはできません。

RSSを無効にする

 コマンドプロンプト(管理者)から次のコマンドを実行します。

[code lang=”text”]netsh int tcp set global rss=disabled[/code]

コマンドプロンプト netsh int tcp set global rss=disabled
 「OK」と表示されれば、RSSが無効になります

 確認したい場合は、次のコマンドを実行します。

[code lang=”text”]netsh int tcp show global[/code]

コマンドプロンプト netsh int tcp show global
 「Receive-Side Scaling 状態」が「disabled」であれば、RSSが無効になっています。

再度、NICの「RSS Capable」を確認

 先程と同様、Windows PowerShell(管理者)から、次のコマンドを実行します。

[code lang=”text”]Get-SmbClientNetworkInterface[/code]

PowerShell Get-SmbClientNetworkInterface
 今度は、「RSS Capable」がどちらも「False」になっています。この状態になればOKです。


 クライアントの自作PCでも同様に設定しようとしたところ、2つのNIC(オンボードの「Intel I219-V」、USB LANアダプター「ASIX AX88179 USB3.0」)のどちらも、「RSS Capable」は「False」でした。

 USB LANアダプター「ASIX AX88179 USB3.0」は、サーバーのDS437Tで使用しているUSB LANアダプターと同じチップなので分かっていましたが、オンボードの「Intel I219-V」もデフォルトで「False」だったので、手間が省けましたね。

 これで、最後の条件「 使用する全てのNICで、RSSの有効 / 無効を揃える」を満たしました。

転送速度を測定

 比較のため、まずはGigabit LAN(1000Mbps)で測定し、その後にSMBマルチチャンネルで測定しました。

 測定方法は、サーバーのDS437Tに接続したUSB HDDを、クライアントの自作PCからネットワークディスクとしてマウントしたうえでの、以下のテストになります。

CrystalDiskMark 6.0.2でのベンチマーク(1GiB 5回)
10GBダミーファイルのM.2 SSD(SAMSUNG 970 PRO 512GB)からの書き込み
 DS437Tに接続したUSB HDDは、Seagate Exos X12エンタープライズHDD(12TB)とロジテック LGB-EKU3(USB 3.1 Gen1)の組み合わせです。USB接続におけるCrystalDiskMark 6.0.2(1GiB 5回)のシーケンシャルリードが217.0MB/s、同ライトが217.8MB/sなので、今回のテストでボトルネックになることはほぼないだろう、という考えです。

※Seagate Exos X12には既に約5TBのバックアップデータを保存していて、使用率46%となっていたのですが、これを他に移すのはとても大変なので、このままテストを実施しました。
こちらもチェック!


 自作PCのM.2 SSD(SAMSUNG 970 PRO 512GB)の転送速度は、CrystalDiskMark 6.0.2(1GiB 5回)のシーケンシャルリードが3448.9MB/s、同ライトが2351.24MB/sという爆速なので、ボトルネックになることはありません。

こちらもチェック!

Gigabit LANでの測定

CrystalDiskMark 6.0.2のベンチマーク

DS437TにLogitec LGB-EKU3でUSB 3.1 Gen1接続し、Gagabit LAN経由で実施したベンチマーク
 予想どおりGigabit LANがボトルネックとなり、シーケンシャルリードが113.5MB/s、同ライトが120.8MB/sという、ほぼGigabit LANの上限速度(125MB/s)となる結果でした。

10GBダミーファイルの書き込み

DS437TにLogitec LGB-EKU3でUSB 3.1 Gen1接続し、Gagabit LAN経由で10GBのダミーファイルをコピー
 書き込みは1分30.00秒で終了し、速度は約113MB/sとなりました。やはり、Gigabit LANがボトルネックになっていますね。

SMBマルチチャンネルでの測定

CrystalDiskMark 6.0.2のベンチマーク

DS437TにLogitec LGB-EKU3でUSB 3.1 Gen1接続し、SMBマルチチャンネル経由で実施したベンチマーク
 シーケンシャルリードが213.8MB/s、同ライトが178.4MB/sでした。Gigabit LANの上限速度(125MB/s)を超えましたよ!

 前述のGigabit LAN経由(シーケンシャルリード113.5MB/s、同ライト120.8MB/s)と比較すると、約1.4~1.8倍のスピードです。

10GBダミーファイルの書き込み

DS437TにLogitec LGB-EKU3でUSB 3.1 Gen1接続し、SMBマルチチャンネル経由で10GBのダミーファイルをコピー
 書き込みは61.83秒で終了し、速度は約165MB/sとなりました。Gigabit LAN経由(約113MB/s)と比較して、約1.5倍のスピードです。

 なお、ファイルコピーのウィンドウの後ろにあるのは、タスクマネージャーのウィンドウ。2つのNICで、しっかりと通信を分散処理しているのが分かります。

おわりに

 筆者が始めてLANを構築した頃はイーサネット(10Mbps)が標準で、その後すぐにファストイーサネット(100Mbps)に切り替わっていきました。その頃は、ファイルサイズがさほど大きくなかったため、「100Mbpsになって、LANのコピー速度がかなり上がった!」という印象でしたね。

 その後、Gigabit(1000Mbps)を導入し、今回のSMBマルチチャンネル化によってコピー速度は更にアップしたのですが、同時にファイルのサイズがどんどん大きくなっているので(特に動画や写真など)、そのうち「これじゃあ遅いよ!」と感じるようになるかも…。なので、今後も速度アップの方法を、いろいろ検討していきたいと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする



トップへ戻る