差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2019:2019-01-29 [2019-01-29 16:56]
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 |}}
  
-クライアントとサーバを40GBASE-SR4で直結し、サーバで40GbEと1GbEをブリッジする。こうすることで、40GbE対応スイッチがなくとも、40GbEによる高速化の恩恵を受けつつ既存の1000BASE-Tネットワークとの相互運用が実現できる。サーバが落ちてると、当然ながらクライアントのネットワークが使えなくなってしまうが、うちでは常時稼働させてるので殆ど問題ない。いざって時はクライアントを従来通り1000BASE-Tで繋げばいいだけだし、そこは割り切る。+<WRAP important>(2020-03-07 追記)
  
-40GbEといても、ネットワーカードは何の変哲もいPCI-Expressカードだ。ビデオカード等取り付け要領でマシンNICを挿し、ドライバインストールすれば普通のNICとして使る。+FreeBSDのL2ブリッジ''if_bridge''はジャイアントロックを使た実装が原因でボトルネックるようだ。実際、うちの環境ではブリッジなしでは30Gbps超えし、ブリッジを使うと12~13Gbpsで頭打ちとなる。 
 +</WRAP>
  
-FreeBSD(サーバ)では''/boot/loader.conf''に以下の1行を追加し再起動すると、mlxen0/mlxen1というネットワークデバイスが生えてくる。+クライアントとサーバを40GBASE-SR4で直結し、サーバで40GbEのI/Fと1GbEのI/Fをブリッジする。こうすることで、40GbE対応スイッチがなくとも、40GbEによる高速化の恩恵を受けつつ既存の1000BASE-Tネットワークとの相互運用が実現できる。当然ながら、サーバが落ちてるとクライアントのネットワークも使えなくなってしまうが、うちでは常時稼働させてるので殆ど問題ない。いざって時はクライアントを従来通り1000BASE-Tで繋げばいいだけだし、そこは割り切る。 
 + 
 +40GbEといっても恐るるなかれ、ネットワークカードは何の変哲もないPCI-Expressカードだ。ビデオカード等を取り付ける要領でマシンにNICを挿し、ドライバをインストールすればよい。 
 + 
 +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"
 ifconfig_bridge0="ether XX:YY:ZZ:00:00:01 addm igb0 addm mlxen0 up" ifconfig_bridge0="ether XX:YY:ZZ:00:00:01 addm igb0 addm mlxen0 up"
行 29: 行 34:
 </code> </code>
  
-うまくブリッジが出来上がればifconfigが↓こんな感じになる。bhyve用のブリッジも兼用してるので余計なtap刺さってるのは無視してくだしあ。+うまくブリッジが出来上がればifconfigが↓こんな感じになる。bhyve用のブリッジも兼用してるのでtap刺さってるのは無視してくだしあ。
 <code> <code>
 $ ifconfig bridge0 $ ifconfig bridge0
行 51: 行 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.1548748567.txt.gz
  • 最終更新: 2019-01-29 16:56
  • by Decomo