差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
blog:2019:2019-01-29 [2020-03-07 00:06]
Decomo
blog:2019:2019-01-29 [2022-04-14 09:17] (現在)
Decomo
行 11: 行 11:
 {{ :blog:2019:40gbe_1gbe_bridged_network.png |}} {{ :blog:2019:40gbe_1gbe_bridged_network.png |}}
  
-<note important>(2020-03-07 追記)+<WRAP important>(2020-03-07 追記)
  
-FreeBSDのL2ブリッジif_bridgeはジャイアントロックを使った実装が原因でボトルネックとなるようだ。実際、うちの環境ではブリッジなしでは30Gbpsを超えるのに対し、ブリッジを使うと12~13Gbpsで頭打ちとなる。</note>+FreeBSDのL2ブリッジ''if_bridge''はジャイアントロックを使った実装が原因でボトルネックとなるようだ。実際、うちの環境ではブリッジなしでは30Gbpsを超えるのに対し、ブリッジを使うと12~13Gbpsで頭打ちとなる。 
 +</WRAP>
  
-クライアントとサーバを40GBASE-SR4で直結し、サーバで40GbEと1GbEをブリッジする。こうすることで、40GbE対応スイッチがなくとも、40GbEによる高速化の恩恵を受けつつ既存の1000BASE-Tネットワークとの相互運用が実現できる。サーバが落ちてると、当然ながらクライアントのネットワーク使えなくなってしまうが、うちでは常時稼働させてるので殆ど問題ない。いざって時はクライアントを従来通り1000BASE-Tで繋げばいいだけだし、そこは割り切る。+クライアントとサーバを40GBASE-SR4で直結し、サーバで40GbEのI/Fと1GbEのI/Fをブリッジする。こうすることで、40GbE対応スイッチがなくとも、40GbEによる高速化の恩恵を受けつつ既存の1000BASE-Tネットワークとの相互運用が実現できる。当然ながら、サーバが落ちてるとクライアントのネットワーク使えなくなってしまうが、うちでは常時稼働させてるので殆ど問題ない。いざって時はクライアントを従来通り1000BASE-Tで繋げばいいだけだし、そこは割り切る。
  
-40GbEといっても、ネットワークカードは何の変哲もないPCI-Expressカードだ。ビデオカード等を取り付ける要領でマシンにNICを挿し、ドライバをインストールすれば普通のNICとして使える+40GbEといっても恐るるなかれ、ネットワークカードは何の変哲もないPCI-Expressカードだ。ビデオカード等を取り付ける要領でマシンにNICを挿し、ドライバをインストールすればよい
  
-FreeBSD(サーバ)では''/boot/loader.conf''に以下の1行を追加し再起動すると、mlxen0/mlxen1というネットワークデバイスが生えてくる。+FreeBSD(サーバ)では''/boot/loader.conf''に以下の1行を追加し再起動すると、mlxen0/mlxen1というネットワークデバイスが生えてくる。
 <code> <code>
 mlx4en_load="YES" mlx4en_load="YES"
 </code> </code>
  
-40GbEと1GbEのブリッジは''/etc/rc.conf''に以下の設定を追加する。このサーバではsshやSambaなどのサービスを提供しているので、igb0のIPアドレスをbridge0に付け替える。ブリッジにIPアドレスを振る場合は、必ずブリッジそのもの(ここではbridge0)に対して行う。ブリッジメンバ(ここではigb0)に振ると、一見動いているように見えてブロードキャストは到達するのにユニキャストは到達しない、といった非常に分かりにくい問題を誘発することになる。+40GbEと1GbEのブリッジは''/etc/rc.conf''に以下の設定を追加する。このサーバではsshやSambaなどのサービスを提供しているので、''igb0''のIPアドレスを''bridge0''に付け替える。ブリッジにIPアドレスを振る場合は、必ずブリッジそのもの(ここでは''bridge0'')に対して行う。ブリッジメンバ(ここではigb0)に振ると、一見動いているように見えてブロードキャストは到達するのにユニキャストは到達しない、といった非常に分かりにくい問題を誘発することになる。
 <code> <code>
 cloned_interfaces="bridge0" cloned_interfaces="bridge0"
行 33: 行 34:
 </code> </code>
  
-うまくブリッジが出来上がればifconfigが↓こんな感じになる。bhyve用のブリッジも兼用してるので余計なtap刺さってるのは無視してくだしあ。+うまくブリッジが出来上がればifconfigが↓こんな感じになる。bhyve用のブリッジも兼用してるのでtap刺さってるのは無視してくだしあ。
 <code> <code>
 $ ifconfig bridge0 $ ifconfig bridge0
行 55: 行 56:
 </code> </code>
  
-クライアントのネットワークが正く使えることを確認するインターネットに繋いだり、サーバにsshしたり…。設定に間違いがなければ、従来全く同じように使えるはず。+Windows(クライアント側)はふつーのEthernet設定の要領で、ConnectX-3のネットワークプロパティでIPアドレス等を設定てやればよい。サーバ側の設定が問題なければ、今までと同じように通信が行えるはず。
  
 最後にSambaでファイルコピーを行ったGIF動画を貼っておく。サーバのSSD(Intel DC S3500シリーズ)の速度がボトルネックとなり10Gb/秒にも満たないが、素敵な速さだ。 最後にSambaでファイルコピーを行ったGIF動画を貼っておく。サーバのSSD(Intel DC S3500シリーズ)の速度がボトルネックとなり10Gb/秒にも満たないが、素敵な速さだ。
 {{ :blog:2019:40gbe_file_copy.gif |}} {{ :blog:2019:40gbe_file_copy.gif |}}
  • blog/2019/2019-01-29.txt
  • 最終更新: 2022-04-14 09:17
  • by Decomo