qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Laine Stump <laine@redhat.com>
Cc: libvir-list@redhat.com, qemu-devel@nongnu.org,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [libvirt] [RFC 0/7] Live Migration with Pass-through Devices proposal
Date: Tue, 19 May 2015 15:21:49 +0100	[thread overview]
Message-ID: <20150519142149.GB8535@redhat.com> (raw)
In-Reply-To: <555B4575.1040709@redhat.com>

On Tue, May 19, 2015 at 10:15:17AM -0400, Laine Stump wrote:
> On 05/19/2015 05:07 AM, Michael S. Tsirkin wrote:
> > On Wed, Apr 22, 2015 at 10:23:04AM +0100, Daniel P. Berrange wrote:
> >> On Fri, Apr 17, 2015 at 04:53:02PM +0800, Chen Fan wrote:
> >>> backgrond:
> >>> Live migration is one of the most important features of virtualization technology.
> >>> With regard to recent virtualization techniques, performance of network I/O is critical.
> >>> Current network I/O virtualization (e.g. Para-virtualized I/O, VMDq) has a significant
> >>> performance gap with native network I/O. Pass-through network devices have near
> >>> native performance, however, they have thus far prevented live migration. No existing
> >>> methods solve the problem of live migration with pass-through devices perfectly.
> >>>
> >>> There was an idea to solve the problem in website:
> >>> https://www.kernel.org/doc/ols/2008/ols2008v2-pages-261-267.pdf
> >>> Please refer to above document for detailed information.
> >>>
> >>> So I think this problem maybe could be solved by using the combination of existing
> >>> technology. and the following steps are we considering to implement:
> >>>
> >>> -  before boot VM, we anticipate to specify two NICs for creating bonding device
> >>>    (one plugged and one virtual NIC) in XML. here we can specify the NIC's mac addresses
> >>>    in XML, which could facilitate qemu-guest-agent to find the network interfaces in guest.
> >>>
> >>> -  when qemu-guest-agent startup in guest it would send a notification to libvirt,
> >>>    then libvirt will call the previous registered initialize callbacks. so through
> >>>    the callback functions, we can create the bonding device according to the XML
> >>>    configuration. and here we use netcf tool which can facilitate to create bonding device
> >>>    easily.
> >> I'm not really clear on why libvirt/guest agent needs to be involved in this.
> >> I think configuration of networking is really something that must be left to
> >> the guest OS admin to control. I don't think the guest agent should be trying
> >> to reconfigure guest networking itself, as that is inevitably going to conflict
> >> with configuration attempted by things in the guest like NetworkManager or
> >> systemd-networkd.
> > There should not be a conflict.
> > guest agent should just give NM the information, and have  NM do
> > the right thing.
> 
> That assumes the guest will have NM running. Unless you want to severely
> limit the scope of usefulness, you also need to handle systems that have
> NM disabled, and among those the different styles of system network
> config. It gets messy very fast.

Also OpenStack already has a way to pass guest information about the
required network setup, via cloud-init, so it would not be interested
in any thing that used the QEMU guest agent to configure network
manager. Which is really just another example of why this does not
belong anywhere in libvirt or lower.  The decision to use NM is a
policy decision that will always be wrong for a non-negligble set
of use cases and as such does not belong in libvirt or QEMU. It is
the job of higher level apps to make that kind of policy decision.

> > Users are actually asking for this functionality.
> >
> > Configuring everything manually is possible but error
> > prone.
> 
> Yes, but attempting to do it automatically is also error prone (due to
> the myriad of different guest network config systems, even just within
> the seemingly narrow category of "Linux guests"). Pick your poison :-)

Also note I'm not debating the usefulness of the overall concept
or the need for automation. It simply doesn't belong in libvirt or
lower - it is a job for the higher level management applications to
define a policy for that fits in with the way they are managing the
virtual machines and the networking.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2015-05-19 14:22 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-17  8:53 [Qemu-devel] [RFC 0/7] Live Migration with Pass-through Devices proposal Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 1/7] qemu-agent: add agent init callback when detecting guest setup Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 2/7] qemu: add guest init event callback to do the initialize work for guest Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 3/7] hostdev: add a 'bond' type element in <hostdev> element Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 4/7] qemu-agent: add qemuAgentCreateBond interface Chen Fan
2015-05-19  9:13   ` Michael S. Tsirkin
2015-05-29  7:37   ` Michal Privoznik
2015-04-17  8:53 ` [Qemu-devel] [RFC 5/7] hostdev: add parse ip and route for bond configure Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 6/7] migrate: hot remove hostdev at perform phase for bond device Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 7/7] migrate: add hostdev migrate status to support hostdev migration Chen Fan
2015-04-17  8:53 ` [Qemu-devel] [RFC 0/3] add support migration with passthrough device Chen Fan
2015-04-17  8:53   ` [Qemu-devel] [RFC 1/3] qemu-agent: add guest-network-set-interface command Chen Fan
2015-05-21 13:52     ` Olga Krishtal
2015-05-21 14:43       ` [Qemu-devel] [libvirt] " Eric Blake
2015-04-17  8:53   ` [Qemu-devel] [RFC 2/3] qemu-agent: add guest-network-delete-interface command Chen Fan
2015-04-17  8:53   ` [Qemu-devel] [RFC 3/3] qemu-agent: add notify for qemu-ga boot Chen Fan
2015-04-21 23:38     ` Eric Blake
2015-04-19 22:29 ` [Qemu-devel] [libvirt] [RFC 0/7] Live Migration with Pass-through Devices proposal Laine Stump
2015-04-22  4:22   ` Chen Fan
2015-04-23 14:14     ` Laine Stump
2015-04-23  8:34   ` Chen Fan
2015-04-23 15:01     ` Laine Stump
2015-05-19  9:10       ` Michael S. Tsirkin
2015-04-22  9:23 ` [Qemu-devel] " Daniel P. Berrange
2015-04-22 13:05   ` Daniel P. Berrange
2015-04-22 17:01   ` Dr. David Alan Gilbert
2015-04-22 17:06     ` Daniel P. Berrange
2015-04-22 17:12       ` Dr. David Alan Gilbert
2015-04-22 17:15         ` Daniel P. Berrange
2015-04-22 17:20           ` Dr. David Alan Gilbert
2015-04-23 16:35             ` [Qemu-devel] [libvirt] " Laine Stump
2015-05-19  9:04               ` Michael S. Tsirkin
2015-05-19  9:07   ` [Qemu-devel] " Michael S. Tsirkin
2015-05-19 14:15     ` [Qemu-devel] [libvirt] " Laine Stump
2015-05-19 14:21       ` Daniel P. Berrange [this message]
2015-05-19 15:03         ` Dr. David Alan Gilbert
2015-05-19 15:18           ` Michael S. Tsirkin
2015-05-19 15:35           ` Daniel P. Berrange
2015-05-19 15:39             ` Michael S. Tsirkin
2015-05-19 15:45               ` Daniel P. Berrange
2015-05-19 16:08                 ` Michael S. Tsirkin
2015-05-19 16:13                   ` Daniel P. Berrange
2015-05-19 16:27                   ` Dr. David Alan Gilbert
2015-05-19 15:21         ` Michael S. Tsirkin
2015-05-19 15:14       ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150519142149.GB8535@redhat.com \
    --to=berrange@redhat.com \
    --cc=laine@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).