On 10/03/2014 02:23 PM, Alvin Starr wrote:>
> When I try to pxe boot a new VM through lvm and libxl I find about 1
> in 10 times the pxe requests will be acknlwledged but if I go into the
> interacive ipxe screens it will boot every time.
>
> Is it possible that the network configuration is not built when the VM
> starts trying to get its pxe address?
>
It could be that the bridge you are connecting to has stp on and a
forwarding delay that is almost too long for the PXE timeout:
http://wiki.libvirt.org/page/PXE_boot_%28or_dhcp%29_on_guest_failed#Long_Forward_Delay_Time_on_Bridge
A bridge will not forward packets from a newly attached port until
spending $forward_delay seconds examining the traffic on that port; this
is intended to prevent L2 forwarding loops.
If you know for a fact that your network has no loops that need to be
suppressed, you can leave stp on, but set the forwarding delay to 0. How
you do this depends on how the bridge itself was originally configured.
The link above tells how to solve the problem when the connection is to
a libvirt network. For a bridge that was configured directly in the host
system's config, it will be different, but for RHEL/Fedora/CentOS, the
solution is to add "DELAY=0" to the ifcfg file for the bridge device
on
the host (and then bounce the bridge device down and back up).
(NB: if you have STP=on on a bridge, and it has a connection to a
hardware switch that is running STP as well, the bridge on your host
will automatically reset the forwarding delay to match what it is told
by the other switch. To prevent this, you'll have to turn STP off, which
shouldn't cause a problem as long as your bridge doesn't actually create
a forwarding loop.)