Laine Stump wrote:
>
> 2011/5/8 Richard W.M. Jones <rjones(a)redhat.com
> <mailto:rjones@redhat.com>>
>
> On Sun, May 08, 2011 at 10:56:54AM +0800, guan qin wrote:
> > The second solution you mentioned may be difficult , because
> when I assign
> > the ethX to the VM, the X in the 'ethX' is random (the 'X'
in
> the host may
> > be different in the VM),I don't know it before I boot the VM .
> so maybe I
> > couldn't edit the guest correctly before booting VM.
>
> AFAIK the guest should always see "eth0", so this shouldn't be any
> problem. If not, write udev rule(s) in the guest to force the
> name to
> be stable.
>
> > The first solution :
> > The network card's MAC address I can know and assign an fixed
> IP in
> > advance, but for the VFs , before I create the VF by "modprobe
> > igb/ixgbe
> > max_vfs=num1,num2" ,I couldn't know the MAC address before
> either,the MAC
> > address generated randomly too.
> > So maybe I should edit the DHCP server configure file after
> creating the
> > VFs.
>
> It seems that for SR-IOV, MAC addresses are assigned to VFs randomly
> by the kernel. It should be possible to read out the VF using (eg)
> libvirt before the VM has booted (if not, it would be a bug). I
> think
> you can also assign fixed MAC addresses to VFs in advance if that
> would be simpler. However I've not really used SR-IOV in anger so
> this may be wrong.
>
On 05/08/2011 10:35 AM, guan qin wrote:
> If I use SR-IOV, the guest may be always "eth0" , but when I use
> the VT-d ,I often got an ethX with a random X in VM.
> AFAIK, udev make the NIC name be stable by the MAC address. So when I
> haven't assigned a VF or NetworkCard to the VM,
> how can I force the name in the guest to 'eth0' ?
(Please don't top-quote. It makes it hard to follow the discussion
later).
As I understand it (and I may have it wrong, as I don't actually have
any SRIOV hardware to play with), an SRIOV VF gets a different random
MAC address each time the host boots. However, udev on the host
apparently ignores VFs when saving off its mac address <--> ethX
mapping for reference on subsequent boots, so the VFs as seen from the
host will have a stable name (but unstable mac address).
Perhaps some of the work done in iproute2, et.al. can be leveraged. The
ip command could be used to set user-defined MAC addr prior to passing
to the guest
ip link set dev ethX vf Y mac aa:bb:cc:dd:ee:ff
Regards,
Jim
When you map that VF through to the guest, the guest probably doesn't
know that it's a VF of an SRIOV card, it thinks it's a standard
ethernet card, so the guest's udev saves that particular MAC
address<->ethX mapping for subsequent boots; the problem is that the
next time it boots, it will get *yet another* mac address, which will
be mapped to *yet another* ethX name.
The solution is to clear out the udev mapping on the guest before each
boot, or otherwise teach it to not save the mapping. Alternately, use
a different method of attaching your guest to the network (ie, instead
of using PCI Passthrough, use <interface type='direct'> to attach a
guest interface to one of the VFs, and give the guest a fixed MAC
address of your own choosing.)
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list