问题与现象
- 在 PVE(Proxmox Virtual Environment)8.2版本中运行的 Windows 10 虚拟机,直接向局域网内的群晖 NAS 上传大文件(一个win8.1的镜像,大小约为3.5GB)时,远程桌面(RDP)会断开连接,群晖 NAS 提示“无法联机,请检查你的网络”。
- 上传小文件没有问题
解决办法
禁用的配置项
在win10的虚拟网卡配置中,禁用以下配置:
- Large Send Offload V2(IPv4)
- Large Send Offload V2(IPv6)
- IPv4 Checksum Offload
- TCP Checksum Offload(IPV4)
- TCP Checksum Offload(IPV6)
- UDP Checksum Offload(IPV4)
- UDP Checksum Offload(IPV6)
- UDP Segmentation Offload(IPV4)
- UDP Segmentation Offload(IPV6)
具体操作方法
- 依次查找控制面板-网络和internet-网络连接
- 网络适配器,选择以太网,网卡驱动为Red Hat VirtIO Ethernet Adapter
- 右击 — 选择属性 — 配置 — 高级
- 将上面的配置项目全部选择Disabled.
- 重启虚拟机
原理解释
网络卸载(Offloading)功能引发的问题
- 卸载功能的作用:
- 卸载功能(Offloading)旨在将网络数据处理的部分任务(如校验和计算、数据包分片等)从 CPU 转移到网络硬件(网卡)上,以提高系统性能。
- 在虚拟化环境中的挑战:
- 虚拟网卡的局限性: 在虚拟化环境中,虚拟网卡并非真正的物理硬件,其卸载能力取决于宿主机的支持和配置。
- 宿主机与虚拟机的兼容性: 如果宿主机的物理网卡或驱动程序不完全支持卸载功能,虚拟机启用卸载功能可能导致数据包处理异常。
- 数据包处理异常: 当虚拟机尝试利用卸载功能处理大型数据包时,可能出现数据包丢失、错误或网络中断。
大文件传输中的问题放大
- 小文件为何正常:
- 小文件传输涉及的数据量小,数据包数量少,即使存在卸载功能的问题,也不容易显现。
- 大文件的问题:
- 大文件传输需要持续、高速的数据流,涉及大量的数据包。
- 卸载功能在处理大量数据包时,可能因为上述兼容性问题导致网络连接不稳定,表现为传输中断、连接断开。
禁用卸载功能后的改善
- 禁用卸载功能的效果:
- 数据包处理回归软件层面: 禁用卸载功能后,网络数据的处理全部由 CPU 和操作系统完成,不再依赖虚拟网卡的硬件加速。
- 避免兼容性问题: 由于卸载功能引发的问题被消除,网络连接恢复稳定。
结论
- 如果需要上传大文件,请关闭offloading相关设置
- 关闭后,文件传输将全靠CPU,会导致CPU占用增加