From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Cc: libvir-list@redhat.com, Jan Kiszka <jan.kiszka@web.de>,
Hollis Blanchard <hollisb@us.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 1/6] Allow multiple monitor devices (v2)
Date: Sun, 12 Apr 2009 00:14:11 +0300 [thread overview]
Message-ID: <49E10823.8060200@redhat.com> (raw)
In-Reply-To: <49E0FB00.8080500@codemonkey.ws>
Anthony Liguori wrote:
> Avi Kivity wrote:
>> Anthony Liguori wrote:
>>
>>> IMHO, multiple monitors is a critical feature to support in the long
>>> term.
>>
>> Multiple monitors are nice to have (for developers), but I don't see
>> them as critical.
>
> If you live in a world where there is a single management application
> that provides the only interface to interact with a QEMU instance,
> then yes, they aren't critical.
>
I do (or at least I hope I do). Exposing the monitor to users is a
layering violation.
> The problem with this is that most management applications are lossy
> by their nature. They expose only a subset of functionality supported
> by QEMU.
What if they don't expose a feature because they don't want to make the
feature available to the user?
What happens when the user changes something that the management
application thinks it controls? Do we add notifiers on everything?
The qemu monitor is a different privilege level from being a virtual
machine owner. Sure, we could theoritically plug all the holes with,
for example the user filling up the disk with screendumps. But do we
want to reduce security this way?
You're taking away control from the management application, due to what
are the management application's misfeatures. You should instead tell
the vendor of your management application to add the missing feature.
Oh, and don't expect users of a management application to connect to the
qemu monitor to administer their virtual machines. They expect the
management application to do that for them. The qemu monitor is an
excellent way to control a single VM, but not for controlling many.
>
> Currently, the monitor is the "management interface" for QEMU. If we
> only every support one instance of that management interface, then it
> means if multiple management applications are to interact with a given
> QEMU instance, they must all use a single API to do that then allows
> for multiplexing. I see no reason that QEMU shouldn't do the
> multiplexing itself though.
Again, I don't oppose multiplexing (though I do oppose the wait command
which requires it, and I oppose this "management apps suck, let's telnet
to qemu directly" use you propose.
>
> To put it another way, a user that uses libvirt today cannot see QEMU
> instances that are run manually. That is not true when a user uses
> libvirt with Xen today because Xend provides a management interface
> that is capable of supporting multiple clients. I think it's
> important to get the same level of functionality for QEMU.
>
> N.B. yes, Xend is a horrendous example especially when your argument
> has been simplicity vs. complexity.
I'm sure libvirt really enjoys it when users use xm commands to change
the VM state. What happens when you migrate it, for example? Or add a
few dozen vcpus?
>
> At the end of the day, I want to be able to run a QEMU instance from
> the command line, and have virt-manager be able to see it remotely and
> connect to it. That means multiple monitors and it means that all
> commands that change VM state must generate some sort of notification
> such that libvirt can keep track of the changing state of a VM.
I don't think most management application authors would expose the qemu
monitor to users. It sounds like a huge risk, and for what benefit? If
there's something interesting you can do with the monitor, add it to the
management interface so people can actually use it. They don't buy this
stuff so they can telnet into the monitor.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2009-04-11 21:13 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-08 18:34 [Qemu-devel] [PATCH 1/6] Allow multiple monitor devices (v2) Anthony Liguori
2009-04-08 18:34 ` [Qemu-devel] [PATCH 2/6] Introduce monitor 'wait' command (v2) Anthony Liguori
2009-04-08 18:34 ` [Qemu-devel] [PATCH 3/6] Introduce wait filtering (v2) Anthony Liguori
2009-04-08 18:35 ` [Qemu-devel] [PATCH 4/6] Document new events (v2) Anthony Liguori
2009-04-08 18:35 ` [Qemu-devel] [PATCH 5/6] Implement vm-state notifications (v2) Anthony Liguori
2009-04-08 18:35 ` [Qemu-devel] [PATCH 6/6] Implement vnc-event " Anthony Liguori
2009-04-08 18:43 ` [Qemu-devel] Re: [PATCH 2/6] Introduce monitor 'wait' command (v2) Anthony Liguori
2009-04-08 19:01 ` [Qemu-devel] " Blue Swirl
2009-04-08 19:02 ` Anthony Liguori
2009-04-09 11:01 ` Avi Kivity
2009-04-09 13:40 ` Anthony Liguori
2009-04-09 13:58 ` Avi Kivity
2009-04-09 14:19 ` Jan Kiszka
2009-04-09 8:19 ` [Qemu-devel] [PATCH 1/6] Allow multiple monitor devices (v2) Avi Kivity
2009-04-09 13:28 ` Anthony Liguori
2009-04-09 13:40 ` Avi Kivity
2009-04-09 13:47 ` Anthony Liguori
2009-04-09 14:03 ` Avi Kivity
2009-04-09 14:13 ` Anthony Liguori
2009-04-09 14:28 ` Avi Kivity
2009-04-09 14:30 ` Anthony Liguori
2009-04-09 14:37 ` Avi Kivity
2009-04-09 14:57 ` Anthony Liguori
2009-04-09 15:11 ` Avi Kivity
2009-04-09 15:40 ` Anthony Liguori
2009-04-09 15:57 ` Avi Kivity
2009-04-09 16:09 ` Anthony Liguori
2009-04-09 16:30 ` Avi Kivity
2009-04-09 16:42 ` Anthony Liguori
2009-04-09 17:00 ` Avi Kivity
2009-04-09 17:40 ` Anthony Liguori
2009-04-11 16:25 ` Avi Kivity
2009-04-11 20:18 ` Anthony Liguori
2009-04-11 21:14 ` Avi Kivity [this message]
2009-04-12 18:42 ` Jamie Lokier
2009-04-14 8:30 ` [libvirt] " Daniel P. Berrange
2009-04-14 9:15 ` Avi Kivity
2009-04-14 9:17 ` Daniel P. Berrange
2009-04-14 9:29 ` Jan Kiszka
2009-04-14 9:36 ` Avi Kivity
2009-04-14 9:38 ` Avi Kivity
2009-04-14 18:21 ` Jamie Lokier
2009-04-14 18:19 ` Jamie Lokier
2009-04-16 9:03 ` Avi Kivity
2009-04-11 23:16 ` Zachary Amsden
2009-04-12 8:23 ` Zachary Amsden
2009-04-14 8:28 ` Gerd Hoffmann
2009-04-14 18:20 ` Jamie Lokier
2009-04-11 19:11 ` Avi Kivity
2009-04-11 21:47 ` Andreas Färber
2009-04-12 18:44 ` Jamie Lokier
2009-04-09 16:01 ` Jamie Lokier
2009-04-09 14:15 ` [libvirt] " Gerd Hoffmann
2009-04-09 14:19 ` Avi Kivity
2009-04-09 14:56 ` Jan Kiszka
2009-04-09 15:15 ` François Revol
2009-04-09 15:15 ` Avi Kivity
2009-04-09 15:49 ` Jan Kiszka
2009-04-09 16:01 ` Avi Kivity
2009-04-09 16:07 ` Jamie Lokier
2009-05-11 20:54 ` Hollis Blanchard
2009-05-11 21:51 ` Anthony Liguori
2009-05-12 8:48 ` Avi Kivity
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=49E10823.8060200@redhat.com \
--to=avi@redhat.com \
--cc=hollisb@us.ibm.com \
--cc=jan.kiszka@web.de \
--cc=libvir-list@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).