去年自己攒了一台 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,可以调整或直接保存 点击 Create 创建 OVS IntPort Name: internal(可调整) OVS Bridge 选择 刚刚创建的 OVS Bridge 名称: vmbr1 为虚拟机添加网卡 到指定虚拟机的 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 |
|