25GbE はじめました

ネットワーク
この記事は約5分で読めます。

この記事はネットワーク何もわからない人が書いています(ダニング=クルーガー効果の真ん中ではなく、一番左の位置である)

長年、家庭用のLANは1000BASE-Tのギガビットイーサが主流であった。

しかし、1000BASE-Tは約20年ほど前から普及を始めた規格。当時はPCIバスなどが追い付かずオーバースペックだったのだろうと想像できるが、今となってはSSDどころかHDDより遅い。

ギガビットイーサを越えよう。そう決意した。

10Gbase-Tは、既存のCat6Aのケーブルが使い回せるくらいで、電気は食うわレイテンシは遅いわろくなことはない。

ならSFP+だろう。そう思った。Twitterで10G環境を入れたい。そう呟いた。

オタクにConnectXを勧められた。

しかし相場がわからない。公式ストアを見たあとeBayを見た。10GbEのCollectX-3を見ていたはずが、いつの間にか25GbEのConnectX-4 Lxになっていた。なんとなく半導体的に新しいプロセスであろうものが好きなのと(3系と4以降でドライバが違うので設計が違うのだろうと思った)、NVMeのSSDの速度は10Gbpsを越えるからだ。

こうして、Mellanox ConnectX-4 Lx MCX4121A-ACAT(以下ConnectX-4)を2個購入した。米Amazonで25GbE用のSFP28のDirect Attach Cable(DAC)も買った。

約2週間後、NIC2つとケーブルが届いた。装着したマシンのスペックは以下のとおりである。

メインマシン

  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X

録画鯖

  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X
  • CPU Ryzen9 3900X

メインマシン・録画鯖の両方ともConnectX-4をPCI-Express x16 Gen3のx4動作のスロットに挿入した。メインマシンの方はX570なのでGen4だが、 ConnectX-4がGen3なので、メインマシンと録画鯖の接続速度は変わらない。ConnectX-4自体はPCIe Gen3 x8なので、Gen3 x4動作(データリンク層転送帯域 約31.5Gbps)では帯域が不足しているが、1ポートしか使わないなら25GbEの速度のボトルネックにならないはずである。

Windowsを起動し、最新のドライバをインストールした。その後、以下の記事を参考にファームウエアも最新にした。

Mellanox connectX-3のファームアップデート手順

メインマシン・録画機の両方とも既存のインターネット接続用のネットワークは192.168.0.4/24と192.168.0.5/24となっている。今回はスイッチを通さず2マシンを直結して使用する計画だ。そのため、メインマシンのIPを192.168.1.4、録画機のIPを192.168.1.5に設定し、2マシンともサブネットは255.255.255.0にした。デフォルトゲートウェイとDNSサーバーは空欄だ。

Windows PowerShellでping 192.168.1.5と打ってみる。タイムアウトになる。悩んだ。

色々検索をしてroute addとかいろんなコマンドを試してみた。ダメだった。初日は匙を投げた。

翌日、再びこの問題に挑んだ。pingを打った。タイムアウトだ。

しかしある一つのことに気づいた。Windowsのネットワークアダプタの状態を見ると、pingを打つと送信の値が増える。受信側の状態を見ると、送信と同じバイト数受信していた。これはpingそのものは届いている可能性が高いということか?

Windows Defenderのファイアウォールを無効化してみた。するとpingが通った。1日悩まされた原因は、単にファイアウォールに弾かれていただけだった。

メインマシンと録画鯖はConnectX-4をケーブルで直結している。つまりインターネットには接続されていないし、ローカルネットワークでもない。Windows上での表示は不明なネットワークになっていた。不明なネットワークはWindowsネットワークのパブリックネットワーク扱いされていた。これをプライベートネットワークに変更した。するとpingが通った。

原因は不明なネットワーク判定された直結NICが、パブリックネットワークのファイアウォール規定に引っかかっていただけだった。問題は解決した。

無事にメインマシン・録画鯖の両方が繋がったので、実験用としてメインマシンのNVMe SSDと、録画鯖のNVMe SSDをSMBで共有して繋いだ。fsutil file createnew testfile 107374182400というコマンドで100GBの空ファイルを生成し、FastCopyというツールでコピーした。

見よ!これが25GbEの力だ!!

実測値24.3Gbps、100GBのファイルのコピーが約35秒で終わる。まさに革命だった。標準から弄った設定はConnectX-4のMTU値を1514から9614に変更したくらいである。14バイトはイーサネットのヘッダのため、実際のデータ部は標準の1500から9600バイトだ。

ジャンボフレームのおかげか、3900XのCPU負荷は6%で済んでいる。(これが2コア2スレッドのCeleronとかだとキツそうだが)

パワーとスピードで大抵の問題は片付く。そう感じた。

ちなみに、FastCopyではなくWindowsのコピー機能だと、SMB Directが使えないWindows 10 Proではジャンボフレーム有効環境でも14Gbps前後しか出ない

コメント

タイトルとURLをコピーしました