[Libvirt-cim] What is the current state of VM guest creation/modification, storage pools, and metrics in Libvirt-CIM?

Kaitlin Rupert kaitlin at linux.vnet.ibm.com
Tue Jan 20 19:14:05 UTC 2009


Medlyn, Dayne (VSL - Ft Collins) wrote:
> Hi,

Hi Dayne, welcome to the list.

> 
> We have been looking into what some of the Libvirt-CIM wholes might be for our needs and possibly how we can help close some of those wholes.  I recently sat in on Dan Smiths presentation on the Libvirt-CIM and need a little bit of clarification.
> 
>>From Dan's presentation it sounds like the ability to create a VM configuration (currently we are most interested in Xen) already exists.  Can someone help me understand what that looks like right now?  I presume it involves something like establishing a 

> configuration, adding components to it (such as memory, CPUs, storage, network, etc.), posting that configuration to host (the xenstore for Xen?), then starting the VM guest.  

The define procedure is done using the DefineSystem() call of the 
Virt_VirtualSystemManagementService provider.  The DefineSystem() call 
takes the following parameters:

SystemSettings - an instance of the Xen_VirtualSystemSettingData class
ResourceSettings - an array of Xen_ResourceAllocationSettingData (RASDs) 
instances
ReferenceConfiguration - a reference to an existing 
Xen_VirtualSystemSettingData instance

The RASDs represent the various resources (disk, CPU, etc) you would 
like your guest to have.

The provider then generates an XML that it passes to libvirt, and 
libvirt handles defining the guest.  The libvirt-cim providers don't 
talk to the Xen components directly; everything is handled through libvirt.


> Does this include configuring to boot from install media? How about configuring for a network boot from which to do an install?

With fully virtualized Xen guests, you can specify the "BootDevice" 
attribute of the Xen_VirtualSystemSettingData instance that is passed in 
for the SystemSettings parameter.  The available options are "fd", "hd", 
"cdrom" or "network".

For paravirtualized guests, the "Bootloader" and "BootloaderArgs" are 
used to specify which bootloader to use and what arguments to pass.

For more info:  http://libvirt.org/formatdomain.html#elementsOS

> Does this interface also support modifying this configuration, either live or off-line?  

Yes, you can add/remove/modify resources of a guest while it is running 
or while it is offline  - as supported by the underlying virtualization 
platform (Xen, KVM, etc).

> Is there mechanism to validate new configurations before committing them?

We don't do any validation as such.  The DefineSystem() call tells 
libvirt to define a guest with the specified options.  If libvirt is 
unable to define the guest, we return an error to the user accordingly.

> 
> Another aspect Dan talked about was Resource Pools.  I realize there is work going on to enhance Resource Pools.  Is the current implementation of Resource Pools limited to storage pools?  What type of storage is supported (iSCSI, NFS, Fibrechannel?, etc.)?

We currently represent the following pools:  disk, network, processor, 
memory, graphics device, and input device pools. Only disk and network 
represent actual virtual pools (as defined by libvirt).

Libvirt supports the following storage types:  dir, fs,netfs,disk,iscsi, 
logical.  All of these pools show up as an instance of the DiskPool class.

libvirt-cim doesn't currently support creation/deletion/modification of 
pools, so a user must create a pool using libvirt tools.  Once the pool 
has been created, libvirt-cim will generate and instance of the DiskPool 
class to represent that pool.

More info on libvirt storage pools:  http://libvirt.org/formatstorage.html

> 
> An area we are looking to help augment is around guest metrics, at least those that can be collected from the host.  Of particular interest are counters.  Is there anyone currently working on this that I should collaborate with?

No one is currently working on metrics.  There was some prior work done 
with Xen metrics for the sblim data-gatherer.   I'm not sure the current 
status of these plugins though.

We definitely haven't given it much thought as to whether it would be 
better to work with the existing data-gatherer framework, or if it would 
be better to develop a set of metrics providers for the libvirt-cim 
project itself.  This is definitely a good topic for additional 
discussion =)

-- 
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list