<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Thanks for the replies and all the comments. Sorry for taking so
long to<br>
answer this thread again...<br>
<br>
Some more comments inline.<br>
<br>
On 01/21/2013 09:54 AM, Daniel P. Berrange wrote:<br>
<span style="white-space: pre;">> On Fri, Jan 18, 2013 at
03:27:32PM -0200, <a class="moz-txt-link-abbreviated" href="mailto:lagarcia@linux.vnet.ibm.com">lagarcia@linux.vnet.ibm.com</a> wrote:<br>
>><br>
>> Although I can agree that virt-manager would be more
appropriate to hold the<br>
>> features I am describing, I think I am trying to address
a use case scenario<br>
>> that is currently not properly supported by any of these
two tools. So, first,<br>
>> let me try to define the audience I am interested in: my
average end-user here<br>
>> is a desktop user.<br>
>><br>
>> My view is that currently available virt-viewer and
virt-manager tools are<br>
>> designed to fit the needs of system administrators or
developers managing<br>
>> virtual machines. Both of them are targeted to the user
dealing with<br>
>> virtualization in an enterprise/data-center environment.
However, it is<br>
>> becoming more and more common that average desktop users,
that are usually<br>
>> involved in administrative or operational tasks and that
might not have any<br>
>> knowledge on how virtualization works, need to use
virtualized environments<br>
>> running on their desktops (or even remotely) to
accomplish daily tasks. Using a<br>
>> virtualized environment to accomplish some specific tasks
would be important<br>
>> and necessary due to security reasons: to avoid any kind
of contamination<br>
>> between the desktop user system and the system running
the tools he/she uses to<br>
>> accomplish important tasks and that might have
confidential/sensitive<br>
>> information. Also, it may be the case that customer
contracts enforce the use<br>
>> of isolated systems to access the customer's IT
environment: the use of<br>
>> virtualization allows one person to have access to
multiple isolated<br>
>> environments in an easy way yet avoiding any
contamination between the<br>
>> environments.<br>
>><br>
>> The way I see today, virt-viewer is a too simple tool
that only provides access<br>
>> to the virtual machine console. And, on the other hand,
virt-manager is quite a<br>
>> complex tool for a desktop user. A desktop user might not
be interested in the<br>
>> details involved in creating and managing virtual
machines (IT department will<br>
>> work on that). But, at the same time, the desktop user
would definitely want to<br>
>> access the virtual machine console and have some kind of
control over the<br>
>> machine, even though he/she don't want to interact with
any other complexities<br>
>> related to the virtual machine infrastructure. In that
scenario, I am really<br>
>> targeting something in between from what virt-viewer and
virt-manager console<br>
>> viewer provides today.<br>
>><br>
>> The specific use cases I am interested in are:<br>
>><br>
>> 1) Pause/Resume virtual machine<br>
>><br>
>> As a desktop user I want to be able to pause/resume the
execution of the<br>
>> virtual machine. This is important in cases in which I
want to temporarily<br>
>> suspend the work being executed at some point and resume
the work in a later<br>
>> time. From my point of view, this operation is similar to
the suspend operation<br>
>> in my desktop/laptop and it is intuitive for me to
execute the same action in a<br>
>> virtual machine.<br>
><br>
> You can just invoke S3 suspend inside the VM<br>
><br>
>> 2) Restart virtual machine<br>
>><br>
>> As a desktop user I want to be able to restart the
virtual machine. This is<br>
>> important in cases in which the applications running on
the virtual machine<br>
>> blocks its operation for some reason (specially when
using Windows virtual<br>
>> machines, which happens to be a very common case).<br>
><br>
> If you're talking about forcing restart when the guest is not
co-operating<br>
> then this is just the same as item 4).<br>
><br>
> If the guest is co-operating, then invoking virDomainReboot
is exactly<br>
> equivalent to just initiating a reboot from inside the guest.<br>
><br>
>> 3) Shutdown<br>
>><br>
>> As a desktop user I want to be able to shutdown the
virtual machine. The use<br>
>> case here is similar to the one above: sometimes it is
needed to simply turn<br>
>> off the virtual machine to recover from a bad behaving
state. Also, it is<br>
>> intuitive for myself that I would be able to shutdown the
virtual machine the<br>
>> same way I do with my desktop/laptop. More importantly,
this is the more<br>
>> effective way to free up resources being used by the
running virtual machine.<br>
><br>
> Same comments as 2).</span><br>
<br>
Well, if an user can perform #1, #2, and #3 from inside the VM, why<br>
shouldn't we provide an easy way for he/she does the same from the<br>
virtual interface? In the end, that would be similar to hit
power/reset<br>
button if the user was in front of the machine.<br>
<br>
On the other hand, I understand the concerns from Doug Goldstein on
this<br>
respect. Although in the majority of Linux distros I've seen till
now a<br>
user with access to the machine console can suspend/restart/shutdown
the<br>
machine, this might not be the general case for all the OSes.<br>
<span style="white-space: pre;">><br>
><br>
>> 4) Forced shutdown<br>
>><br>
>> As a desktop user I want to be able to forcefully turn
off the running virtual<br>
>> machine. This is important in cases where the virtual
machine is not responding<br>
>> anymore, e.g. BSOD.<br>
><br>
> Yep, I can see this could be useful.<br>
><br>
>> 5) Delete Virtual Client<br>
>><br>
>> As a desktop user I might be interested in deleting the
current virtual<br>
>> machine. This is important when, for instance, IT is
deploying a new version of<br>
>> the virtual machine and I need to decide whether I want
to continue using the<br>
>> old one, whether I want both versions (temporarily or in
a definitive way), or<br>
>> whether I would, eventually, destroy the old machine and
start using the new<br>
>> one.<br>
><br>
> This is a difficult one in general. While it is easy enough
to delete the<br>
> definition of the VM, there's the question of what todo with
the storage<br>
> that goes along with it.</span><br>
<br>
I would say that, in general, we should allow the user to choose
whether<br>
he/she wants to delete the storage. If the user doesn't have enough<br>
permission in order to do that, we just show a message error. I
think<br>
this is similar to what happens with virt-manager today.<br>
<span style="white-space: pre;">><br>
><br>
>> 6) Create shortcut on Desktop<br>
>><br>
>> As a desktop user I want to be able to easily access my
virtual machines.<br>
>> Ideally I would be able to do that from a desktop
application launcher shortcut<br>
>> that would: 1) Check if the virtual machine is running
and, if not running,<br>
>> start it; 2) Connect to the virtual machine console.<br>
>><br>
>> This desktop shortcut will be pre-configured by IT in my
machine, but I need an<br>
>> easy way to recover it if I mistakenly delete it.<br>
>><br>
>> Notice that the desktop shortcut would led me directly to
the virtual machine<br>
>> console viewer with all the features I am interested in.
I don't want to look<br>
>> on all the complexities shown by the virt-manager
management window, for<br>
>> instance.<br>
><br>
> I think your talk about shortcuts is a red-herring here. This
can be simply<br>
> described as "Start the VM upon connect, if not already
running".<br>
><br>
>> 7) Changes the console viewer exit routine to shutdown
the guest when the<br>
>> application is terminated.<br>
>><br>
>> As a desktop user it is counter intuitive that the
virtual machine continues to<br>
>> run when I left the console viewer application. I am used
that when I close an<br>
>> application all the resources being used by it are also
freed up. In that case,<br>
>> I would want to link the viewer exit routine to the
virtual machine shutdown<br>
>> action.<br>
>><br>
>> Of course that this might be configurable, as little bit
more advanced desktop<br>
>> user might understand the fact that the virtual machine
can continue to run<br>
>> even though the viewer is closed.<br>
>><br>
>> 8) Leave virtual machine running in the background<br>
>><br>
>> As a desktop user, I want to be able to quit the viewer
application but leave<br>
>> the virtual machine running. This is the default behavior
in viewers today, but<br>
>> if we introduce the use case #7 (which is interestingly a
cause of a good<br>
>> amount of desktop users' requests) and the user
configures it to be the default<br>
>> behavior, we need to leave a way for myself to keep the
virtual machine running<br>
>> while I quit the viewer application.<br>
><br>
>><br>
>> 9) USB redirection functionality<br>
>><br>
>> As a desktop user I want to be able to attach a USB
device in my laptop/desktop<br>
>> and get it available in the running guest if the console
viewer has the UI<br>
>> focus at the time the USB device is attached. I would
also be able to manually<br>
>> select which USB devices already attached to the host I
want to make available<br>
>> to the guest.<br>
>><br>
>> Current development status:<br>
>><br>
>> Use cases #1, #2, #3, and #4 are currently implemented in
virt-manager console<br>
>> viewer. It would be useful though to have a way to open
it without opening the<br>
>> virt-manager management window.<br>
>><br>
>> Use case #5 is currently implemented in virt-manager
management window, but<br>
>> this is not a window in which a desktop user would be
interested in as it is<br>
>> too complex for the average desktop user.<br>
>><br>
>> Use case #9 is currently implemented only in virt-viewer.<br>
>><br>
>> Use cases #6, #7, and #8 are currently not implemented in
any tools.<br>
><br>
> It is quite a perfect fit, but in general I think I'd
classify your<br>
> arguments as being "Allow the admin todo anything to a VM,
that he<br>
> could do to a physical machine if he had physical access".</span><br>
<br>
Yes, based on the latest discussions, I agree.<br>
<span style="white-space: pre;">><br>
> Virt-viewer as an application is really aiming at "Allow a
user to<br>
> interact with a VM as he would with a physical 'kiosk'
display". ie<br>
> it presents you access to use the desktop, but provides no
physical<br>
> interaction / lifecycle control</span><br>
<br>
Ok.<br>
<span style="white-space: pre;">><br>
><br>
> I still believe that virt-manager could be made to address
these, or<br>
> alternatively GNOME Boxes also addresses much of this. The
problem is<br>
> though, that neither of these applications are really
ammenable to<br>
> running on Windows.</span><br>
<br>
Ok... actually I didn't tried GNOME Boxes yet... but this was
already in<br>
my "to do" list (specially as you and Doug Goldstein suggested it
might include<br>
some of the features I am looking for.<br>
<span style="white-space: pre;">><br>
> I'm kind of loathe to suggest this, but it kind of seems like
you'd<br>
> be served by a new application "virt-control", which would
basically<br>
> be the virt-viewer, but with all the extra features you
describe.<br>
> This could even be done as part of the virt-viewer codebase,
so that<br>
> we don't end up duplicating too much code. We already have 2
frontends<br>
> to our virt-viewer codebase - remote-viewer & virt-viewer
- so adding<br>
> a 3rd - virt-control wouldn't be the end of the world,
assuming we<br>
> still shared that 95% of the code.</span><br>
<br>
Ok... at the same time, before going down this path, I would try to<br>
implement some of these features in the virt-manager console viewer.<br>
From what I heard in the latest e-mails on this thread, it seems
that<br>
everybody agrees that, although these features might not fit well on<br>
virt-viewer, they are kind of already available or should fit in<br>
virt-manager. So, before creating a 3rd frontend for virt-viewer, I
am<br>
going to try to fit my requirements on virt-manager console viewer.<br>
<br>
I think this option would be less intrusive and might be simpler.<br>
<br>
Best regards,<br>
<br>
Leonardo Garcia<br>
<span style="white-space: pre;">><br>
><br>
> Regards,<br>
> Daniel</span><br>
<br>
<br>
</body>
</html>