[libvirt] [virt-tools-list] Tracking VM installations

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Thu Jul 5 01:49:49 UTC 2012


On Thu, Jul 5, 2012 at 12:09 AM, Richard W.M. Jones <rjones at redhat.com> wrote:
> On Wed, Jul 04, 2012 at 10:45:29PM +0300, Zeeshan Ali (Khattak) wrote:
>> Hi,

Hey Richard,

>> We have a requirement in Boxes for showing progress bars on VMs under
>> installation:
>>
>> https://github.com/gnome-design-team/gnome-mockups/raw/master/boxes/boxes-install6.png
>> https://bugzilla.gnome.org/show_bug.cgi?id=679107
>>
>> However, we are bit clueless on how that could be achieved. The only
>> idea I have is to know the number of passes (reboots) and typical disk
>> usage in each pass for "every" (we only do this for express installs
>> so we don't need this for all) OS and estimate the progress based on
>> that knowledge. If that idea is worth looking into, we'll need this
>> information in libosinfo and hence me cross-posting this to
>> virt-tools-list.
>>
>> Other ideas welcome! Keep in mind that we don't need to be very
>> accurate, just accurate enough to not annoy the user.
>
> It's a tricky one :-)

Indeed. :)

> You can take a screenshot of the guest (assuming a visual
> installation).  Oz does this.  Displaying an icon-sized screenshot
> might be a surrogate for displaying a progress bar, since many
> installers will display a progress bar themselves.
> https://github.com/clalancette/oz/blob/74d99497840e3bade4d679ed94cf9a4628827bcc/oz/Guest.py#L624

Well they usually don't do it from start to finish. E.g Anaconda show
separate progress bars at different stages but mainly at package
installations. Although our progressbar won't be very different from
that if we base it on disk allocation but a. ours will be a lot more
visible and it'll be there from the start.

> You can use libguestfs (specifically, virt-df) to display the amount
> of disk space used in the guest.

For target disk, we use libvirt's storage volume API and that provides
us API to get current allocation.

>  For many installers, disk space will
> monotonically increase as it proceeds, although of course you've no
> idea what the final disk usage will be.  You can turn this into a
> pulse-mode progress bar.
> http://libguestfs.org/virt-df.1.html

Well, that would be too easy then. :) If we fail to find any way to do
what we want, we can think about doing pulsemode progressbar instead.

> Oz also uses network and disk activity to tell if the installer is
> making progress.
> https://github.com/clalancette/oz/blob/74d99497840e3bade4d679ed94cf9a4628827bcc/oz/Guest.py#L569

Oh, this would be another thing we'd want to do as well: Inform the
user if installer is hung for too long and provide option to delete
the VM or ignore..

> Finally I've always thought it would be a good idea if guests
> communicated information down to the host about progress, whether that
> is progress booting or progress installing.  There is (on PC hardware)
> even an I/O port reserved for this purpose (port 0x80)!  You'd have to
> get buy-in and get it upstream in qemu and every installer out there.
> ttp://stackoverflow.com/questions/6793899/what-does-the-0x80-port-address-connects/6796109#6796109

That would indeed be awesome but it seems way too much work and fight
(not to mention, its impossible to fix this in proprietary OSs if they
don't already support this) for just one progress bar.

Thanks for your input btw!

-- 
Regards,

Zeeshan Ali (Khattak)
FSF member#5124




More information about the libvir-list mailing list