跳转到内容

网卡与交换机 ​

OMV 官方文档的说法是:NAS 的写入速度,受限于 NAS 自己的网卡速度、网络的速度,以及同时访问的用户数。所以买网卡和交换机之前,先判断瓶颈到底在哪。这篇不写价格,也不排型号。

先说结论 ​

  1. 千兆已经够让多数单盘跑满;2.5G 是性价比的台阶;10G 要整条链路(网卡、交换机、线缆、客户端网卡)一起升级才有意义。
  2. 选网卡看驱动,不看牌子;以内核自带驱动为准,再加实测。
  3. 管理口求稳。 用有线、驱动成熟的网卡,别拿 USB 网卡或无线当唯一的管理口,因为改坏网络的时候,你要靠它救场。

速度怎么换算 ​

网络速率除以 8,就是理论上的最大传输速度,实际吞吐会低一些:

网络速率理论上限说明
1 GbE约 125 MB/s实际通常更低
2.5 GbE约 312 MB/s
10 GbE约 1250 MB/s

多数现代的 3.5 英寸机械盘,顺序读写速度已经接近或超过千兆网络的实际吞吐,具体看所选型号的规格书。所以单盘配千兆,磁盘通常不是瓶颈;想让 2.5G 或 10G 派上用场,要靠 SSD 或多块盘并行。同时有很多客户端访问时,它们是共享 NAS 网口的带宽。

网卡 ​

驱动怎么看 ​

Linux 的网卡驱动分两类:内核自带(in-tree)的,随内核一起更新,最省心;厂商另发(out-of-tree,常见形式是 DKMS)的,要单独安装并针对当前内核编译,内核升级后可能出问题。

Debian 13 默认的内核是 6.12 系列,OMV 核心默认还启用了 Debian backports 内核,所以实际的内核版本以 uname -r 为准。以 Linux 6.12 内核配置里的说明为例:

  • Intel:igc(2.5G,I225 系列)、igb、e1000e、ixgbe(10G)等都在内核里。
  • Realtek:r8169 覆盖 RTL8169、RTL8168、RTL8101 和 RTL8125(2.5G)。

更新的芯片,要看你实际运行的内核支不支持。用下面的命令确认网卡和当前用的驱动:

sh
# 在 OMV 的 shell 里执行(只读)
lspci -nnk | grep -A3 -i ethernet

输出里 Kernel driver in use 一行就是当前生效的驱动。

选购建议 ​

  • 管理口优先选驱动历史悠久的型号。 不同型号、不同内核之间,表现差别很大。买之前搜「芯片型号 加 Debian 13」,装好后跑一段时间真实负载,观察 dmesg 里有没有反复出现的链路断开。
  • 双网口可以把管理和业务分开,或者做 Bond,见链路聚合(Bond)。
  • 10G:RJ45 铜口(10GBASE-T)和 SFP+ 各有取舍,铜口通用,但发热和功耗通常更高;SFP+ 要选交换机兼容的模块。
  • USB 网卡:官方说任何 Debian 能驱动的网卡都能用,包括 USB 的,但稳定性和发热要自己评估,适合做备用口,不要做唯一的管理口。
  • 无线:官方支持,但 NAS 不该靠 Wi-Fi,见代理与无线网络。
  • 网络唤醒:要用 WoL 唤醒 NAS,选主板和网卡时确认两边都支持。OMV 的 网络 → 接口(Network → Interfaces)里,编辑以太网接口时有 网络唤醒 WOL(Wake-on-LAN)复选框,默认不勾选。

交换机 ​

  • 端口速率和数量。 数一数要接的设备,NAS 的口速率不要低于你最常用的客户端。
  • 非管理型 vs 管理型。 家用多数情况下,非管理型就够了。要用 VLAN(802.1Q)或 Bond 的 802.3ad(LACP)模式,才需要管理型交换机,见VLAN和链路聚合(Bond)。注意 Bond 不会让单个连接变快。
  • 多个客户端共享 NAS 的口。 想让多人同时高速访问,NAS 的口速率要更高,或者用 Bond。
  • 噪音和散热。 有的高速交换机带风扇,放在生活空间要先确认。

线缆 ​

按 Fluke Networks 对 IEEE 802.3bz 的解读,2.5G 可以在 5e 类线上跑 100 米。10G 要 6A 类线才能跑满 100 米,6 类线最远约 55 米,还取决于布线质量(Wikipedia 的 10GBASE-T 词条)。家里的线通常很短,一般没问题。线质量差的时候,链路会协商到更低的速率,或者出现丢包。光纤和 DAC 铜缆是 10G 常见的另一条路线,要看交换机和网卡的接口。

巨型帧(MTU) ​

OMV 的接口页有 MTU 字段,默认是 1500。巨型帧只有在链路上所有设备都支持并且设置一致时才有意义,不一致会丢包或卡顿。家用不建议改。

用 iperf3 实测 ​

iperf3 测的是纯网络吞吐,不含磁盘。服务端和客户端都要有 iperf3:OMV 上可以用 omv-extras 的 iperf3 插件,也可以直接用 Debian 的软件包。

sh
# 在 OMV 的 shell 里执行,作为服务端
iperf3 -s
sh
# 在客户端电脑上执行,<OMV 的 IP> 换成 NAS 的地址
iperf3 -c <OMV 的 IP>

结果应该接近链路的线速。完整的测试方法见性能测试:fio 与 iperf3。

检查结果 ​

  1. 链路协商的速率和你买的一致:

    sh
    # 在 OMV 的 shell 里执行(只读)。<接口> 是 网络 → 接口 里的设备名,例如 enp3s0
    ethtool <接口> | grep -E 'Speed|Duplex|Link detected'
  2. iperf3 的结果接近线速。

  3. 跑一段时间后,错误和丢包计数没有增长:

    sh
    # 在 OMV 的 shell 里执行(只读)
    ip -s link show <接口>
  4. 如果用了 Bond 或 VLAN,按各自的文章核对。

常见问题 ​

2.5G 的口协商成了 1G。 换一根线,检查对端交换机端口的速率,再用 ethtool 看协商结果。

网卡偶尔掉线。 先看 dmesg 有没有反复的链路断开,再排除线缆和端口,最后才考虑换内核或驱动。管理口不能失联,救援方法见改坏网络后怎么救。

要不要上 10G? 先用 iperf3 和磁盘测试找到瓶颈。瓶颈在磁盘,上 10G 没有用。

交换机要选管理型的吗? 不需要 VLAN 和 LACP,就不需要。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。