qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Barak Azulay <bazulay@redhat.com>
Cc: Gal Hammer <ghammer@redhat.com>,
	arch@ovirt.org, qemu-devel@nongnu.org,
	vdsm-devel@lists.fedorahosted.org
Subject: Re: [Qemu-devel] converging  around a single guest agent
Date: Tue, 15 Nov 2011 17:01:00 -0600	[thread overview]
Message-ID: <4EC2EF2C.7010100@linux.vnet.ibm.com> (raw)
In-Reply-To: <201111151924.41357.bazulay@redhat.com>

On 11/15/2011 11:24 AM, Barak Azulay wrote:
> Hi,
>
> One of the breakout sessions during the ovirt workshop [1] was about the guest
> tools, and focused mainly on the ovirt-guest-agent [2].
>
> One of the issues discussed there, was the various existing guest agents out
> there, and the need to converge the efforts to a single agent that will serve
> all.
>
> while 4 agents were mentioned (Matahari, vdagent, qemu-ga&  ovirt-guest-agent)
> during that discussion, we narrowed it down to 2 candidates:
>
> qemu-ga (aka virt-agent):
> -------------------------
> - Qemu specific - it was aimed for specific qemu needs (mainly quiesce guest
> I/O)
> - Communicates directly with qemu  (not implemented yet)

Won't be implemented until we finish the QMP conversion to QAPI since 
that's a prereq to implementing a QMP server with proper async support 
(needed for communication with a potentially non-responsive guest 
agent). But once it's in guest extensions are completely transparent to 
QMP/libvirt, which is highly desirable from a management perspective 
since you're coding against a single API/transport.

> - Supports ?

Documented in qemu.git/qapi-schema.json:

mdroth@illuin:~/w/qemu.git$ grep command qapi-schema-guest.json
# Such clients should also preceed this command
{ 'command': 'guest-sync'
{ 'command': 'guest-ping' }
{ 'command': 'guest-info',
{ 'command': 'guest-shutdown', 'data': { '*mode': 'str' } }
{ 'command': 'guest-file-open',
{ 'command': 'guest-file-close',
{ 'command': 'guest-file-read',
{ 'command': 'guest-file-write',
{ 'command': 'guest-file-seek',
{ 'command': 'guest-file-flush',
{ 'command': 'guest-fsfreeze-status',
{ 'command': 'guest-fsfreeze-freeze',
{ 'command': 'guest-fsfreeze-thaw',

There's a wiki page with additional details:

> - So far linux only

Windows port is *almost* there. I have patches to build/run it on 
windows but there are some remaining bugs, and guest-fsfreeze* and 
guest-shutdown* are gonna need windows-specific command implementations.

> - written in C
>
> Ovirt-guest-agent:
> ------------------
> - Has been around for a long time (~5 years) - considered stable
> - Started as rhevm specific but evolved a lot since then
> - Currently the only fully functional guest agent available for ovirt
> - Written in python
> - Some VDI related sub components are written in C&  C++
> - Supports a well defined list of message types / protocol [3]
> - Supports the folowing guest OSs
>    Linux: RHEL5, RHEL6 F15, F16(soon)
>    Windows: xp, 2k3 (32/64), w7 (32/64), 2k8 (32/64/R2)
>

In terms of completeness/support for ovirt (and node/cluster-level 
management frameworks in general), the ovirt-guest-agent certainly seems 
like a win. The main problem with convergence within the qemu space is 
that we can't have guest extensions to qemu-driven guest events like, 
say, hotplug or shutdown be managed by an external agent: the 
functionality, specificity, and assurances required are not things that 
are necessarily suited for ovirt-guest-agent; the scope is very different.

And the same holds true in the other direction: I don't, personally at 
least, foresee qemu-ga ever doing things like providing a list of logged 
in users on a system or handling SSO, though if there are those who'd 
like to take qemu-ga in that direction I think that's fine.

But practically-speaking, it's unavoidable that qemu-specific management 
tooling will need to communicate with qemu (via QMP/libqmp/HMP/etc, or 
by proxy via libvirt). It's through those same channels that the qemu-ga 
interfaces will ultimately be exposed, so the problem of qemu-ga vs. 
ovirt-guest-agent isn't really any different than the problem of QMP's 
system_powerdown/info_balloon/etc vs. ovirt-guest-agent's 
Shutdown/Available_Ram/etc: it's a policy decision rather than argument 
for choosing one project over another.

>
> The need to converge is obvious, and now that ovirt-guest-agent is opensourced
> under the ovirt stack, and since it already produces value for enterprise
> installations, and is cross platform, I offer to join hands around ovirt-
> guest-agent and formalize a single code base that will serve us all.
>
> git @ git://gerrit.ovirt.org/ovirt-guest-agent
>
> Thoughts ?
>
> Thanks
> Barak Azulay
>
> [1] http://www.ovirt.org/news-and-events/workshop
> [2] http://www.ovirt.org/wiki/File:Ovirt-guest-agent.odp
> [3] http://www.ovirt.org/wiki/Ovirt_guest_agent
>

  parent reply	other threads:[~2011-11-15 23:02 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-15 17:24 [Qemu-devel] converging around a single guest agent Barak Azulay
2011-11-15 17:33 ` Alon Levy
2011-11-16 13:08   ` Gal Hammer
2011-11-15 18:01 ` Perry Myers
2011-11-15 18:08   ` Subhendu Ghosh
2011-11-15 19:45     ` Perry Myers
2011-11-16  6:48       ` Barak Azulay
2011-11-15 19:08 ` Anthony Liguori
2011-11-15 22:39   ` Ayal Baron
2011-11-16  7:53     ` Hans de Goede
2011-11-16  8:16       ` Ayal Baron
2011-11-16 14:59         ` Michael Roth
2011-11-17 15:11           ` Alon Levy
2011-11-16 12:07       ` Alon Levy
2011-11-16 13:45         ` Dor Laor
2011-11-16 13:47         ` Anthony Liguori
2011-11-16 17:55           ` Hans de Goede
2011-11-17 10:16             ` Alon Levy
2011-11-16 13:36     ` Anthony Liguori
2011-11-16 13:39       ` Dor Laor
2011-11-16 13:42         ` Anthony Liguori
2011-11-16 14:10           ` Ayal Baron
2011-11-16 14:20           ` Paolo Bonzini
2011-11-17  7:17             ` Itamar Heim
2011-11-17 14:31             ` Jamie Lokier
2011-11-16 13:45     ` Anthony Liguori
2011-11-15 19:09 ` Anthony Liguori
2011-11-15 23:01 ` Michael Roth [this message]
2011-11-16  0:42   ` Alexander Graf
2011-11-16  7:05     ` Barak Azulay
2011-11-16  8:16       ` Alexander Graf
2011-11-16 12:13         ` Barak Azulay
2011-11-16 15:28           ` Michael Roth
2011-11-16 17:53             ` Barak Azulay
2011-11-16 21:44               ` Michael Roth
2011-11-17  0:03               ` Anthony Liguori
2011-11-17  8:59                 ` Ayal Baron
2011-11-17 14:42                   ` Anthony Liguori
2011-11-16 10:18   ` Daniel P. Berrange
2011-11-16 20:24 ` Adam Litke
2011-11-17  2:09   ` Michael Roth
2011-11-17  8:46   ` Ayal Baron
2011-11-17 14:58     ` Michael Roth
2011-11-17 15:58     ` Adam Litke
2011-11-17 16:14       ` Daniel P. Berrange
2011-11-17 16:53         ` Eric Gaulin
2011-11-25 19:33         ` Barak Azulay
2011-11-17 17:09   ` Barak Azulay
2011-11-18  0:47     ` Luiz Capitulino
2011-11-17  0:48 ` [Qemu-devel] wiki summary Michael Roth
2011-11-17 16:34   ` Barak Azulay
2011-11-17 19:58     ` Michael Roth
2011-11-18 11:25       ` Barak Azulay
2011-11-18 14:10         ` Adam Litke
2011-11-18 14:21         ` Michael Roth
2011-11-24 12:40       ` Dor Laor
2011-11-24 16:47         ` Richard W.M. Jones
2011-11-25 10:07         ` Daniel P. Berrange
2011-11-27 12:19           ` Dor Laor

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=4EC2EF2C.7010100@linux.vnet.ibm.com \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=arch@ovirt.org \
    --cc=bazulay@redhat.com \
    --cc=ghammer@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vdsm-devel@lists.fedorahosted.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).