SMBマルチチャネルは、複数の経路をどのようにしてホームNASに利用するのですか?

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

SMBマルチチャネルは、複数のネットワーク接続を1つの論理的なSMBセッションにバインドすることで、ホームNASへの複数パスを使用します。クライアントとサーバーは使用可能なインターフェースと能力を検出し、1つのRSS対応アダプター、複数の物理NIC、またはRDMA対応リンク上で並列チャネルを作成します。

この機能はスループットを向上させ、1つの接続が失敗してもファイルセッションを維持しますが、単にすべてのポート速度を合計するわけではありません。選択されたインターフェースは互換性があり到達可能でなければならず、NASディスク、クライアントストレージ、CPU、PCIeパス、スイッチが使用可能な上限を定義します。

SMBクライアントはどのようにして複数のパスを検出するのですか?

最初のSMB接続が確立された後、エンドポイントはネットワークインターフェースとその能力に関する情報を交換します。SMBはリンク速度やインターフェース選択に影響する機能を含むインターフェース能力情報を交換します

パスには単なる追加の物理ポート以上のものが必要です。両端のエンドポイントは互いに到達可能なアドレスを持つ必要があり、SMBの実装はそれらのインターフェースを同じセッションに適格なものとして公開しなければなりません。

異なる速度や能力クラスのインターフェースは、単純な合計のように一緒に使用されるわけではありません。SMBは、すべての経路に均等にトラフィックを分散するのではなく、より高速でRSS対応またはRDMA対応のアダプターを優先することがあります。

なぜ1つのSMBセッションが複数のTCP接続を作成するのですか?

マウントされた共有と認証されたファイルセッションは、1つのSMBセッションが複数の接続を使用できる場合でも論理的に統一されたままです。SMBは複数の無関係な共有を提示するのではなく、追加のチャネルを既存のセッションにバインドします。

ファイルのリクエスト、レスポンス、クレジット、データはこれらのチャネルに分散可能です。OSがマッピングを管理するため、アプリケーションは通常、1つの接続で使用するのと同じパスとファイルハンドルを開きます。

これは複数の独立したコピー・プログラムを起動するのとは異なります。マルチチャネルは1つのSMBセッション内でトランスポートの並列性を作り出し、ファイルプロトコルは認証、ロック、順序付け、共有の意味を維持し続けます。

RSSと複数NICは利用可能な並列性をどのように変えるのか?

受信側スケーリング(RSS)は1つのネットワークアダプターが受信処理を複数のCPUコアに分散させる機能です。RSSはネットワーク処理をCPUコアに分散させます。これにより1つの高速フローが単一のプロセッサキューに集中することを防ぎます。

複数の物理NICがある場合、SMBは異なるインターフェース上でチャネルを確立できます。これによりリンク容量が増え、クライアントとNASの両方が互換性のある到達可能な経路を公開していれば、セッションに別々の障害点が生まれます。

単一のRSS対応高速NICと2つの独立したNICは異なるトポロジーです。前者は1つのリンク内でCPUの並列処理を向上させ、後者は物理リンクの帯域幅と冗長性を追加できます。

RDMAはSMBマルチチャネルのどこに位置するのか?

SMB DirectはSMBで使用されるRDMAトランスポート機能であり、マルチチャネルは利用可能なSMB経路を選択して組み合わせます。RDMAは両端のエンドポイントとネットワークが必要なRDMA技術をサポートしている場合、SMBデータの移動におけるCPU使用率を低減します

マルチチャネルはRDMAなしの通常のTCP上で動作できます。ホストの負荷が低いため、一般的にはRDMA対応の経路が推奨されますが、標準的なイーサネットアダプターを備えた普通の家庭用NASでも複数のTCPチャネルを使用できます。

RoCEやその他のRDMA設計は独自のスイッチ、損失管理、ドライバー、トポロジー要件を導入します。ホームNASにRDMAを追加することは別のインフラ決定であり、基本的なSMBマルチチャネルに必要なチェックボックスではありません。

マルチチャネルはどのようにコピーを再起動せずにフェイルオーバーを提供するのか?

複数の接続が同じSMBセッションに属しているため、残りのチャネルがSMBセッションを維持できます。クライアントは共有接続全体を再構築する代わりに、到達可能なチャネルを使い続けることができます。

障害が検出され、未処理のリクエストが回復される間、中断は依然として見えることがあります。ファイルの耐久性はSMBの方言、サーバーの動作、およびアプリケーションのタイムアウトにも依存します。

マルチチャネルは接続やNICパスの障害に対して保護しますが、NASの再起動、ストレージプールの障害、スイッチの電源喪失、またはすべてのチャネルが同じ隠れた物理コンポーネントを通過することに対しては保護しません。

なぜ複数のネットワーク接続が複数の転送速度を保証しないのか?

MicrosoftのマルチNIC設計により、SMBワークロードは複数の適格なネットワークパスを使用できますが、複数のパスがストレージのボトルネックを超えることはできません。2ポートのNASは、ディスクやCPUが1ポートで既に飽和している場合、スループットを2倍にすることはできません。

クライアントはまた、合計速度でデータの読み書きを行う必要があります。遅いノートパソコンのSSD、USBアダプター、PCIeレーン、暗号化プロセス、またはSMB署名パスのいずれかが、セッションの速度をネットワークインターフェースの合計以下に抑えることがあります。

SMBはデバイス間での共有ファイルアクセスを提供します。1つのSMBクライアントやワークロードが複数の経路を利用できる場合はマルチチャネルを使用し、未使用のリンク容量をプロトコルの失敗と見なす前に、アクティブなチャネルを確認しNASストレージ経路を測定してください。

ネットワーク機能 SMBマルチチャネルが追加するもの 残りの制限
1つの非RSS対応NIC 通常は1つの有効な接続経路 単一リンクとプロセッサキュー
1つのRSS対応NIC 複数の接続が複数のCPUコアを使用可能 物理NICのラインレート
複数の互換NIC SMBセッション層でのリンクアグリゲーションと経路フェイルオーバー NASとクライアントのストレージスループット
RDMA対応NIC 低CPU負荷のSMBダイレクトチャネル RDMAの設定とストレージ速度

よくある質問

SMBマルチチャネルはリンクアグリゲーションと同じですか?

いいえ。リンクアグリゲーションはSMBの下位で動作し、通常は各フローを1つのリンクにハッシュします。SMBマルチチャネルは1つのSMBセッションに複数の接続を作成し、それらを直接使用できます。

1台の2.5GbEクライアントが2つの1GbE NASポートを使えますか?

SMBクライアントとサーバーが互換性のあるチャネルを検出し、クライアントリンクが結合トラフィックを受信できる場合、対応するトポロジーでは必要になることがあります。実際のサポートはNASの実装、OS、およびNICの機能によって異なります。

SMBマルチチャネルは管理スイッチが必要ですか?

本質的にはできません。複数の通常のイーサネット経路はLACPなしでスイッチを通過できますが、インターフェース、アドレス、サブネット、およびループフリーのトポロジーは正しく設計する必要があります。

ファイルコピーはケーブルを1本抜いても続行できますか?

クライアントとサーバーがSMBセッションを維持している場合、残りのチャネルで継続できますが、検出やリクエストの回復により一時的に停止することがあります。

最終的な結論

SMBマルチチャネルは、1つのファイル共有セッションを複数の並列トランスポートチャネルに変換します。RSSは高速接続をCPUコアに分散でき、複数のNICは帯域幅と経路の冗長性を追加し、RDMAはCPU負荷を軽減します。この機能はネットワーク経路のみを改善し、ストレージ、クライアントI/O、インターフェースの互換性、および共有ハードウェアが転送速度のスケーリングを決定します。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.