[Bug 1050934] [NEW] VM stops receiving packets on heavy load from virtio network interface briged to a bonded interface on kvm hypervisor
ITec
1050934 at bugs.launchpad.net
Fri Sep 14 13:59:30 UTC 2012
Public bug reported:
Versions:
Ubuntu: 12.04.1 LTS
linux-server 3.2.0.30.32
bridge-utils 1.5-2ubuntu6
ifenslave-2.6 1.1.0-19ubuntu5
qemu-kvm 1.0+noroms-0ubuntu14.1
libvirt0 0.9.8-2ubuntu17.3
iperf 2.0.5-2.1
Description:
I have got a typical setup for a kvm virtualizer with two network interfaces bonded together and bridged for vm-use.
I.e. two ethernet interfaces eth2+eth4 bonded together with IEEE 802.3ad Dynamic link aggregation to bond2.
bond2 is bridged to a bridge interface named brb2.
Then I have got kvm virtual machines attached with their interfaces to brb2 as well.
When I test network performance (and generate heavy load) after a few
seconds, the bridge stops forwarding packets to the virtual machine
interface.
Overview:
workstation (172.16.2.231)
|
manageable switch with IEEE 802.3ad cap.
| |
eth2 eth4
| |
bond2
|
brb2 Hypervisor (172.16.2.225)
|
vnet0
|
eth0 on virtual machine (172.16.2.222)
/etc/network/interfaces on Hypervisor:
# Slave für bond2
allow-eths eth2
iface eth2 inet manual
bond-master bond2
bond-primary eth2 eth4
pre-up ip link set eth2 up
post-up ifconfig eth2 -multicast
# Slave für bond2
allow-eths eth4
iface eth4 inet manual
bond-master bond2
bond-primary eth2 eth4
pre-up ip link set eth4 up
post-up ifconfig eth4 -multicast
# Master für eth2+eth4, Slave für brb2
allow-bonds bond2
iface bond2 inet manual
bond-slaves none
bond_mode 4
bond_miimon 100
bond_updelay 200
bond_downdelay 200
post-up ip link set bond2 address $(ethtool -P eth2 | awk '{print $3}')
post-up ifconfig bond2 -multicast
# Master für bond2
allow-brbs brb2
iface brb2 inet static
address 172.16.2.225
netmask 255.255.255.0
network 172.16.2.0
broadcast 172.16.2.255
gateway 172.16.2.254
bridge_ports bond2
bridge_stp off
bridge_fd 0
bridge_maxwait 0
post-up ifconfig brb2 -multicast
post-up echo 0 > /sys/devices/virtual/net/brb2/bridge/multicast_router
post-up echo 0 > /sys/devices/virtual/net/brb2/bridge/multicast_snooping
# "pre-up ip link set ethX up" is used as a workaround for buggy eth-drivers to come up
# "post-up ip link set bond2 address $(ethtool -P eth2 | awk '{print $3}')" is used to insure bond2 to get always the same MAC (the one from eth2)
# these interfaces are set up by a separate script using ifup
/etc/network/interfaces on virtual machine:
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.2.222
netmask 255.255.255.0
network 172.16.2.0
broadcast 172.16.2.255
gateway 172.16.2.254
cat /proc/net/bonding/bond2:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200
802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 1
Actor Key: 17
Partner Key: 1
Partner Mac Address: 00:15:77:c1:76:92
Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:e0:81:cd:fc:dc
Aggregator ID: 1
Slave queue ID: 0
Slave Interface: eth4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 90:e2:ba:1b:ba:9c
Aggregator ID: 2
Slave queue ID: 0
brctl show:
bridge name bridge id STP enabled interfaces
brb2 8000.00e081cdfcdc no bond2
vnet0
ifconfig:
bond2 Link encap:Ethernet Hardware Adresse 00:e0:81:cd:fc:dc
UP BROADCAST RUNNING MASTER MTU:1500 Metrik:1
RX packets:125371104 errors:0 dropped:2630 overruns:13000 frame:0
TX packets:102064536 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:161005246299 (161.0 GB) TX-Bytes:76855627386 (76.8 GB)
brb2 Link encap:Ethernet Hardware Adresse 00:e0:81:cd:fc:dc
inet Adresse:172.16.2.225 Bcast:172.16.2.255 Maske:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metrik:1
RX packets:347889 errors:0 dropped:19655 overruns:0 frame:0
TX packets:145157 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:97420273 (97.4 MB) TX-Bytes:259259608 (259.2 MB)
eth2 Link encap:Ethernet Hardware Adresse 00:e0:81:cd:fc:dc
UP BROADCAST RUNNING SLAVE MTU:1500 Metrik:1
RX packets:410 errors:0 dropped:410 overruns:0 frame:0
TX packets:2803 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:243540 (243.5 KB) TX-Bytes:642578 (642.5 KB)
Interrupt:47 Speicher:fe7e0000-fe800000
eth4 Link encap:Ethernet Hardware Adresse 00:e0:81:cd:fc:dc
UP BROADCAST RUNNING SLAVE MTU:1500 Metrik:1
RX packets:125370694 errors:0 dropped:0 overruns:13000 frame:0
TX packets:102061733 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:161005002759 (161.0 GB) TX-Bytes:76854984808 (76.8 GB)
Speicher:fcbe0000-fcc00000
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:204109 errors:0 dropped:0 overruns:0 frame:0
TX packets:204109 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX-Bytes:263565238 (263.5 MB) TX-Bytes:263565238 (263.5 MB)
vnet0 Link encap:Ethernet Hardware Adresse fe:54:00:5b:5a:4d
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:451926 errors:0 dropped:0 overruns:0 frame:0
TX packets:1880757 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:500
RX-Bytes:4926362916 (4.9 GB) TX-Bytes:2461725339 (2.4 GB)
First ping works on virtual machine:
ping -c 4 172.16.2.231
PING 172.16.2.231 (172.16.2.231) 56(84) bytes of data.
64 bytes from 172.16.2.231: icmp_req=1 ttl=64 time=0.503 ms
64 bytes from 172.16.2.231: icmp_req=2 ttl=64 time=0.601 ms
64 bytes from 172.16.2.231: icmp_req=3 ttl=64 time=0.608 ms
64 bytes from 172.16.2.231: icmp_req=4 ttl=64 time=0.538 ms
--- 172.16.2.231 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.503/0.562/0.608/0.049 ms
And on workstation, too:
ping -c 4 172.16.2.222
PING 172.16.2.222 (172.16.2.222) 56(84) bytes of data.
64 bytes from 172.16.2.222: icmp_seq=1 ttl=64 time=0.704 ms
64 bytes from 172.16.2.222: icmp_seq=2 ttl=64 time=0.588 ms
64 bytes from 172.16.2.222: icmp_seq=3 ttl=64 time=0.531 ms
64 bytes from 172.16.2.222: icmp_seq=4 ttl=64 time=0.560 ms
--- 172.16.2.222 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.531/0.595/0.704/0.072 ms
Then I start iperf server on virtual machine:
iperf -s -i 1
And iperf client on workstation:
iperf -c 172.16.2.222 -t 3600 -i 1 -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 172.16.2.222, TCP port 5001
TCP window size: 108 KByte (default)
------------------------------------------------------------
[ 5] local 172.16.2.231 port 56734 connected with 172.16.2.222 port 5001
[ 4] local 172.16.2.231 port 5001 connected with 172.16.2.222 port 38241
[ 4] 0.0- 1.0 sec 101 MBytes 850 Mbits/sec
[ 5] 0.0- 1.0 sec 54.8 MBytes 460 Mbits/sec
[ 5] 1.0- 2.0 sec 50.5 MBytes 423 Mbits/sec
[ 4] 1.0- 2.0 sec 107 MBytes 898 Mbits/sec
[ 5] 2.0- 3.0 sec 52.5 MBytes 440 Mbits/sec
[ 4] 2.0- 3.0 sec 108 MBytes 904 Mbits/sec
[ 4] 3.0- 4.0 sec 107 MBytes 899 Mbits/sec
[ 5] 3.0- 4.0 sec 52.0 MBytes 436 Mbits/sec
[ 4] 4.0- 5.0 sec 108 MBytes 904 Mbits/sec
[ 5] 4.0- 5.0 sec 50.5 MBytes 423 Mbits/sec
[ 4] 5.0- 6.0 sec 107 MBytes 900 Mbits/sec
[ 5] 5.0- 6.0 sec 51.6 MBytes 433 Mbits/sec
[ 5] 6.0- 7.0 sec 51.3 MBytes 431 Mbits/sec
[ 4] 6.0- 7.0 sec 108 MBytes 906 Mbits/sec
[ 5] 7.0- 8.0 sec 50.8 MBytes 426 Mbits/sec
[ 4] 7.0- 8.0 sec 108 MBytes 906 Mbits/sec
[ 5] 8.0- 9.0 sec 52.7 MBytes 442 Mbits/sec
[ 4] 8.0- 9.0 sec 105 MBytes 877 Mbits/sec
After a few seconds it stops receiving and tranmitting data.
Ping does not work any longer on virtual machine:
ping -c 4 172.16.2.231
PING 172.16.2.231 (172.16.2.231) 56(84) bytes of data.
--- 172.16.2.231 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2999ms
Nor on workstation:
ping -c 4 172.16.2.222
PING 172.16.2.222 (172.16.2.222) 56(84) bytes of data.
>From 172.16.2.231 icmp_seq=1 Destination Host Unreachable
>From 172.16.2.231 icmp_seq=2 Destination Host Unreachable
>From 172.16.2.231 icmp_seq=3 Destination Host Unreachable
>From 172.16.2.231 icmp_seq=4 Destination Host Unreachable
--- 172.16.2.222 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3026ms, pipe 3
After a reboot of the virtual machine ping works again:
Ping on workstation:
ping -c 4 172.16.2.222
PING 172.16.2.222 (172.16.2.222) 56(84) bytes of data.
64 bytes from 172.16.2.222: icmp_seq=1 ttl=64 time=14.7 ms
64 bytes from 172.16.2.222: icmp_seq=2 ttl=64 time=0.774 ms
64 bytes from 172.16.2.222: icmp_seq=3 ttl=64 time=0.770 ms
64 bytes from 172.16.2.222: icmp_seq=4 ttl=64 time=0.777 ms
** Affects: qemu-kvm (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to qemu-kvm in Ubuntu.
https://bugs.launchpad.net/bugs/1050934
Title:
VM stops receiving packets on heavy load from virtio network interface
briged to a bonded interface on kvm hypervisor
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1050934/+subscriptions
More information about the Ubuntu-server-bugs
mailing list