[libvirt] VN-Link vNIC memory state copying on VM Migration

Christian Benvenuti (benve) benve at cisco.com
Mon Apr 16 22:47:48 UTC 2012


Jagath,

> -----Original Message-----
> From: Jagath Weerasinghe [mailto:jagfoss at gmail.com]
> Sent: Sunday, April 15, 2012 6:59 AM
> To: Christian Benvenuti (benve)
> Cc: libvir-list at redhat.com
> Subject: Re: [libvirt] VN-Link vNIC memory state copying on VM Migration
> 
> Chris,
> 
> Thanks the explanation of the algorithm.
> 
> >> >  what memory state do you refer to exactly?
> >> What I meant by the memory state is the traffic being
> >> transferred through the vNIC when VM migration is triggered.
> >
> > Since you are worried about the traffic I assume we are talking about
> > _live_ migration.
> 
> Yes, live migration. Sorry for not mentioning it clearly.
> 
> > Libvirt qemu migration V3 takes place in 5 phases.
> > (If you search the mailing list archive for "migration v3" you will
> > find a number of 3Ds)
> > This is a simplified description of the algorithm:
> >
> >      +--+
> >      |VM|
> >   +--------+           +---------+
> >   |Src host|           |dst host |
> >   +--------+           +---------+
> >
> >   Phase1: BEGIN
> >   - Get XML of VM
> >     and tx it to dst
> >                         Phase2: PREPARE
> >                         - create (paused) VM based on XML
> >   Phase3: PERFORM
> >   - Copy RAM to dst
> >   - Pause VM
> >   ..................................................
> >                         Phase4: FINISH
> >                         - Apply port profiles
> >   ..................................................
> >                         - Start VM
> >   Phase5: CONFIRM
> >   - Kill VM
> >
> > Libvirt on the dst host orchestrates everything using RPCs.
> > Dst host can return error/success codes (the two libvirt also
> > exchange data, .. see cookies)
> >
> > During phases 1/2/3 the VM is still running on the src host and hence
> > able to rx/tx traffic.
> > At the end of Phase 3, when qemu is done copying the RAM from
> > source host to destination host (*), qemu puts the VM in pause state
> > on the source host.
> 
> OK. In phase 3, the RAM used by VM in source host is copied to the
> destination. Then what about the memory state of vNIC's in the M81KR VIC.
> Isn't there any memory for traffic passing through vNICs and also for
> vNIC statistics?  What I am talking about is copying of this memory to the
> destination vNIC.

No, that data (statistics, etc) are not copied to the dst host/vnic.
However, you can find those statistics/counters on the switch (which are
preserved across live migrations).

Thanks
/Chris
 
> > (*) See the migration parameter 'migrate-setmaxdowntime'
> >
> > In phase 4 libvirt applies the port profile to the interfaces
> > that need it and starts the VM (which had been created and put in
> > pause state in phase 2).
> > There is therefore a small period during which both VMs (the one
> > on the source host and the one on the destination host) are in pause
> > state (see dotted lines above).
> > Phase 4 will start the VM on the dst host,
> > Phase 5 will kill the (paused) VM on the src host.
> >
> > The amount of time during which both VMs are in pause state depends on
> > a number of factors, including:
> > - maxdowntime:  the smaller you configure this value and
> >                - the longer will take the migration to complete, but
> >                - the smaller the pause duration will be
> > - bandwidth available on the interface/s used to carry the migration
> >  traffic, and amount of RAM assigned to the VM (since you need to
> >  copy it)
> > - time taken to complete the port profile associations on the dst host
> >  (which depends on how loaded the switches are)
> > - ...
> >
> >
> > Hope this clarifies a bit.
> > /Chris
> >
> >> If this memory state (or traffic) is not copied and moved to the
> >> destination vNIC how the smooth communication, which is
> >> guaranteed on VM migration, is achieved?
> >>
> >> Thanks
> >> Jagath
> >>
> >> >
> >> > If you refer to port profile info, then there is no copying involved:
> >> >  the source host disassociates the vnic port profile and
> >> >  the destination host re-associates the port profile on the new vnic.
> >> >
> >> > /Chris
> >> >
> >> >> -----Original Message-----
> >> >> From: libvir-list-bounces at redhat.com
> >> > [mailto:libvir-list-bounces at redhat.com] On Behalf Of Jagath
> >> >> Weerasinghe
> >> >> Sent: Friday, April 13, 2012 9:16 AM
> >> >> To: libvir-list at redhat.com
> >> >> Subject: [libvirt] VN-Link vNIC memory state copying on VM Migration
> >> >>
> >> >> Hi All,
> >> >>
> >> >> I am new to libvirt. And want to know how the VM migration
> >> >> occurs in VN-Link (IEEE802.1Qbh). As far as I know,
> >> >> the memory state of vNICs in M81KR VIC has to be copied
> >> >> and moved to the destination vNIC on VM migration.
> >> >> Is that correct? If so, could you please tell me how this
> >> >> has been implemented in libvirt?
> >> >>
> >> >> Thanks
> >> >> Jagath
> >> >>
> >> >> --
> >> >> libvir-list mailing list
> >> >> libvir-list at redhat.com
> >> >> https://www.redhat.com/mailman/listinfo/libvir-list
> >>
> >> --
> >> libvir-list mailing list
> >> libvir-list at redhat.com
> >> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list