#10GBASE-Tを試してみる
##10GBASE-T対応NIC
10GBASE-T対応のNICが安くなってきました。LR-LINK(Shenzhen Lianrui Electronics)のLREC6860BTは、Amazonで¥9,140(2018年8月27日現在)と1万円を割ってきています。一方、10GBASE-T対応のネットワークスイッチも4ポートで4万円台(価格コム調べ)の製品が出てきています。
NETGEARで2万円のスイッチもありますが、2ポートなので、だったらMDI-Xでカテゴリ6Aのケーブルで直結するのと変わりないな、と思い、10GBASE-TでPCとファイルサーバを直結し、一番格安で10GBASE-Tを試してみました。
##10GBASE-T対応LANケーブル
LANケーブルは、10GBASE-Tに対応したカテゴリ6Aのものにしました。エレコムの1mのLD-GPAYC/BU1 がAmazonで¥589(2018年8月27日現在)で安かったので選択。
##Windows7のPCに10GBASE-T NICをセットアップ
LR-LINK LREC6860BT はPCI-Ex4なので、Windows7のPCの空いてるPCI-E x16のスロットに装着しました。
Windows7を起動して、デバイスマネージャーで見ると、不明なネットワークアダプタが表示されています。NICの製品パッケージにも小さいCD-ROMでドライバーファイルが付属していますが、ドライバは最新版にした方がいいので、LR-LINKのWebページからWindows用のドライバーをダウンロードしてきました。
- LR-LINK Driver Download
http://www.lr-link.com/support/driver.html
圧縮ファイルをローカル解凍して、デバイスマネージャーの不明なネットワークアダプタのプロパティを開いて、ドライバの更新で、先ほど解凍したディレクトリを指定するだけです。
上記のように、正常にネットワークアダプターが認識されて、表示は「TN9710P 10GBase-T/NBASE-T Ethernet Adapter」と変わりました。この状態で1000BASE-Tのギガネット・イーサネットスイッチの空きポートと接続したところ、1000BASE-Tでリンクアップできました。
##Linuxサーバに10GBASE-T NICをセットアップ
次にSAMBAでファイルサーバにしているLinux PCに、同じようにPCI-E x16のスロットにLR-LINK LREC6860BTを装着します。
一応サーバスペックは、
####サーバ・スペック
- CPU: AMD PhenomII X4 955 3.2GHz(4core/TDP95W)
- M/B: ASRock 880G Pro3(SocketAM3+/880G+SB850)
- RAM: DDR3 32GB(8GBx4) ● HDD: RAID-1(6TB 5400rpm HDDx2)
- OS: CentOS 6.10(64bit)
という7年も前にリリースされたものです。LR-LINK LREC6860BTを装着して起動させてもdmesgに何も出てこないので、ドライバーのインストールが必要です。先ほどのLR-LINK LREC6860BTのダウンロードページからLinux用ドライバの圧縮ファイルを持ってきて解凍するとReadmeに、make all; make install しろと書いてあります。
# make all
Makefile:99: *** Aborting the build: Linux kernel /lib/modules/2.6.32-754.2.1.el6.x86_64/build source not found. Stop.
あ、カーネルソースがいるんですね。では、気を取り直して
yum install kernel-devel
リンク貼り直したりしましたが、make通りました。
# make all
make -C /lib/modules/2.6.32-754.2.1.el6.x86_64/build M=/root/tn40xx-0.3.6.14 clean
make[1]: Entering directory `/usr/src/kernels/2.6.32-754.3.5.el6.x86_64'
make[1]: Leaving directory `/usr/src/kernels/2.6.32-754.3.5.el6.x86_64'
Building kernel 2.6.32-754.2.1.el6.x86_64 resume supported
make -C /lib/modules/2.6.32-754.2.1.el6.x86_64/build M=/root/tn40xx-0.3.6.14 modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-754.3.5.el6.x86_64'
CC [M] /root/tn40xx-0.3.6.14/tn40.o
CC [M] /root/tn40xx-0.3.6.14/CX4.o
CC [M] /root/tn40xx-0.3.6.14/CX4_Linux.o
CC [M] /root/tn40xx-0.3.6.14/MV88X3120_phy.o
CC [M] /root/tn40xx-0.3.6.14/MV88X3120_phy_Linux.o
CC [M] /root/tn40xx-0.3.6.14/MV88X3310_phy.o
CC [M] /root/tn40xx-0.3.6.14/MV88X3310_phy_Linux.o
CC [M] /root/tn40xx-0.3.6.14/QT2025_phy.o
CC [M] /root/tn40xx-0.3.6.14/QT2025_phy_Linux.o
CC [M] /root/tn40xx-0.3.6.14/TLK10232_phy.o
CC [M] /root/tn40xx-0.3.6.14/TLK10232_phy_Linux.o
CC [M] /root/tn40xx-0.3.6.14/AQR105_phy.o
CC [M] /root/tn40xx-0.3.6.14/AQR105_phy_Linux.o
LD [M] /root/tn40xx-0.3.6.14/tn40xx.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/tn40xx-0.3.6.14/tn40xx.mod.o
LD [M] /root/tn40xx-0.3.6.14/tn40xx.ko.unsigned
NO SIGN [M] /root/tn40xx-0.3.6.14/tn40xx.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-754.3.5.el6.x86_64'
続いて、make installを実行
# make install
install -d /lib/modules/2.6.32-754.2.1.el6.x86_64/kernel/drivers/net
install -m 644 tn40xx.ko /lib/modules/2.6.32-754.2.1.el6.x86_64/kernel/drivers/net
depmod 2.6.32-754.2.1.el6.x86_64
modprobeで読み込みます。
modprobe tn40xx
dmesgで認識されたことを確認。
tn40xx: Tehuti Network Driver, 0.3.6.14
tn40xx: Supported phys : MV88X3120 MV88X3310 MV88E2010 QT2025 TLK10232 AQR105
tn40xx 0000:02:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
tn40xx 0000:02:00.0: setting latency timer to 64
tn40xx: srom 0x0 HWver 16 build 0 lane# 4 max_pl 0x0 mrrs 0x2
tn40xx 0000:02:00.0: irq 32 for MSI/MSI-X
tn40xx: PHY detected on port 0 ID=2B09AB - MV88X3310 (A1) 10Gbps 10GBase-T
tn40xx: MV88X3310 firmware code is running
tn40xx: MV88X3310 FW version is 0.2.4.0
tn40xx: fw 0xe
tn40xx: eth3, Port A
tn40xx: 1 1fc9:4027:1fc9:3015
tn40xx: detected 1 cards, 1 loaded
udevでMACアドレスを確認
/etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x1fc9:0x4027 (tn40xx)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="**************", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
ifcfg-eth3を作成して、ifupしたところ無事立ち上がりました。先にセットアップしたWindows7のPCとCAT6Aケーブルを直結して、ping打って届きました。(パチパチ)
##ギガNICと10G NICでベンチマーク
Windows7のPCからファイルサーバをマウントして、Crystal BenchmarkでGigabit Ethernet経由と10G直結でベンチマークを測定してみました。
GbE経由 | 10G経由 |
---|---|
シーケンシャルライトが2倍以上になってるけど、シーケンシャルリードはほとんど変わらない!ランダム・アクセスは良くなってるようです。
せっかく10Gにしたのに、これじゃ納得できないですよね。今週末には、サーバのストレージをSSDにして、ジャンボフレームを導入して再測定してみようと思います。