群晖DS718+不支持2.5Gbps网卡一直是我感到遗憾的地方。
家庭的网络拓扑如图,PC机在书房,路由器和NAS在客厅。主要限制为书房只有一根8芯五类线,且路由器不支持2.5Gbps有线网口接入。为了同时满足PC机与NAS的2.5Gbps高速互联,以及PC机正常上网需求,编写此文用以记录。
材料准备
1、2.5Gbps usb网卡2个,采用RTL8156芯片。
2、群晖系统版本DSM6.2,PC使用Windows10。
3、PC机一开始通过网线直接链接到路由器,NAS通过2根网线连接到路由器。
步骤一,查找群晖套件系统查询
https://www.synology.com/en-global/knowledgebase/DSM/tutorial/Compatibility_Peripherals/What_kind_of_CPU_does_my_NAS_have
我使用的是DS718+,网页中记录的套件系统为Apollolake
步骤二,下载群晖驱动
(作者:bb-qq)
https://github.com/bb-qq/r8152/releases
我的网卡使用的是8156芯片,但实测8152的也可用。
我下载的是r8152-apollolake-2.14.0-2.spk,
https://github.com/bb-qq/r8152/releases/download/2.14.0-2/r8152-apollolake-2.14.0-2.spk
步骤三,安装群晖驱动
将USB网卡连接到DS718+的USB3.0接口,注意,先不要连接网线。然后进入DS718+的DSM系统,允许第三方SPK,将下载的SPK安装到系统中,重启群晖操作系统。重启后,应该可以看到USB网卡了。
同时,可以在Windows10上安装USB网卡,没什么难度就不赘述了。
步骤四,ovs-vsctl的配置
DS718+已经安装了openswitch,并且设置了原有的双千兆网卡绑定。之前只使用了单根网线连接DS718+和路由器的小伙伴可以跳过。
之后打开DS718+的ssh功能。sudo -i可以切换到root账号
使用ovs-vsctl show可以显示已经安装网桥状态。默认状态下,ovs会为每一个网卡配置独立的虚拟交换机,我们要修改的,是将USB2.5Gbps网卡上的网桥删除,然后将该网卡连接到bond网卡的虚拟交换机上。
通过ovs-vsctl show确认网桥名称,例如名称为ovs-eth0,那么删除命令应当为ovs-vsctl del-br ovs-eth0
然后,将USB网卡的eth2,添加到bond网卡的网桥上,命令为
ovs-vsctl add-port ovs_bond0 eth2
最后通过ovs-vsctl show确认安装情况
Bridge "ovs_bond0"
Port "ovs_bond0"
Interface "ovs_bond0"
type: internal
Port "bond0"
Interface "eth0"
Interface "eth1"
Port "eth2"
Interface "eth2"
可以看到bond0, eth2都安装到了ovs_bond0这个虚拟交换机上了。
设置完毕后,将USB网卡连接上与PC相同的网线,PC就可以和NAS以2.5Gbps互联,并愉快的上网啦。
步骤五,添加DS718+开机自动执行命令
群晖重启系统后,USB网卡添加到虚拟交换机的设置会失效。为了解决这个问题,需要增加计划任务,以root权限在每次开机时将USB网卡添加到虚拟交换机上。
ovs-vsctl add-port ovs_bond0 eth2
其中ovs_bond0是虚拟机交换机的名称,eth2是USB网卡的名称。
计划任务每次开机时触发执行,就可以自动完成该设置。
后续
按照上述步骤执行后,仍然有一个问题目前我没有解决。在PC机处于开机的状态下,重启群晖DS718+,会导致虚拟交换机异常,PC无法联网。
解决方法为关闭PC机,使用手机登陆DS718+重启,NAS重启完毕后再打开PC机。
好在NAS重启的次数很少,大多数情况下不会产生影响。需要重启NAS时,一定要关闭PC机或拔掉PC机网线。
有解决方法的小伙伴请给我留言,多谢。
至此,PC机和DS718+之间使用2.5Gbps互联的教程就完成了。在PC机网线为普通5类线,长度10米的情况下,实测Iperf能够达到理论速率。这样机械硬盘可以直接放到NAS上,PC访问也基本不存在瓶颈了(单块机械硬盘的持续速率一般在250MByes/s以内)。配合后文的ESATA SSD cache加速,还可以进一步提高NAS上机械硬盘的访问速度,留待后续补充说明。
原文链接:https://www.bilibili.com/read/cv9466747/