2つの同一のWS2012R2サーバーを使用した構成について考えてみます。どちらにもクアッドポートネットワークボードがあります。それぞれに1つのNICが他のサーバーによって共有されるサブネットに接続され、最終的にクライアントマシンにアクセスできます。各サーバーの残りの3つのポートは「nicteamed」であり、によってのみ共有される異なるサブネットに接続されます。問題の2つのサーバー。私が見たいのは、SMBトラフィックが優先的に高速の3-nicパスを通過し、必要に応じてより混雑した1-nicパスのみに頼ることです。
ここで正しいことを行うためにSMB3の負荷分散を信頼できますか?そうでない場合、tcp/ipルートコストと同様の何らかの重み付けを適用できますか?
この製品は「正しいことをする」と言ってかなり安心していますが、あなたが話していることを正確にシミュレートするための代表的な環境がありません。
技術的に言えば、サーバーコンピュータがFSCTL_QUERY_NETWORK_INTERFACE_INFO
APIを介してネットワークインターフェイスの詳細を通信した後、悪魔は詳細になります。このネゴシエーションは、実際には、 [MS-SMB2]:サーバーメッセージブロック(SMB)プロトコルバージョン2および 仕様のセクション4.8に例として示されています。残念ながら、ネットワーク接続の選択に関連するロジックを含む仕様の部分には、「クライアントは新しい接続を確立するために任意の1つのネットワークインターフェイスペアを選択します...」とだけ書かれています。インターフェイス選択プロトコルには微妙な違いがあります(これは、Microsoftが仕様から省略しているのに役立ちますが、この動作は仕様の範囲外であると主張できると思います)。 この記事 は、たとえば、「ルーティング不可能」(APIPAおよびリンクローカルアドレス)がSMBマルチチャネルに使用されない方法について説明しています。
上記の記事で説明した「ルーティング不可能な」アドレスは別として、これは、クライアント/サーバーペア上の任意のネットワークインターフェイスが通信できるという暗黙の前提が製品にあるかどうかを本当に疑問に思います。 (これは、トラフィックフィルタリング/ポリシーによってその仮定が正しくないいくつかの奇妙なシナリオでマイニングされるのを待っているだけで失敗の静脈になる可能性があります。)おそらく、最初のインターフェイスと同じサブネット内のインターフェイスにいくつかの優先順位があると思いますチャネルはで作成されました。 (Microsoftがこの振る舞いを公開したなら、それは確かに素晴らしいことです!)(私はそれを見ます これについて考えているのは私だけではありません 、少なくとも...)
マシンからGet-SmbMultichannelConnection
を実行して、長時間実行されるコピー操作中にサーバー間のSMBマルチチャネル接続が作成されているかどうかを確認できます。次の場合は、-IncludeNotSelected
引数を追加します。 「選択されていない」パスを表示する必要があります。
New-SmbMultichannelConstraint
コマンドレットを使用してSMBマルチチャネルから接続を完全に除外できますが、それ自体はチャネルの優先度に重みを付けません。これは単なる除外です(これはあなたが行うことではありません)探しています)。
余談ですが、W2K12に組み込まれているNICチーミング機能を使用していると思います。スイッチを使用して、LACPハッシュアルゴリズム(「負荷分散」と呼ばれる)を確認することをお勧めします。 Windows Serverの「モード」)が最適です。さまざまなスイッチでより高いスループットを提供するモードを変更するという話をいくつか見ました。