[libvirt] Using Xen config files

Matthew Donovan matthew at atc-nycorp.com
Wed Aug 20 15:35:17 UTC 2008


Thanks for the quick reply!

I set the LIBVIRT_DEBUG flag to 1 and ran it again.  (The output is below.)


One other thing I can think to mention is that I'm using version 0.4.4-2,
installed with yum.  Maybe I should try compiling and installing from
source?

Thanks again!
-matthew

[root at grape ~]$ gcc -g virt_test.c -lvirt && ./a.out
DEBUG: libvirt.c: virInitialize (register drivers)
DEBUG: xen_internal.c: xenHypervisorInit (Using new hypervisor call: 30001
)
DEBUG: xen_internal.c: xenHypervisorInit (Using hypervisor call v2, sys ver3
dom ver5
)
DEBUG: libvirt.c: virConnectOpen (name=xen:///)
DEBUG: libvirt.c: do_open (name "xen:///" to URI components:
  scheme xen
  opaque (null)
  authority (null)
  server (null)
  user (null)
  port 0
  path /
)
DEBUG: libvirt.c: do_open (trying driver 0 (Test) ...)
DEBUG: libvirt.c: do_open (driver 0 Test returned DECLINED)
DEBUG: libvirt.c: do_open (trying driver 1 (QEMU) ...)
DEBUG: libvirt.c: do_open (driver 1 QEMU returned DECLINED)
DEBUG: libvirt.c: do_open (trying driver 2 (Xen) ...)
DEBUG: xen_unified.c: xenUnifiedOpen (Trying hypervisor sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated hypervisor sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Trying XenD sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated XenD sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Trying XS sub-driver)
DEBUG: xen_unified.c: xenUnifiedOpen (Activated XS sub-driver)
DEBUG: libvirt.c: do_open (driver 2 Xen returned SUCCESS)
DEBUG: libvirt.c: do_open (network driver 0 Test returned DECLINED)
DEBUG: libvirt.c: do_open (network driver 1 QEMU returned DECLINED)
DEBUG: remote_internal.c: doRemoteOpen (proceeding with name = xen:///)
DEBUG: libvirt.c: do_open (network driver 2 remote returned SUCCESS)
DEBUG: libvirt.c: do_open (storage driver 0 Test returned DECLINED)
DEBUG: libvirt.c: do_open (storage driver 1 storage returned DECLINED)
DEBUG: libvirt.c: do_open (storage driver 2 remote returned SUCCESS)
DEBUG: libvirt.c: virDomainDefineXML (conn=0x96fe478, xml=<domain
type='xen'><name>fc8.conf</name><os><type>hvm</type><loader>/usr/lib/xen/boo
t/hvmloader</loader><boot
dev='hd'/></os><memory>1024</memory><vcpu>1</vcpu><on_poweroff>destroy</on_p
oweroff><on_reboot>restart</on_reboot><on_crash>restart</on_crash><features>
<pae/><acpi/><apic/></features><clock
sync="localtime"/><devices><emulator>/usr/lib/xen/bin/qemu-dm</emulator><int
erface type='bridge'><source bridge='xenbr0'/><script
path='vif-bridge'/></interface><disk type='block'><source
dev='/dev/vgvms/fc8'/><target dev='hda'/></disk><disk type='block'
device='cdrom'><source dev='/dev/cdrom'/><target
dev='hdc'/><readonly/></disk><graphics type='vnc'/></devices></domain>)
DEBUG: libvirt.c: virDomainLookupByName (conn=0x96fe478, name=fc8.conf)
DEBUG: hash.c: __virGetDomain (New hash entry 0x9702a18)
DEBUG: libvirt.c: virDomainCreate (domain=0x9702a18)
DEBUG: libvirt.c: virDomainGetInfo (domain=0x9702a18, info=0xbfa2b658)
state = 0
DEBUG: libvirt.c: virConnectClose (conn=0x96fe478)
DEBUG: hash.c: virUnrefConnect (unref connection 0x96fe478 xen:/// 2)


> -----Original Message-----
> From: Richard W.M. Jones [mailto:rjones at redhat.com] 
> Sent: Wednesday, August 20, 2008 9:49 AM
> To: Matthew Donovan
> Cc: libvir-list at redhat.com
> Subject: Re: [libvirt] Using Xen config files
> 
> On Wed, Aug 20, 2008 at 08:35:46AM -0400, Matthew Donovan wrote:
> > I am trying to programmatically start Xen guest VMs (HVM) 
> with libvirt (on
> > Fedora Core 8) and I'm having some trouble with it. I've 
> included my code
> > below.  Essentially, the domain seems to get created 
> correctly but it
> > doesn't seem to run.
> >
> > I don't receive any error messages from the libvirt
> > functions but the VM does not get any CPU time (as shown 
> with "xm list").  
> > 
> > [root at grape ~]$ xm list
> > Name                                        ID   Mem VCPUs  
>     State
> > Time(s)
> > Domain-0                                     0  1462     2  
>    r-----
> > 1313.5
> > fc8.conf                                     7   128     1  
>    ------
> > 0.0
> > 
> > Can someone explain what I'm doing wrong here?  I've tried 
> to get this
> > working with linux and windows guests with the same results.
> 
> That's really strange.  Your program looks correct to me (but see my
> comment about error handling below).  One thing you can do is to run
> your program after first setting the environment variable
> LIBVIRT_DEBUG=1 which will cause all calls to libvirt to be printed
> out.  Just to make sure you are actually calling the functions that
> you think you are calling.
> 
> > I've seen references on this mailing list to libvirt's 
> ability to handle Xen
> > configuration files but I haven't seen anything in the API 
> documentation or
> > public header files that refer to it.  Is there a public 
> interface to
> > specifying a configuration file?
> 
> No there isn't.  This ability refers to old versions of Xen which used
> /etc/xen.  We have a driver that can parse files from here and present
> those as inactive ("defined" but not running) domains, eg.  when you
> do "virsh list".
> 
> For all other uses, use the libvirt XML configuration format.  The
> advantage is that it will keep working with other types of
> virtualization.
> 
> >     domain = virDomainDefineXML (con, fedora);
> >     if (!domain) {
> >         virErrorPtr err = virGetLastError ();
> >         printf ("virDomainDefineXML failed: %s\n",
> >                 err->message);
> 
> By the way, this error reporting is wrong.  Confusingly there are two
> levels of errors stored by virterror, a global error and a
> per-connection error.  The global error is only used where you don't
> have a virConnectPtr object (almost the only time is just after
> virConnectOpen fails, when conn == NULL).  The rest of the time you
> should use virConnGetLastError:
> 
>   http://libvirt.org/html/libvirt-virterror.html#virConnGetLastError
> 
> Rich.
> 
> -- 
> Richard Jones, Emerging Technologies, Red Hat  
> http://et.redhat.com/~rjones
> virt-top is 'top' for virtual machines.  Tiny program with many
> powerful monitoring features, net stats, disk stats, logging, etc.
> http://et.redhat.com/~rjones/virt-top
> 




More information about the libvir-list mailing list