PVE 直通网卡

2022-03-20 [硬件] #PVE #Network #Passthrough #Homelab #TrueNAS #Virtualization

今天梳理并重新配置了一遍机器及虚拟机,对 Supermicro X10DRL-i 主板的2个可用网口进行了调整:从原来直通给 Dev(开发环境虚拟机),更换到直通给 TrueNAS,本文简单记录了定位网卡和直通的过程。

定位网卡

确定使用中的网卡

可以使用 ip 命令先定位当前系统正在使用的网卡,也可以直接跳过本步骤,直接使用第二步中的 lshw 查看

使用 ip addr 命令先查看当前宿主系统正在使用的网卡,可以通过 ip: 192.168.1.3/24 直观定位网卡: vmbr0。vmbr0 是一个桥接网卡,以命名等规则来看可以直接确定出 eno1 是物理网卡,当然也可以通过 ip link show master vmbr0 查看对应的物理网卡。

# 查看使用的网卡信息
# 1. 直接过滤: ip addr show | grep "inet 192.168" -B 2
# 2. 使用 jq 结构化过滤:
root@pve:~# ip -j addr show | jq -r 'map(.addr_info) | map(map(select(.family == "inet" and .label != "lo"))) | flatten | .[]'
{
  "family": "inet",
  "local": "192.168.1.3",
  "prefixlen": 24,
  "scope": "global",
  "label": "vmbr0",
  "valid_life_time": 4294967295,
  "preferred_life_time": 4294967295
}
...


# 确定 vmbr0 对应的物理网卡
# 1. 使用 awk 匹配: ip link show master vmbr0 | awk -F ' ' '{print $2}' | head -n 1
# 2. 使用 jq 结构化过滤: 
root@pve:~# ip -j link show master vmbr0 | jq -r 'map(.)[0].ifname'
eno1

确定网卡所属设备ID

lshw 是一个方便查看硬件配置的工具,可以通过该工具快速定位网卡使用的具体PCI ID,PVE 7.1 版本未默认携带,需自行安装:

root@pve:~# apt install lshw -y

使用 lshw 查看网卡相关的硬件信息:

root@pve:~# lshw -class network
  *-network
       description: Ethernet interface
       product: I210 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:09:00.0
       logical name: eno1
       ...
  *-network
       description: Ethernet controller
       product: I210 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:0a:00.0
       ... 
  *-network:0
       description: Ethernet interface
       physical id: 3
       logical name: vmbr0
       ...
....

存在两张网卡:pci@0000:09:00.0pci@0000:0a:00.0,通过查看 logical namebus info 可以确定宿主正在使用的 eno1 对应的网卡 PCI ID 为: 0000:09:00.0

直通到虚拟机

若之前配置支持热插拔网卡则可以不关闭虚拟机直接给添加网卡,可以通过: Options - Hotplug - Network 查看是否开启了网卡热插拔。若未开启,可以先关闭虚拟机。

在PVE WEB UI 中直通 pci@0000:0a:00.0 给虚拟机:

  1. 指定虚拟机
  2. Hardware
  3. Add
  4. PCI Device
  5. 找到 pci@0000:0a:00.0,并添加。

添加完成后,重启进入虚拟机也可以通过 lshw -class network 查看每张网卡的使用情况。

文章作者:eightpigs
创作时间:2022-03-20
更新时间:2022-03-20
许可协议:CC by-nc-nd 4.0