public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Andrew Beekhof <abeekhof@redhat.com>
Cc: "Daniel P. Berrange" <berrange@redhat.com>,
	Chris Wright <chrisw@redhat.com>, Ted Ross <tross@redhat.com>,
	kvm@vger.kernel.org, arroy@redhat.com, dlaor@redhat.com,
	Alexander Graf <agraf@suse.de>,
	qemu-devel@nongnu.org, "Perry N. Myers" <pmyers@redhat.com>,
	Michael D Roth <mdroth@us.ibm.com>
Subject: Re: [Qemu-devel] KVM call minutes for Oct 19
Date: Thu, 21 Oct 2010 11:25:50 -0500	[thread overview]
Message-ID: <4CC0698E.4030708@codemonkey.ws> (raw)
In-Reply-To: <4CC05F8E.9010009@redhat.com>

Hi Andrew,

On 10/21/2010 10:43 AM, Andrew Beekhof wrote:
> In that case we've done a bad job of the wiki.
> Windows and other distributions are a key part of the Matahari vision.
>
> Matahari is two things
> - an architecture, and
> - an implementation of the most common API sets
>
> Each set of APIs (ie. host, network, services) is an independent 
> daemon/agent which attaches to a common QMF broker (more on that later).
>
> While some of these might be platform specific, packaging would be one 
> likely candidate, the intention is to be agnostic distro/platform 
> wherever possible.
>
> Take netcf for example, instead of re-inventing the wheel we wrote the 
> windows port for netcf.
>
>
> So what's this about QMF you ask?
> Again, rather than invent our own message protocol we're leveraging an 
> existing standard that supports windows and linux, is fast, reliable 
> and secure.
>
> Its also pluggable and discoverable - so simply starting a new agent 
> that connects to the matahari broker makes it's API available.  Any 
> QMF client/console can also interrogate the guest to see what agents 
> and API calls are available.
>
> Even better there's going to be a virtio-serial transport.  So we can 
> access the same agents in the same way with or without host-to-guest 
> networking.  This was a key requirement for us because of EC2-like 
> cloud scenarios where we don't have access to the physical host.

I did get this much and I think I'm doing a poor job explaining myself.

I think Matahari is tackling the same space that many other frameworks 
are.  For instance, everything you say above is (supposed to be) true 
for something like OpenWBEM, Pegasus, etc.

The advantage I see in Matahari is that 1) it can take advantage of 
virtio-serial 2) it's significantly lighter than CIM 3) it's community 
driven.

So there's no doubt in my mind that if you need a way to inventory 
physical and virtual systems, something like Matahari becomes a very 
appealing option to do that.

But that's not the problem space I'm trying to tackle.

An example of the problem I'm trying to tackle is guest reboot.

On x86, there is no ACPI interface for requesting a guest reboot.  Other 
platforms do provide this and we usually try to emulate platform 
interfaces whenever possible.  In order to implement host-initiated 
reboot (aka virDomainReboot) we need to have a mechanism to execute the 
reboot command in the guest that's initiated by the hypervisor.

This is not the same thing as a remote system's management interface.  
This is something that should be dead-simple and trivially portable.

I think there's symbiotic relationship that a QEMU-based guest agent 
could play with a Matahari based agent.  But my initial impression is 
that the types of problems we're trying to tackle are fundamentally 
different than the problem that Matahari is even if it superficially 
appears like there's an overlap.

For instance, communication window locations to enable "coherence" mode 
in the QEMU GUI is something that makes no sense as a network management 
interface.  This is something that only makes sense between QEMU and the 
guest agent.

Regards,

Anthony Liguori

>
> Thats probably enough for the moment, I'd better go make dinner :-)
>
>
>>>> It
>>>> exposes interfaces for manipulation of RPM packages, relies on netcf,
>>>> etc.
>>> FYI netcf is not Fedora specific. There is a Win32 backend for it
>>> too. It does need porting to other Linux distros, but that's simply
>>> an internal implementation issue. The goal of netcf is to be the
>>> libvirt of network config mgmt - a portable API for all OS network
>>> config tasks. Further, Matahari itself is also being ported to Win32
>>> and can be ported to other Linux distros too.
>>
>> Yeah, I'm aware of the goals of netcf but that hasn't materialized a
>> port to other distros.
>>
>> Let me be clear, I don't think this is a problem for libvirt,
>> NetworkManager, or even Matahari.
>>
>> But for a QEMU guest agent where we terminate the APIs within QEMU
>> itself, I do think it creates a pretty nasty portability barrier.
>>
>>>> There's nothing wrong with this if the goal of Matahari is to 
>>>> provide a
>>>> robust agent for Fedora-based Linux distributions but I don't think it
>>>> meets the requirements of a QEMU guest agent.
>>>>
>>>> I don't think we can overly optimize for one Linux distribution either
>>>> so a mentality of letting other platforms contribute their own support
>>>> probably won't work.
>>> That is not the goal of Matahari. It is intended to be generically
>>> applicable to *all* guest OS. Obviously in areas where every distro
>>> does different things, then it will need porting for each different
>>> impl. You have to start somewhere and it started with Fedora. This
>>> is all is true of any guest agent solution.
>>
>> There's two approaches that could be taken for a guest agent. You could
>> provide very low level interfaces (read a file, execute a command, read
>> a registry key). This makes for a very portable guest agent at the cost
>> of complexity in interacting with the agent. The agent doesn't ever
>> really need to change much the client (QEMU) needs to handle many
>> different types of guests, and add new functionality based on the
>> supported primitives.
>>
>> Another approach is to put the complexity in the agent and simplify the
>> management interface. For system's management applications, this is
>> probably the right approach. For virtualization, I think this is a bad
>> approach.
>>
>> Very specifically, netcf only really needs to read and write
>> configuration files and potentially run a command. Instead of linking
>> against netcf in the guest, we should link against netcf in QEMU so that
>> we don't have to constantly change the guest agent.
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>
>>> Regards,
>>> Daniel
>>
>>
>


  reply	other threads:[~2010-10-21 16:25 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-19 15:14 KVM call minutes for Oct 19 Chris Wright
2010-10-20  8:21 ` [Qemu-devel] " Alexander Graf
2010-10-20  8:25   ` Paolo Bonzini
2010-10-20  8:30     ` Alexander Graf
2010-10-20 10:47   ` Avi Kivity
2010-10-20 12:16   ` Dor Laor
2010-10-21 10:22     ` Andrew Beekhof
2010-10-21 10:26       ` Dor Laor
2010-10-21 13:09       ` Anthony Liguori
2010-10-21 13:18         ` Daniel P. Berrange
2010-10-21 13:32           ` Anthony Liguori
2010-10-21 15:43             ` Andrew Beekhof
2010-10-21 16:25               ` Anthony Liguori [this message]
2010-10-21 16:37                 ` Chris Wright
2010-10-21 19:47                 ` Andrew Beekhof
2010-10-20 13:02   ` Anthony Liguori
2010-10-20 13:19     ` Daniel P. Berrange
2010-10-20 13:21       ` Anthony Liguori
2010-10-20 22:46         ` Dor Laor
2010-10-21  1:14           ` Alexander Graf
2010-10-21  7:45             ` Paolo Bonzini
2010-10-21 13:02               ` Anthony Liguori
2010-10-21 13:05                 ` Dor Laor
2010-10-22 17:29                 ` Chris Wright
2010-10-22 17:39                   ` Anthony Liguori
2010-10-22 18:20                     ` Chris Wright
2010-10-22 18:53                       ` Anthony Liguori
2010-10-23  0:06                         ` Chris Wright

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=4CC0698E.4030708@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=abeekhof@redhat.com \
    --cc=agraf@suse.de \
    --cc=arroy@redhat.com \
    --cc=berrange@redhat.com \
    --cc=chrisw@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mdroth@us.ibm.com \
    --cc=pmyers@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=tross@redhat.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