今年のGWに組んだメインPCは、2.5GbE対応のマザーボードになりましたが、他の機器がまだ1GbEのままでした。
Intel 11世代 Core i5 11600KF でPCを組んでみた
Intel 11世代 Core i5 11600KF でPCをアップグレードしました。購入したパーツの紹介とベンチマークをしました。
折角なので、サーバの方も2.5GbEにしてNASの速度を上げたいと考えていたところ、新しい2.5GbEのNICが発売されるというニュースを見つけました。
このプラネックスのGPE-2500Tは、Realtek RTL8125B が積まれており、既存チップより消費電力を半分に抑えられているそうです。
また、ロープロファイル対応のPCI-Express x 1 接続なので、大抵のPCに接続できるはずです。
そして、価格が4,000円程度でしたので、これはコスパが良いと思い、予約して購入しました。
■環境
CPU:Intel Celeron N3150
メモリ:8GB
CentOS 8.4.2105
Samba 4.14.6
ネットワーク構成
現状は、1GbEのネットワークになっています。
このネットワークのHUBにPCとサーバを接続しても1GbEになるだけです。
そこで、サーバと直接PCを接続し、2.5GbEにすることにしました。
しかし、そうするとPCがインターネットに繋がらなくなってしまうので、サーバの1GbEと2.5GbEをブリッジして、1GbE経由でインターネットに繋がるようにしました。
図にすると以下のようになります。
GPE-2500Tの開封
届いた商品は、コンパクトな箱でした。
中身は、本体、ロープロファイルブラケット、説明書兼保証書です。
セットアップ
自宅サーバに取り付け
我が家の自宅サーバは、Mini-ITXで、PCI Express 2.0 x 4形状の x 1動作です。
ここに、ロープロファイル用ブランケットに付け替えたGPE-2500Tを取り付けます。
GPE-2500Tの認識確認
サーバを起動させ、GPE-2500Tが認識をしているか確認します。
# dmesg (略) [ 5.093358] r8169 0000:01:00.0 eth0: RTL8125B, 88:c9:b3:**:**:**:, XID 641, IRQ 118 [ 5.093361] r8169 0000:01:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko] (略) [ 5.250203] r8169 0000:01:00.0 enp1s0: renamed from eth0
# lspcli (略) 01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04) 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
インターフェース名は、enp1s0になりました。
自動で認識され、r8169のドライバが当たっています。
# ethtool -i enp1s0 driver: r8169 version: 4.18.0-305.10.2.el8_4.x86_64 firmware-version: rtl8125b-2_0.0.2 07/13/20 expansion-rom-version: bus-info: 0000:01:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
このドライバのままで測定をしていきます。
GPE-2500Tをブリッジに追加
元々、KVMの時にブリッジを作成していたので、そこに追加させるだけです。
# nmcli connection add type bridge-slave autoconnect yes con-name enp1s0 ifname enp1s0 master br0
新規にブリッジを作成して、NICを追加させる手順はこちら。
CentOS 8 KVM上にWindows10をインストールしてみた
CentOS 8 のKVMでWindows10をインストールしてみました。ドライバにはvirtioを使用しました。
2.5GBASE-Tの実力
1GbEの時と、2.5GbEにした後で、どのくらいの差があるかを検証しました。
iPerf速度測定
PCと自宅サーバ間をiPerf3で測定をしました。
以下の結果は、PCのコマンドプロンプトの結果を載せています。
1GbE
>iperf3.exe -c 192.168.0.250 Connecting to host 192.168.0.250, port 5201 [ 4] local 192.168.0.2 port 64349 connected to 192.168.0.250 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 109 MBytes 915 Mbits/sec [ 4] 1.00-2.00 sec 111 MBytes 930 Mbits/sec [ 4] 2.00-3.00 sec 113 MBytes 948 Mbits/sec [ 4] 3.00-4.00 sec 106 MBytes 888 Mbits/sec [ 4] 4.00-5.00 sec 109 MBytes 917 Mbits/sec [ 4] 5.00-6.00 sec 106 MBytes 892 Mbits/sec [ 4] 6.00-7.00 sec 110 MBytes 920 Mbits/sec [ 4] 7.00-8.00 sec 111 MBytes 931 Mbits/sec [ 4] 8.00-9.00 sec 110 MBytes 926 Mbits/sec [ 4] 9.00-10.00 sec 113 MBytes 949 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 1.07 GBytes 922 Mbits/sec sender [ 4] 0.00-10.00 sec 1.07 GBytes 922 Mbits/sec receiver
2.5GbE
>iperf3.exe -c 192.168.0.250 Connecting to host 192.168.0.250, port 5201 [ 4] local 192.168.0.2 port 60905 connected to 192.168.0.250 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 276 MBytes 2.32 Gbits/sec [ 4] 1.00-2.00 sec 283 MBytes 2.37 Gbits/sec [ 4] 2.00-3.00 sec 264 MBytes 2.22 Gbits/sec [ 4] 3.00-4.00 sec 261 MBytes 2.19 Gbits/sec [ 4] 4.00-5.00 sec 262 MBytes 2.20 Gbits/sec [ 4] 5.00-6.00 sec 275 MBytes 2.31 Gbits/sec [ 4] 6.00-7.00 sec 275 MBytes 2.30 Gbits/sec [ 4] 7.00-8.00 sec 273 MBytes 2.29 Gbits/sec [ 4] 8.00-9.00 sec 267 MBytes 2.24 Gbits/sec [ 4] 9.00-10.00 sec 272 MBytes 2.28 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-10.00 sec 2.64 GBytes 2.27 Gbits/sec sender [ 4] 0.00-10.00 sec 2.64 GBytes 2.27 Gbits/sec receiver
期待通りの速度が出ており、2.46倍の速度になりました。
NAS速度測定(Windowsエクスプローラー)
PCとサーバ(Samba)間で、1GBのファイルをアップロード・ダウンロードをしてみました。
1GbE
サーバ→PC
PC→サーバ
2.5GbE
サーバ→PC
PC→サーバ
2.5GbEにすることで、サーバのハードディスクの性能を引き出せるようになりました。
サーバ→PCの方が遅くなっているので、サーバのハードディスクの読み込みがボトルネックになっているようです。
NAS速度測定(CrystalDiskMark)
CrystalDiskMarkでも測定してみました。Z:はネットワークドライブです。
1GbE
2.5GbE
こちらでも、2.5GbEの効果が見られます。
ハードディスク単体でベンチマークした時より、なぜか結果が良くなっています。
サーバOSやSambaのキャッシュか何かが効いているのでしょうか?
ちなみに、使用しているハードディスクとベンチマーク結果はこちらです。
東芝 HDD MG06ACA800E 購入 [8TB 7200rpm]
東芝 HDD MG06ACA800Eを購入した理由を記載しました。
サーバのブリッジ遅延
サーバのブリッジを経由すると、遅延が発生するのではないかという懸念があったため、インターネットで遅延が発生しないか確認をしました。
Google速度測定とfast.comで実施しましたが、実施する度に結果がころころ変わりました。
遅延で見ると誤差レベルで、特に問題は無さそうです。
1GbE(ルータ直接続)
2.5GbE(自宅サーバブリッジ経由)
最後に
4,000円程度で、PC-サーバ間を2.5GbEに強化することができました。
今回の構成にすれば、まだ少し高い2.5GbEハブを購入せずとも、2.5GbEの世界を体験することができます。
他の方法として、PCに無線LANが付いていれば、サーバをブリッジにせずとも、無線LANでインターネット、有線LANでサーバ接続という構成もできます。
サーバやPCに空きスロットさえあれば、気軽に2.5GbEにできるので、検討してみてはいかがでしょうか。
スロットに空きが無い場合は、USB接続でも良いかもしれません。
ちなみに、Planexからは2.5GbEハブが出ています。
私は、最低2ポート 2.5GbE対応のWi-Fi6 無線LANルータが発売されるまで待ちたいと思います。
いつになるやら…。
追記
これを買ってみました。
10GbE 2ポート搭載 Wi-Fi 6 無線LANルータ WN-DAX3600XR を買ってみた
10GbE 2ポートとWi-Fi 6を備えた I-O DATA WN-DAX3600XRを購入しました。初期設定、有線・無線LANの速度測定や問題点・ハマりポイントを記載しました。
公式ドライバーの適用方法
公式ドライバを当てずとも認識し、2.5GbEで動作していたため、そのままテストをしましたが、公式ドライバの当て方も記載しておきます。
コンパイルに必要なソフトウェア
# dnf install kernel-devel elfutils*
ドライバーのダウンロード
PLANEXのサイトからLinux用ドライバをダウンロードします。
https://www.planex.co.jp/support/download/gpe-2500t/driver_inux.shtml
ちなみに、REALTEKのサイトと同一バージョンでした。
https://www.realtek.com/ja/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
ダウンロードしたZip内の『r8125-9.005.06.tar.bz2』をサーバに転送します。
ドライバーのインストール
サーバのシェルから以下の操作をします。
# tar vjxf r8125-9.005.06.tar.bz2 # cd r8125-9.005.06 # make
以下のような、エラーが出る場合は、ソースを編集します。
make[2]: ディレクトリ '/usr/src/kernels/4.18.0-305.10.2.el8_4.x86_64' に入ります CC [M] /root/r8125-9.005.06/src/r8125_n.o /root/r8125-9.005.06/src/r8125_n.c:62:10: 致命的エラー: linux/pci-aspm.h: そのようなファイルやディレクトリはありません #include <linux/pci-aspm.h> ^~~~~~~~~~~~~~~~~~ コンパイルを停止しました。 make[2]: ディレクトリ '/usr/src/kernels/4.18.0-305.10.2.el8_4.x86_64' に入ります CC [M] /root/r8125-9.005.06/src/r8125_n.o /root/r8125-9.005.06/src/r8125_n.c:11572:31: エラー: initialization of ‘void (*)(struct net_device *, unsigned int)’ from incompatible pointer type ‘void (*)(struct net_device *)’ [-Werror=incompatible-pointer-types] .ndo_tx_timeout = rtl8125_tx_timeout, ^~~~~~~~~~~~~~~~~~ /root/r8125-9.005.06/src/r8125_n.c:11572:31: 備考: (‘rtl8125_netdev_ops.\xe7\x84\xa1\xe5\x90\x8d>.ndo_tx_timeout’ 用の初期化付近) cc1: some warnings being treated as errors
# vi src/r8125_n.c 61行目 #if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) ↓ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,18,0) 313行目 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) ↓ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0) 13384行目 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) ↓ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0)
編集後、再度makeで問題なければ、autorun.shを実行します。
# make # ./autorun.sh Check old driver and unload it. rmmod r8169 Build the module and install At main.c:160: - SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:69 - SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:76 sign-file: certs/signing_key.pem: No such file or directory DEPMOD 4.18.0-305.10.2.el8_4.x86_64 load module r8125 Completed.
# ethtool -i enp1s0 driver: r8125 version: 9.005.06-NAPI firmware-version: expansion-rom-version: bus-info: 0000:01:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no