WindowsServer2019 複数のNICを持ったサーバのデータ転送で使用していないIPのNICも使用されるというものですが、以前、Windows10のタイトルでアップしたのですが、technetで同様の質問があったので、再度、アップしています。
ちなみに、Windows10に限らず、Windows Server 2016、Windows Server 2019で複数にネットワークがある場合に、共有フォルダに対してデータをコピーした場合に、複数のNICが同時に使用されるという動作が発生します。
こちら
Windows Server 2019 の仮想マシンで速度の異なるNICを複数搭載する場合のトラフィック転送制御について
お世話になります。
Windows Server 2019 の仮想マシンで速度の異なるNICを複数搭載する場合のトラフィック転送制御についてご教示いただけないでしょうか。
1GBと10GBの仮想NICを搭載する Windows Server 2019から物理サーバのWindows Server 2019のサーバにファイルをコピーして転送しました。
コピーはエクスプローラで宛先物理サーバのディレクトリにアクセスし、ファイルを右クリックして表示されるメニューより「コピー」および「貼り付け」の操作によりコピーしました。
1GBと10GBの仮想NICは属しているIPセグメントが異なり、IPアドレスも異なります(転送先となるサーバも同様に1GBと10GBの物理NICを持ち、IPセグメントも転送元と揃えています)。
転送中に転送元でOSリソースモニターを開き、どちらのNICでトラフィックが記録されるかを確認したのですが、1GBのNICを指定して(1GBのNICが属するIPセグメントで宛先を指定して)コピー転送をしたにもかかわらず、10GBのNICで転送トラフィックが計測されてしまいました。
転送先と転送元を逆にして試したり、仮想マシン同士で試したりしましたが結果は同様で、1GBのNICで転送しようとしても10GBのNICで転送されてしまいます。
Windows Server 2019 では、転送の際に速度の高いNICを優先して使用するような仕様があったりするのでしょうか。
▼構成情報
仮想基盤OS:VMware ESXi 7.0
仮想NICドライバ:VMXNET3(1GB、10GBの両方とも同ドライバ)
仮想マシンOS:Windows Server 2019 Standard
1GB NIC IPセグメント:10.1.1.0 /25
10GB NIC IPセグメント:10.1.2.0/25
※事象は、宛先サーバを 10.1.1.0/25 のIPで指定してコピー操作をしても、リソースモニターで10GBのNICにてトラフィックが計測されてしまうというもの
これ、構成にもよりますが、知らないと謎の動作に思われます。
例えば、サーバ間のデータコピーで複数のNICを二つ持っているサーバで、どちらのIFのIPアドレスも疎通が可能であれば発生します。
これはどういった原因で発生するのか気になって調査したのですが、以下のサイトにその原因についての記載がありました。
https://community.spiceworks.com/topic/1515733-file-transfers-on-unwanted-nic
technetにもありますが、何が原因なのかと思ったのですが、SMBマルチチャネルが原因だそうです。なるほどという内容です。
SMBマルチチャネルが原因でした。
Microsoftの主張に反して、複数のインターフェイスを利用して転送を高速化することはありません。私たちの場合、それは事態を著しく悪化させました。私の元の投稿のグラフは、400 Mbps(98 Mbps + 297 Mbps)未満の総転送速度を示しています。
ここにあるpowershellコマンドを使用して、SMBマルチチャネルを無効にしました。
Windows Server 2012以降はデフォルトで有効になっているようです。予期しないNICでデータ転送をさせたくない場合は、これを無効にする必要があります。
SMBのマルチチャネルを無効化する手順については以下が参考になります。