From: Anthony Liguori <anthony@codemonkey.ws>
To: Andrew Beekhof <abeekhof@redhat.com>
Cc: ryanh@us.ibm.com, agl@linux.vnet.ibm.com,
Michael Roth <mdroth@linux.vnet.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [RFC][PATCH 00/10] virtagent: host/guest RPC communication agent
Date: Mon, 25 Oct 2010 16:28:35 -0500 [thread overview]
Message-ID: <4CC5F683.5080907@codemonkey.ws> (raw)
In-Reply-To: <4CC55C59.1010202@redhat.com>
On 10/25/2010 05:30 AM, Andrew Beekhof wrote:
> On 10/22/2010 08:45 PM, Michael Roth wrote:
>> This set of patches is meant to be applied on top of the Virtproxy v1
>> patchset.
>>
>> OVERVIEW:
>>
>> There are a wide range of use cases motivating the need for a guest
>> agent of some sort to extend the functionality/usability/control
>> offered by QEMU.
>> Some examples include graceful guest shutdown/reboot and
>> notifications thereof, copy/paste syncing between host/guest, guest
>> statistics gathering, file access, etc.
>>
>> Ideally these would all be served by a single, easilly extensible
>> agent that can be deployed in a wide range of guests.
>> Virtagent is an XMLRPC server integrated into the Virtproxy guest
>> daemon and aimed at providing this type of functionality.
>>
>> This code is very rough, and I'll to document most of the
>> bugs/shortcomings we're aware of in this version of the patchset.
>> The main goal of this RFC to get feedback on the types of core
>> functionality we would need in an agent of this sort, as well as
>> feedback on the general approach/architecture implemented here.
>> Any feedback is greatly appreciated however.
>>
>> To start off this discussion, there have been some recent posts about
>> how much an agent of this sort overlaps with the goals of the
>> Matahari project (https://fedorahosted.org/matahari/).
>> While both of these approaches are at least *feasible*, our use cases
>> require the ability to deploy to guests which may not support
>> virtio-serial, which currently rules Matahari out.
>> This support could be added however: the virtproxy layer used by this
>> agent actually lends itself to extending such support to other
>> agents/services, or a more direct approach could be taken in adding
>> support for isa-serial.
>>
>> The question that remains however is one of scope.
>> This agent is intended purely as a means to extend qemu's abilities
>> to perform hypervisor-specific work,
>
> "shutdown/reboot", "statistics", "file gathering"... none of those
> sound very "hypervisor-specific" to me ;-)
A hypervisor initiated shutdown is very different than a network
initiated shutdown.
>> whereas Matahari aims to extend general system management
>> capabilities to guests (please correct me if I'm oversimplifying).
>
> As I replied elsewhere, Matahari is both an architecture and a
> collection of independent but commonly useful agents.
>
> So while there will be a bunch of other agents doing a bunch of things
> you don't care about, you don't have to care that they exist either :-)
>
> A hypothetical QEMU agent would be a independent entity, with both the
> daemon and source code completely isolated from any other agents.
>
> It doesn't even need to live in the Matahari project.
I've taken a deeper look at Matahari.
First thing I've noticed is that the AMQP seems to be unfriendly to C.
QPID and it's friends are all implemented in C++ as it Matahari itself.
The lack of a C client library is a deal breaker for QEMU because it
makes it impossible to integrate into QEMU.
The second thing that I've observed is that AMQP is less oriented toward
point-to-point communication than, say, XML-RPC but rather focuses on a
pub/sub model. This is not a bad thing, but I wonder if there are any
real cases where it makes sense as a guest agent. It seems like a high
complexity cost without a lot of return.
>> Virtagent cannot meet Matahari's goals, whereas Matahari technically
>> can meet Virtagent's.
>> My contention however is that the qemu-specific scope/API and shared
>> code base with a more closely integrated agent will provide a more
>> expedient route to functional improvements to qemu,
>
> See above. Would leveraging the Matahari architecture but keeping the
> agent in the QEMU project address this concern?
Biggest is going to be the fact that it's not C-friendly.
>> while still allowing for the additional functionality/management
>> capabilities provided by something like Matahari.
>>
>> DESIGN:
>>
>> There are actually 2 RPC servers:
>>
>> 1) a server in the guest integrated into the Virtproxy guest daemon
>> which handles RPC requests from QEMU
>
> Question: Is the scope here purely between a host and its guest? Or
> is it intended that one could access the guest daemon from other
> hosts/guests?
Just host and guest is the intended scope.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2010-10-25 21:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-22 18:45 [Qemu-devel] [RFC][PATCH 00/10] virtagent: host/guest RPC communication agent Michael Roth
2010-10-22 18:45 ` [Qemu-devel] [RFC][PATCH 01/10] virtagent: add common rpc transport defs Michael Roth
2010-10-25 21:39 ` Anthony Liguori
2010-10-25 21:54 ` malc
2010-10-25 22:02 ` Anthony Liguori
2010-10-25 22:32 ` malc
2010-10-22 18:45 ` [Qemu-devel] [RFC][PATCH 02/10] virtagent: base definitions for host/guest RPC daemon Michael Roth
2010-10-22 18:45 ` [Qemu-devel] [RFC][PATCH 03/10] virtagent: qemu-vp, integrate virtagent daemon Michael Roth
2010-10-22 18:45 ` [Qemu-devel] [RFC][PATCH 04/10] virtagent: base RPC client definitions Michael Roth
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 05/10] virtagent: add getfile RPC Michael Roth
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 06/10] virtagent: add agent_viewfile command Michael Roth
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 07/10] virtagent: add getdmesg RPC Michael Roth
2010-10-25 21:42 ` Anthony Liguori
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 08/10] virtagent: add agent_viewdmesg command Michael Roth
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 09/10] virtagent: Makefile/configure changes to build virtagent bits Michael Roth
2010-10-22 18:46 ` [Qemu-devel] [RFC][PATCH 10/10] virtproxy: add compat defs for linking against vl.c Michael Roth
2010-10-23 11:31 ` [Qemu-devel] Re: [RFC][PATCH 00/10] virtagent: host/guest RPC communication agent Andrew Beekhof
2010-10-23 14:41 ` Michael Roth
2010-10-25 9:46 ` Andrew Beekhof
2010-10-25 10:30 ` Andrew Beekhof
2010-10-25 17:06 ` Michael Roth
2010-10-26 7:14 ` Andrew Beekhof
2010-10-25 21:28 ` Anthony Liguori [this message]
2010-10-26 7:27 ` Andrew Beekhof
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=4CC5F683.5080907@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=abeekhof@redhat.com \
--cc=agl@linux.vnet.ibm.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=ryanh@us.ibm.com \
/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).