[libvirt-users] libvirt-bin MOSTLY fails to create default virtual network

Laine Stump laine at laine.org
Sun Jun 12 16:03:17 UTC 2011


On 06/06/2011 03:24 PM, m m wrote:
> I have observed 3 scenarios after I reboot the host with 2 guests 
> (which are supposed to autostart after boot/reboot of the host):
> 1. Default network is created but I can not ping guests. Gests don't 
> have assigned IP address or they both have IP address 192.168.122.100.
> 2. Default network is not created.
> 3. Default netork is properly created and everything works fine.
> In each case guests are started and they work properly. Cases 1. and 
> 2. happen a lot more often then case 3.
>
> My solutions:
> - When I restart libvirt-bin then everything is fine.
> - When I set 'sleep 40' in 'pre-start' section of 
> /etc/init/libvirt-bin.conf and modify 'start on' section in the 
> following way:
>
> start on (runlevel [2345] and net-device-up IFACE=br0)
>
> then everything works fine.
>
>
> However, none of the above solutions indeed solves the problem. 
> Please, let me know if there is solution to this problem or what are 
> your suggestions regarding this issue.
>
> ****
> HOST$ uname -a
> Linux ras 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 
> x86_64 GNU/Linux
>
> GUEST1 and GUEST2
> $ uname -a
> Linux server1-desktop 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 
> 21:54:21 UTC 2011 i686 GNU/Linux
>
> HOST$ libvirtd --version
> libvirtd (libvirt) 0.7.5
>
> My idea was that some kernel modules sometimes are loaded before 
> libvirt-bin starts, and sometimes libvirt-bin starts earlier, or in 
> the middle of loading of these modules, that is why 3 scenarios can be 
> observed.
> That is why I have added:
>  cp /proc/modules /home/wsadmin2/modules1
>  cp /proc/modules /home/wsadmin2/modules2
> to 'pre-start' and 'post-start' parts respectively of 
> /etc/init/libvirt-bin.conf.
>
> Of course, beween execution of
> - pre-start part
> - exec /usr/sbin/libvirtd -d
> - post-start part
> other kernel modules can be loaded, so we can not be sure which 
> additional modules in file 'modules2' were indeed loaded before 
> libvirtd was actually started.
>
> Here are my observations:
> Scenatio 1.
> 33 (fixed) modules were logged - call them BASE MODULES.
>
> Scenatio 2.
> Beside BASE MODULES + the following modules were loaded:
>
> > iptable_filter 1841 0 - Live 0xffffffffa007c000
> > ip_tables 18201 1 iptable_filter, Live 0xffffffffa0172000
> > x_tables 22361 1 ip_tables, Live 0xffffffffa0164000

In your "scenario 1" the modules necessary for iptables to function 
haven't been loaded. Each virtual network requires a set of iptables 
rules to function properly, and if there is no iptables, the rules can't 
be added and network creation fails. Your libvirtd.log confirms that 
problem:

   10:06:06.980: error : networkAddIptablesRules:750 : failed to add 
iptables rule to allow DHCP requests from 'virbr0': Invalid argument


0.7.5 is quite old (> 1 year), is there perhaps a newer pre-built 
version of libvirt available for your release of Ubuntu?

It seems that Ubuntu's method of starting up libvirtd (at least on your 
machine) is missing a dependency to force iptables to be loaded before 
libvirtd starts. I'm unfamiliar with Ubuntu/debian startup stuff 
(upstart, I guess), but that's where you need to look for the solution.

I found the following in the ubuntu bug database, which seems similar, 
but not identical (basically the system networking isn't completely 
ready by the time the autostart domains are brought up):

https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/495394

>
> Scenatio 3.
> Beside BASE MODULES + the following modules were loaded:
>
> $ diff modules1 modules2
> 1c1,6
> < iptable_filter 1841 0 - Live 0xffffffffa008b000
> ---
> > xt_state 1490 14 - Live 0xffffffffa01ab000
> > xt_tcpudp 2667 12 - Live 0xffffffffa01a5000
> > nf_conntrack_ipv4 12742 14 - Live 0xffffffffa019b000
> > nf_conntrack 73326 2 xt_state,nf_conntrack_ipv4, Live 0xffffffffa017d000

conntrack is used by iptables. I haven't tried it, but wouldn't be 
surprised if adding rules that required conntrack failed if it hadn't 
been loaded, or something like that.

> > nf_defrag_ipv4 1481 1 nf_conntrack_ipv4, Live 0xffffffffa0177000
> > iptable_filter 1841 1 - Live 0xffffffffa008b000
> 3c8
> < x_tables 22361 1 ip_tables, Live 0xffffffffa0162000
> ---
> > x_tables 22361 3 xt_state,xt_tcpudp,ip_tables, Live 0xffffffffa0162000
>
> Other observations:
> Scenatio 1.
> No errors in libvirtd.log
> Scenario 2.
>
> 10:06:06.980: error : networkAddIptablesRules:750 : failed to add 
> iptables rule to allow DHCP requests from 'virbr0': Invalid argument
> (...)
> 10:06:08.630: error : qemudNetworkIfaceConnect:1445 : Failed to add 
> tap interface to bridge 'virbr0': No such device
> 10:06:08.630: error : qemuAutostartDomain:584 : Failed to autostart VM 
> 'cluster_server1': Failed to add tap interface to bridge 'virbr0': No 
> such device
>
> 10:06:08.921: info : qemudDispatchSignalEvent:390 : Received 
> unexpected signal 17
> 10:06:08.927: debug : virExecWithHook:617 : LC_ALL=C /usr/bin/kvm -help
> 10:06:08.938: info : qemudDispatchSignalEvent:390 : Received 
> unexpected signal 17
> 10:06:09.000: error : qemudNetworkIfaceConnect:1445 : Failed to add 
> tap interface to bridge 'virbr0': No such device
> 10:06:09.000: error : qemuAutostartDomain:584 : Failed to autostart VM 
> 'cluster_server2': Failed to add tap interface to bridge 'virbr0': No 
> such device
> (...)
> Scenatio 3.
> No errors in libvirtd.log
>
>
> I didn't see any valuable logs in /var/log/boot.log, 
> /var/log/messages, /var/log/syslog. Please let me know if you want to 
> see them anyway or have any suggestions right away.
>
>
> _______________________________________________
> libvirt-users mailing list
> libvirt-users at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-users




More information about the libvirt-users mailing list