年前买了一个 J4125 小主机,刷了 openWRT 系统当软路由用,机身有 4 个 2.5G 的网口,不用上真是暴殄天物!可是我并没有 2.5G 的设备,春节期间蠢蠢欲动,打算把内网升级到 2.5Gbps,正月里拜完年,内网 2.5G 提速计划马上安排!
一、内网2.5G提速方案
根据木桶理论,内网速度由网速最慢的设备决定,我现在的网络拓扑结构很简单,主机和 NAS 连到了无线路由器上。
-
主机、NAS 和路由器都是千兆网口(1Gbps),传输速率上限 125MB/s。
-
网线是超五类(cat5e),别看是千兆网线,短距离跑万兆都没问题。
-
台式机里有 SATA 固态硬盘+机械硬盘,SSD 速度上限 500MB/s,机械硬盘一般来说读写速度 180MB/S 左右。
-
NAS 里面是两块 2T 机械硬盘组的 raid1,写速度不变,读速度 2 倍。
当前电脑与 NAS 的读写速度之前有过记录,你的硬盘有多快? 一文了解速度极限,教你提升「硬盘 / NAS」读写性能,测试结果为 NAS 与电脑之间互传都达到了 100MB/s,也就是千兆网络的上限。
换成 2.5G 的软路由之后,主机与 NAS 读取数据流程中最短的那块木板就是台式机和 NAS 的千兆网口了。
所以打算购买两个 2.5G 的网卡分别给台式机与 NAS 装上,理论上就能跑满 HDD 的读写了,读写速度将是千兆网络的两倍左右。
如果你也想突破 NAS 与电脑之间的千兆带宽传输瓶颈,但是没有 2.5G 的软路由或者交换机设备的话,B 站 UP 主山猪折腾记还提到了一种 NAS 与电脑用直连的方案,电脑的 2.5G 网卡连接到 NAS 的 USB 2.5G 网卡,NAS 的原生千兆网卡连接到路由器。NAS 开启交换机功能,这样电脑就能通过 NAS 连接到网络,据说基本不会影响 NAS 性能和网速。
所以现在需要买两个 2.5G 的网卡分别给 NAS 和台式机电脑装上。
二、2.5G 网卡选择
2.5G 网卡有 PCIE(PCIE3.0 1x,2Gbps)的和 USB3.0(5Gbps)两种,USB 网卡芯片一般用的都是螃蟹家的 RTL8156B,据说比上一代 RTL8156 修复了 bug,改善了发热,两者的驱动是通用的。
我的 NAS 是入门款 DS218j,不支持 PCIE 扩展,主机也打算升级,到时候直接换支持 2.5G 网卡的主板,所以就买了两个 USB 转 2.5G 千兆网卡。ULT-UNITE 品牌之前没了解过,京东自营用上津贴 93 一个。
包装简陋,铝合金外壳的质感还算可以。
三、驱动安装
安装驱动不需要插网卡,建议提前安装驱动,搞定了驱动再买购买 2.5G 网卡也不迟。
电脑端 Win10 系统免驱,主要是 NAS 上装驱动麻烦些。
1.查看 DSM 版本
安装驱动之前首先要确定下自己的 DSM 系统版本,目前驱动支持 DSM6.2 和 DSM7.0,DSM6.1 及更早的系统不支持(主要是黑群晖),可以升级或降级系统,不会破坏数据。
我的 DS218j 系统版本为 6.2.4。
2.查看套件架构
然后去群晖官网查看 NAS 的 CPU 架构,DS218j 的套件架构为 Armada38x。
如果是黑裙的话,不用管是什么 CPU,只需根据引导的机型来确定驱动。
下面我们用群晖DS220+作为试验机,来教大家如何在群晖NAS上安装RTL8156B 2.5GbE万兆网卡驱动。
首先我们要去群晖官网找到DS220+的CPU型号,在DS220+硬件规格这一页,我们能够看到这款机器的处理器型号是Intel Celeron J4025。
紧接着我们去英特尔ARK知识库查询一下这款产品属于第几代架构,英特尔ARK知识库网址
在英特尔ARK知识库页面的搜索规格框中输入J4025后,系统就会自动搜索相关产品,我们选择第一个J4025
然后进入J4025处理器的详细参数页面,在详细参数页面找到代号名称一栏,从这一栏信息中我们可以得知J4025处理器采用的是Gemini Lake架构。
3.下载驱动
然后去 GitHub 上找大神 bb-qq 提供的驱动文件,作者说该驱动适用于 realtek RTL8152/RTL8153/RTL8156 ,实测 RTL8156B 也能用。
DSM7.0 版本的 NAS 下载后缀 DSM-7.0 的驱动,我的是 DSM6.2 版本,就得往下翻,搜索 armada38x,找没有后缀的条目。
将“aqc111-armada38x-1.3.3.0-2.spk”文件下载到本地。
接下来我们要去Github上下载RTL8156B网卡驱动,找到Gemini Lake架构的下载地址
4.安装 NAS 驱动
DSM6.2 版本直接点击套件中心,选择手动安装。
然后在已安装的套件里就能看到网卡驱动了。
插上 USB 网卡,重启系统,然后应该就能在网络界面里看到新增的局域网了。
然鹅……并没有,折腾了半天依旧无法识别这个 2.5G USB 网卡 。
好在 DS218j 是支持 DSM7.0 的,于是又把 NAS 升级到了最新的 DSM7.0,重新下载 DSM7.0 版本的驱动,手动安装。
会提示无法安装,因为 DSM7 系统需要先从 SSH 终端登录并运行以下命令。
sudo install -m 4755 -o root -D /var/packages/r8152/target/r8152/spk_su /opt/sbin/spk_su
再次安装。
将网线插到 USB 网卡上,重启 NAS。
然后找不到后台登录地址了,于是下载了群晖助手,手动指定了 IP 地址为 192.168.100.3。
登录 NAS,查看网络界面,新增了一个局域网连接,显示是 2500Mb/s,全双工了,YES
到这NAS上的驱动就装好了,实测在群晖 DS218j 上面这块2.5G USB网卡不支持热插拔,也就是如果将网线从原来的千兆网口直接插到USB网卡上,是不会直接识别的,需要重启。
5.安装电脑驱动
这款 2.5G 网卡的产品介绍界面里说是免驱,插上电脑后没法直接识别,还是需要去Realtek 官网下载驱动,安装完成后需要重新插拔下,然后就能识别出这个 2.5GbE 网卡了。
四、测试工具 iperf 安装
下面用 iPerf 测试下网络传输性能。
iPerf 是一个网络性能测试工具。iPerf 可以测试最大 TCP 和 UDP 带宽性能,可以报告带宽、延迟抖动和数据包丢失。
为了测试软路由/NAS 和电脑之间的传输性能,需要在软路由/NAS/电脑端都安装 iperf,软路由/NAS 作为 iperf 服务器端,电脑作为 iperf 客户端。
1. NAS 安装 iperf3
由于 DS218j 不支持 docker,无法直接安装 iperf,有两种方法,一是在套件中心安装 SynoCli Monitor Tools,介绍里写着提供 iperf3 命令行,下载量竟然为 0。
第二种方法是下载 Jadahl 的群晖版 iperf3 套件(只支持 DSM6.2),手动安装。
安装套件后,需要在本地电脑开启 SSH 登录后输入 iperf3 -s 开启服务端监听功能。
默认端口是 5201,如果跟其他服务冲突的话可以指定端口 iperf3 -s -p 5555
2. 软路由安装 iperf3
用 putty 连接 openWRT,输入下面指令安装
opkg update
opkg install iperf3
安装完成后可以输入 iperf3 -v 查看版本。
3. 电脑安装 iperf3
Win10 电脑端无需安装,只要在官网下载 iperf3 的 Windows 安装包并解压。
切换到该目录,运行 iperf3 -c ip -p 端口号 -i 间隔几秒 -t 测试次数,这里的-c 表示作为客户端, IP 地址填软路由网关或者 NAS 所在地址,-i -t 可以省略。
五、iperf3 内网测速
1. 测速结果
电脑/软路由/NAS三者任意一个作为服务端,输入 iperf3 -s 开启服务端监听功能,其他一个作为客户端,运行iperf3 -c ip 就能测试两者之间的带宽性能。
实测电脑与软路由之间的带宽为 2.3Gbps,平均传输速度 268MB/s。表现完美,电脑的 2.5G USB网卡与软路由的 2.5G LAN 口工作正常。
但是 NAS 和软路由之间平均带宽只有 1.77Gbps,NAS 和电脑之间平均为 1.65Gbps,波动极大,最大带宽能有 2Gbps,最低才几百 Mbps,也就是说 2.5G 网卡工作了,但是没完全工作。
实测拷贝一部 10G 的电影,NAS 的读取速度为 90MB/s,写入速度只有 60MB/s。而且速率波动极大,远不如之前的千兆网络 100MB/s 均速稳定。
站内有两位值友给群晖 920+ 装上 2.5G 网卡后实测传输速度为 280MB/s,跑满了 2.5Gbps 带宽,用 iperf3 测试也是 2.48Gbps 的满分成绩。
2. 问题排查
电脑和软路由之间的 2.5G 网络速率正常,电脑和 NAS 之间没跑满 2.5G 带宽的原因出在 NAS 和软路由之间,但是在各自的后台查看又都是 2500Mb/s 全双工,iperf3 测速期间软路由的 CPU 占用率最大 20%。
尝试了下网上一些教程里说的开启巨型帧,没啥用,电脑设置了巨型帧后反而会上不了网。
各个客户端后台检测 2.5Gbps 的网卡驱动没问题,都是正常工作的。
目前来说内网 2.5Gbps 没跑满可能有以下原因:
1. 2.5G USB 网卡的原因,这个应该被排除,因为驱动都安装好了,台式机电脑上的这块 USB 网卡是2.5Gbps 速率工作的。
2. 软路由的原因,有人说软路由并不适合做交换机,因为没有专门处理数据交换的芯片,内网数据多会增加 CPU 的负担。iperf3 只能单点对单点测试,没法测量 4 个网口全部满载的情况,不过在我各种折腾下,CPU 的占用率始终没有超过 30%,软路由当成交换机用应该还是绰绰有余的。
3. NAS 的原因,我的 NAS 是群晖 DS218j,4 年前最便宜的入门产品,后面两个 USB 口都是 USB3.0 的,USB 网卡的驱动打好了理论上应该没啥问题。还有一种可能是机械硬盘的使用空间只剩 12%了,空间不足会影响传输速度。
总结
买了两个 USB 2.5G 网卡分别给电脑和 NAS 装上,配合 2.5G 软路由使用,打算将内网提升到 2.5Gbps,传输速度翻倍。
结果电脑和软路由之间正常,软路由和 NAS 之间只有 1.7Gbps 左右,没跑满 2.5G 带宽,而且用 iperf3 测试网络性能时波动极大,试了很多方法仍没有解决,有懂行的值友可以评论区指导一下,谢谢~
目前软路由的 4 个 2.5G 网口已经插满,一个 WAN 接入户网线,三个 LAN 分别接电脑/NAS/无线 AP,于是就下单了一台 TP-LINK 的 8 口 2.5G 以太网交换机 TL-SH1008,下一篇分享下使用体验,看看能不能跑满 2.5Gbps 内网,欢迎关注~