[libvirt] [RFC][scale] new API for querying domains stats

Daniel P. Berrange berrange at redhat.com
Fri Jul 4 16:21:30 UTC 2014


On Fri, Jul 04, 2014 at 12:13:32PM -0400, Francesco Romani wrote:
> ----- Original Message -----
> > From: "Richard W.M. Jones" <rjones at redhat.com>
> > To: "Daniel P. Berrange" <berrange at redhat.com>
> > Cc: libvir-list at redhat.com, "Francesco Romani" <fromani at redhat.com>
> > Sent: Friday, July 4, 2014 1:39:57 PM
> > Subject: Re: [libvirt] [RFC][scale] new API for querying domains stats
> 
> > > > What would help for us:
> > > > 
> > > >  - A way to get information for multiple objects in a single domain
> > > > 
> > > >  - A way to get information for multiple objects across multiple domains
> > > 
> > > I'd say that we want something similar to the virDomainListAllDomains()
> > > API for stats. ie we shouldn't try to pass in the full list of domains
> > > or paths we want info for. We should just list all domains, optionally
> > > using flags to filter based on some characteristic, eg exclude inactive.
> > > Similarly always list stats for all disks.
> > 
> > FYI for virt-top we only care about stats of all active domains, and
> > we only care about all disks & all network interfaces for domains
> > (ie. never any subset).
> > 
> > We also collect CPU time and memory usage per domain.
> 
> Is the same for VDSM. VDSM takes ownership of all the domain on an host,
> so all it never does any kind of filtering or consider subsets of any kind.
> 
> However, a question here about bulk APIs.
> One cornerstone of oVirt is shared storage (NFS, ISCSI...); another is qemu/kvm,
> and COW images are supported (probably even the default, need to check).
> 
> Due to storage being unavailable because a network outage, it happened that
> virDomainGetBlockInfo blocked beyond recover.
> 
> On such scenarios, how will a bulk API behave? There will be a timeout or
> something else?

It depends on the storage and the way it is configured. If NFS is mounted
with 'hard' + 'nointr' any call libvirt makes to dead storage will get
stuck in an uninterruptable sleep in kernel space. There's no way for
libvirt to time out since by the very definition of 'hard' mount option
it does not time out. If you mount with 'soft' then the calls libvirt
makes will time out.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list