On 11/15/2012 02:29 PM, Dan Kenigsberg wrote:
On Wed, Nov 14, 2012 at 02:12:07PM -0500, Simon Grinberg wrote:
>>
>> The intention is to use the new API VDSM.libvirtVm.updateVmInteface
>> for
>> performing the network rewire in a single command.
>
> What does it do? I could not find updateVmInteface in vdsm git.
> Where is this defined?
>
> It's critical.
>
> - You can change the interface directly by moving the VM from one network to another
> - You can do that but toggle the ling state so the VM will be aware.
>
> Which if these two?
> If you do only the first then it's not the common use case. In most cases you
must toggle the link status to the VM.
> This will cause:
> 1. Speed negotiation + arp request that also informs the switched about the change
> 2. In case it's DHCP (which most likely the case for guests) it will trigger new
DHCP request.
>
> If you don't baaad things will happen :)
I think that baaaaad things are going to happen anyway. In "baaaaad
things", I mean "stuff that require guest intervension".
The guest may be moved from one subnet into another one, maybe on
different VLAN or physical LAN. We can not expect that the applications
running on it will be happy about these changes. A similar case appears
if we rewire the network while the VM is down (or hibernated). When the
VM is restarted, it is going to use mismatching IP addresses.
You are right that it may make sense to request an new IP address after
the rewiring, however, a little test I just did on my desktop showed that
dhclient does not initiate a new request just because the carrier
dropped for few seconds. So we should try harder if we want to refresh
dhcp after rewiring: I think that it would be cool to have a guest agent verb
that does it.
shouldn't this simulate a link disconnect/connect event to the OS?