更新时间:2021-12-25 GMT+08:00
bond功能
- 创建VF。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
echo 4 > /sys/class/net/enp1s0f0/device/sriov_numvfs ip link set enp1s0f0 vf 0 mac e4:11:22:33:61:11 ip link set enp1s0f0 vf 1 mac e4:11:22:33:61:22 ip link set enp1s0f0 vf 2 mac e4:11:22:33:61:33 ip link set enp1s0f0 vf 3 mac e4:11:22:33:61:44 echo 0000:01:00.2 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:00.3 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:00.4 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:00.5 > /sys/bus/pci/drivers/mlx5_core/unbind devlink dev eswitch set pci/0000:01:00.0 mode switchdev echo 4 > /sys/class/net/enp1s0f1/device/sriov_numvfs ip link set enp1s0f1 vf 0 mac e4:11:22:33:62:11 ip link set enp1s0f1 vf 1 mac e4:11:22:33:62:22 ip link set enp1s0f1 vf 2 mac e4:11:22:33:62:33 ip link set enp1s0f1 vf 3 mac e4:11:22:33:62:44 echo 0000:01:01.2 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:01.3 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:01.4 > /sys/bus/pci/drivers/mlx5_core/unbind echo 0000:01:01.5 > /sys/bus/pci/drivers/mlx5_core/unbind devlink dev eswitch set pci/0000:01:00.1 mode switchdev
- 在linux-bond场景下,设置pci mode为switchdev之后,请严格按照操作步骤执行,不要立即将VF绑定回来,否则会导致报错。
- 允许但不推荐在开机之后立即组bond,可以设置相关ifcfg-xxxxx中的onboot=no。
- MAC地址不能冲突,包括本机器、对端机器以及交换机上的MAC地址都需保持唯一性。
- 组Linux bond。
- 修改物理网卡enp1s0f0 enp1s0f1的配置文件。
1 2
vim /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 vim /etc/sysconfig/network-scripts/ifcfg-enp1s0f1
增加如下两行:
1 2
MASTER=bond0 SLAVE=yes
- 增加bond口的配置文件。
1
vim /etc/sysconfig/network-scripts/ifcfg-bond0
添加以下内容:
1 2 3 4 5 6 7 8
DEVICE=bond0 NAME='bond0' TYPE=Ethernet NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=none BONDING_OPTS='mode=4 miimon=100 xmit_hash_policy=layer3+4' IPV6INIT=no
- BONDING_OPTS配置中:
- mode为模式,4是LACP模式;
- miimon=100代表100ms监控一次;
- xmit_hash_policy=layer3+4是LACP均衡的策略,使用3层4层均衡,及IP和端口。
- 主备模式参数为mode=1 miimon=100。
- BONDING_OPTS配置中:
- 加载bond内核模块。
1
modprobe bonding mode=4 miimon=100
主备模式mode参数为1,lacp模式mode参数为4,请根据实际业务需求配置。
- 启动bond。
1
ifup bond0
注意此处不要重启Network。
- 查看bond配置。
cat /proc/net/bonding/bond0
- 修改物理网卡enp1s0f0 enp1s0f1的配置文件。
- 绑定VF。
1 2 3 4 5 6 7 8
echo 0000:01:00.2 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:00.3 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:00.4 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:00.5 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:01.2 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:01.3 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:01.4 > /sys/bus/pci/drivers/mlx5_core/bind echo 0000:01:01.5 > /sys/bus/pci/drivers/mlx5_core/bind
- 启动OVS配置组网。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
systemctl start openvswitch ovs-vsctl add-br br-ovs ovs-vsctl add-port br-ovs bond0 ovs-vsctl add-port br-ovs enp1s0f0_0 ovs-vsctl add-port br-ovs enp1s0f0_1 ovs-vsctl add-port br-ovs enp1s0f0_2 ovs-vsctl add-port br-ovs enp1s0f0_3 ovs-vsctl add-port br-ovs enp1s0f1_3 ovs-vsctl add-port br-ovs enp1s0f1_2 ovs-vsctl add-port br-ovs enp1s0f1_1 ovs-vsctl add-port br-ovs enp1s0f1_0 ifconfig bond0 up ip link set dev enp1s0f0_0 up ip link set dev enp1s0f0_1 up ip link set dev enp1s0f0_2 up ip link set dev enp1s0f0_3 up ip link set dev enp1s0f1_0 up ip link set dev enp1s0f1_1 up ip link set dev enp1s0f1_2 up ip link set dev enp1s0f1_3 up
- 启动虚拟机并进入虚拟机。
1 2
virsh start vm1 virsh console vm1
- 虚拟机打流。
- Host2 vm1执行:
1
iperf3 -s
- Host1 vm1执行:
1
iperf3 -c <Host2vm1_ip> -t 0
- Host2 vm1执行:
- 按Ctrl+]切出虚拟机,在其中一台物理机查看卸载流表。
1
watch -n 1 -d ovs-appctl dpctl/dump-flows type=offloaded
能看到卸载流表,注意双向流表卸载,LACP注意验证8台虚拟机总带宽接近双网口的带宽之和,主备模式注意验证一个网口不通的情况。
- 删除bond。
- 先关闭虚拟机
1
virsh shutdown vm1
- 再删除OVS网桥。
1
ovs-vsctl del-br br-ovs
- 解绑所有相关VF(解绑命令参考1),或直接清空VF。
1 2
echo 0 > /sys/class/net/enp1s0f0/device/sriov_numvfs echo 0 > /sys/class/net/enp1s0f1/device/sriov_numvfs
- 删除bond。
1 2
ip link delete bond0 rmmod bonding
- 先关闭虚拟机
父主题: 验证OVS流表网卡加速特性
