问题现象
PVE宿主机网卡流量跑满一段时间后网络中断,系统日志如下

Mar 29 19:43:59 pve02 kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
  TDH                  <7f>
  TDT                  <b7>
  next_to_use          <b7>
  next_to_clean        <7e>
buffer_info[next_to_clean]:
  time_stamp           <100203452>
  next_to_watch        <7f>
  jiffies              <1002038c0>
  next_to_watch.status <0>
MAC Status             <40080083>
PHY Status             <796d>
PHY 1000BASE-T Status  <3800>
PHY Extended Status    <3000>
PCI Status             <10>

解决方法
PVE系统中网卡驱动存在问题,创建Systemd服务,禁用Intel网卡的硬件卸载功能,把下面服务配置文件中的eno1替换为实际的网卡名称

cat > /etc/systemd/system/disable-nic-offload.service <<EOF
[Unit]
Description=Disable NIC offloading for Intel
After=network.target

[Service]
Type=oneshot
# Disable all offloading features for Intel
ExecStart=/sbin/ethtool -K eno1 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable disable-nic-offload
systemctl start disable-nic-offload

来源:
https://forum.proxmox.com/threads/solved-pve-kernel-e1000e-0000-00-1f-6-eno1-detected-hardware-unit-hang.172564

https://community-scripts.org/scripts/nic-offloading-fix?id=nic-offloading-fix&category=Proxmox%20%26%20Virtualization

https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/nic-offloading-fix.sh

标签: none