分享

PVE 中虚拟化万兆网卡

 shaopy 2022-01-11

去年自己攒了一台 E5 2680v4 * 2, 16G RECC * 8 的机器,一开始主要作为远程开发机 & Docker-Compose。 最近跑 k3s 集群并把 Docker-Compose 的服务迁到 k3s 上,于是重新规划系统资源,本文记录在搭建过程中关于在PVE中网络的配置。

在配置虚拟网卡前建议使用 iperf3 或其他工具测试 Linux Bridge 提供的网络性能是否满足需求。

安装Open_vSwitch

PVE 宿主安装 Open_vSwitch,具体可参考官方文档。apt update apt install openvswitch-switch

创建虚拟网卡

宿主机的 System - Network

点击 Create 创建 OVS Bridge,默认名称应该是 vmbr1,可以调整或直接保存

创建 OVS Bridge

点击 Create 创建 OVS IntPort

Name: internal(可调整)

OVS Bridge 选择 刚刚创建的 OVS Bridge 名称: vmbr1

创建 OVS IntPort

为虚拟机添加网卡

到指定虚拟机的 Hardware 中添加 Network Device

Bridge: vmbr1

Model: VirtIO (paravirtualized)

为虚拟机添加网卡

虚拟机配置多网卡

虚拟机系统以 debian 10 为例,shell 进入虚拟机系统内。# 查看网卡情况 $ ip link 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens18:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000     link/ether 4e:70:ec:64:03:41 brd ff:ff:ff:ff:ff:ff 3: ens19:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000     link/ether a2:76:5e:67:9b:cc brd ff:ff:ff:ff:ff:ff

其中 ens18 是默认的 Linux Bridge 网卡,也就是vmbr0。ens19 是刚刚绑定的 OVS Bridge。

编辑网卡配置: sudo vim /etc/network/interfaces,使两个网卡正常工作: vmbr0 用外部网络访问,vmbr1 用于虚拟机内部通信。# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug ens18 iface ens18 inet dhcp # This is an autoconfigured IPv6 interface iface ens18 inet6 auto # 设置 ens19 allow-hotplug ens19 iface ens19 inet static         # 绑定静态IP         address 10.0.0.2/24         gateway 10.0.0.1         netmask 255.255.255.0         up ip route del default dev ens19

其中,最后一个配置项: up ip route del default dev ens19, 意思是:当该网卡被启用时,删除该网卡的 default 路由。 可以通过 ip route show 查看路由情况。 若不删除 ens19 的 default 路由,重启网络/系统后,虚拟机将无法访问外部网络。因为存在两张网卡,系统将生成两个 default 路由,所有流量将被 ens19 接管,由于 ens19 是内部网卡,无法访问外部网络,导致虚拟机也无法访问外部网络。

测试虚拟速度

在任意两个虚拟机上安装iperf3:

一台执行: iperf3 -s,运行 server 模式

另一台执行: iperf3 -c 10.0.0.9 -t 10 -i 1,其中 10.0.0.9 是前一台的 ens19 上的IPConnecting to host 10.0.0.9, port 5201 [  5] local 10.0.0.9 port 50026 connected to 10.0.0.9 port 5201 [ ID] Interval           Transfer     Bitrate         Retr  Cwnd [  5]   0.00-1.00   sec  2.47 GBytes  21.2 Gbits/sec    0   1.48 MBytes [  5]   1.00-2.00   sec  2.27 GBytes  19.5 Gbits/sec    0   1.48 MBytes [  5]   2.00-3.00   sec  2.10 GBytes  18.0 Gbits/sec    0   1.65 MBytes [  5]   3.00-4.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.65 MBytes [  5]   4.00-5.00   sec  2.00 GBytes  17.2 Gbits/sec    0   1.80 MBytes [  5]   5.00-6.00   sec  2.04 GBytes  17.5 Gbits/sec    0   1.80 MBytes [  5]   6.00-7.00   sec  2.00 GBytes  17.1 Gbits/sec    0   1.80 MBytes [  5]   7.00-8.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.80 MBytes [  5]   8.00-9.00   sec  1.88 GBytes  16.1 Gbits/sec    0   1.80 MBytes [  5]   9.00-10.00  sec  1.93 GBytes  16.6 Gbits/sec    0   1.80 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval           Transfer     Bitrate         Retr [  5]   0.00-10.00  sec  20.7 GBytes  17.8 Gbits/sec    0             sender [  5]   0.00-10.00  sec  20.7 GBytes  17.8 Gbits/sec                  receiver iperf Done.

文章作者:eightpigs

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多