RE: [libvirt] Using Xen config files

2008-08-22 Thread Matthew Donovan
 Xen and Xen-devel are 3.1.2.

I'm using version 0.4.4 of libvirt.

-matthew

> -Original Message-
> From: Richard W.M. Jones [mailto:[EMAIL PROTECTED] 
> Sent: Friday, August 22, 2008 4:19 AM
> To: Matthew Donovan
> Cc: Daniel P. Berrange; libvir-list@redhat.com
> Subject: Re: [libvirt] Using Xen config files
> 
> On Thu, Aug 21, 2008 at 02:16:55PM -0400, Matthew Donovan wrote:
> > I'm still having problems with this.  I've dug around and 
> found errors in
> > the qemu-dm log.
> > 
> > When I try to start the VM with libvirt, the error I'm getting is:
> > 
> "xs_read(/vm/414e73de-cf1e-487c-87e0-d4ebf7a23576/rtc/timeoffs
> et): read
> > error"
> > 
> > I did a xenstore-ls on the /vm/414e73de-cf1e-487c-87e0-d4ebf7a23576
> > directory and sure enough, rtc/timeoffset is not there.  
> When I start the VM
> > with the Xen config file I used to generate the XML the 
> rtc/timeoffset is
> > there (timeoffset is set to "0").
> 
> Which version of xen, xen-devel, etc?
> 
> Rich.
> 
> -- 
> Richard Jones, Emerging Technologies, Red Hat  
> http://et.redhat.com/~rjones
> virt-df lists disk usage of guests without needing to install any
> software inside the virtual machine.  Supports Linux and Windows.
> http://et.redhat.com/~rjones/virt-df/
> 

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] Using Xen config files

2008-08-22 Thread Richard W.M. Jones
On Thu, Aug 21, 2008 at 02:16:55PM -0400, Matthew Donovan wrote:
> I'm still having problems with this.  I've dug around and found errors in
> the qemu-dm log.
> 
> When I try to start the VM with libvirt, the error I'm getting is:
> "xs_read(/vm/414e73de-cf1e-487c-87e0-d4ebf7a23576/rtc/timeoffset): read
> error"
> 
> I did a xenstore-ls on the /vm/414e73de-cf1e-487c-87e0-d4ebf7a23576
> directory and sure enough, rtc/timeoffset is not there.  When I start the VM
> with the Xen config file I used to generate the XML the rtc/timeoffset is
> there (timeoffset is set to "0").

Which version of xen, xen-devel, etc?

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


RE: [libvirt] Using Xen config files

2008-08-21 Thread Matthew Donovan
I'm still having problems with this.  I've dug around and found errors in
the qemu-dm log.

When I try to start the VM with libvirt, the error I'm getting is:
"xs_read(/vm/414e73de-cf1e-487c-87e0-d4ebf7a23576/rtc/timeoffset): read
error"

I did a xenstore-ls on the /vm/414e73de-cf1e-487c-87e0-d4ebf7a23576
directory and sure enough, rtc/timeoffset is not there.  When I start the VM
with the Xen config file I used to generate the XML the rtc/timeoffset is
there (timeoffset is set to "0").

Is there a way to set that in the XML?  I didn't see it in the online XML
description.

I'm using a slightly different XML description than I had originally so I've
included here (along with the Xen Config file)

Thanks!
-matthew

const char* foo = 
""
"LinuxVM"
"414e73de-cf1e-487c-87e0-d4ebf7a23576"
""
"hvm"
"/usr/lib/xen/boot/hvmloader"
""
""
"512000"
"1"
"shutdown"
"restart"
"restart"
""
""
""
""
""
""
""
"/usr/lib/xen/bin/qemu-dm"
""
""
""
""
""
""
""
""
""
""
""
"";
//serial = "pty" 


int main (int argc, char** argv) 
{
virConnectPtr con;  /* connection to the Xen hypervisor */
virDomainPtr  domain;

virInitialize();

con = virConnectOpen ("xen:///");
if (!con) {
virErrorPtr err = virGetLastError ();
printf ("virConnectOpen failed: %s\n",
err->message);
return -1;
}

domain = virDomainDefineXML (con, foo);
if (!domain) {
virErrorPtr err = virConnGetLastError (con);
printf ("virDomainDefineXML failed: %s\n",
err->message);

} else {

if (virDomainCreate (domain) < 0) {
virErrorPtr err = virConnGetLastError (con);
printf ("virDomainCreate failed: %s\n",
err->message);
} else {
virDomainInfo info = {0};
virDomainGetInfo (domain, &info);
printf ("state = %d\n", info.state);
getchar ();
}
}

virConnectClose (con);
return 0;
}

# Automatically generated xen config file
name = "LinuxVM"
builder = "hvm"
memory = "500"
disk = [ 'phy:/dev/vgvms/LinuxVM,hda,w', ]
vif = [ 'type=ioemu, mac=7A:AB:D0:01:82:98', ]
uuid = "414e73de-cf1e-487c-87e0-d4ebf7a23576"
device_model = "/usr/lib/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1 

vnc=0
sdl=1
stdvga=0

boot="cda"

usbdevice="tablet"

vncunused=1
apic=1
acpi=1
pae=1

vcpus=1
serial = "pty" 
on_reboot   = 'restart'
on_crash= 'restart'





> -Original Message-
> From: Daniel P. Berrange [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, August 20, 2008 1:05 PM
> To: Richard W.M. Jones
> Cc: Matthew Donovan; libvir-list@redhat.com
> Subject: Re: [libvirt] Using Xen config files
> 
> On Wed, Aug 20, 2008 at 04:44:04PM +0100, Richard W.M. Jones wrote:
> > On Wed, Aug 20, 2008 at 11:35:17AM -0400, Matthew Donovan wrote:
> > 
> > It certainly looks OK, and it seems like the domain should run after
> > virDomainCreate.  Have you tried adding a delay of 30 
> seconds just to
> > check if the domain is starting up slowly?
> 
> Yep, that debug suggests the libvirt part of creation has 
> completed OK.
> I think if anything is going wrong, its going to be in XenD's 
> arena. I'd
> recommend looking in /var/log/xen for any further hints of trouble
> 
> Daniel
> -- 
> |: Red Hat, Engineering, London   -o-   
> http://people.redhat.com/berrange/ :|
> |: http://libvirt.org  -o-  http://virt-manager.org  -o-  
> http://ovirt.org :|
> |: http://autobuild.org   -o- 
> http://search.cpan.org/~danberr/ :|
> |: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF 
> F742 7D3B 9505 :|
> 

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] Using Xen config files

2008-08-20 Thread Daniel P. Berrange
On Wed, Aug 20, 2008 at 04:44:04PM +0100, Richard W.M. Jones wrote:
> On Wed, Aug 20, 2008 at 11:35:17AM -0400, Matthew Donovan wrote:
> 
> It certainly looks OK, and it seems like the domain should run after
> virDomainCreate.  Have you tried adding a delay of 30 seconds just to
> check if the domain is starting up slowly?

Yep, that debug suggests the libvirt part of creation has completed OK.
I think if anything is going wrong, its going to be in XenD's arena. I'd
recommend looking in /var/log/xen for any further hints of trouble

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


RE: [libvirt] Using Xen config files

2008-08-20 Thread Matthew Donovan
Found it!  I added serial and console devices to the XML and it appears to
be running.  It's not working completely as expcted but it's doing more than
it was.

Thanks for your help.
-matthew

> -Original Message-
> From: Richard W.M. Jones [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, August 20, 2008 11:44 AM
> To: Matthew Donovan
> Cc: libvir-list@redhat.com
> Subject: Re: [libvirt] Using Xen config files
> 
> On Wed, Aug 20, 2008 at 11:35:17AM -0400, Matthew Donovan wrote:
> > Thanks for the quick reply!
> > 
> > I set the LIBVIRT_DEBUG flag to 1 and ran it again.  (The 
> output is below.)
> [...]
> > [EMAIL PROTECTED] ~]$ 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= > 
> type='xen'>fc8.confhvm/u
> sr/lib/xen/boo
> > t/hvmloader > 
> dev='hd'/>10241 >destroy > 
> oweroff>restartrestart ash>
> >  > 
> sync="localtime"/>/usr/lib/xen/bin/qemu-dm<
> /emulator> > erface type='bridge'>

Re: [libvirt] Using Xen config files

2008-08-20 Thread Richard W.M. Jones
On Wed, Aug 20, 2008 at 11:35:17AM -0400, Matthew Donovan wrote:
> Thanks for the quick reply!
> 
> I set the LIBVIRT_DEBUG flag to 1 and ran it again.  (The output is below.)
[...]
> [EMAIL PROTECTED] ~]$ 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= type='xen'>fc8.confhvm/usr/lib/xen/boo
> t/hvmloader dev='hd'/>10241destroy oweroff>restartrestart
>  sync="localtime"/>/usr/lib/xen/bin/qemu-dm erface type='bridge'>

RE: [libvirt] Using Xen config files

2008-08-20 Thread Matthew Donovan
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

[EMAIL PROTECTED] ~]$ 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=fc8.confhvm/usr/lib/xen/boo
t/hvmloader10241destroyrestartrestart
/usr/lib/xen/bin/qemu-dm)
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:[EMAIL PROTECTED] 
> Sent: Wednesday, August 20, 2008 9:49 AM
> To: Matthew Donovan
> Cc: libvir-list@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").  
> > 
> > [EMAIL PROTECTED] ~]$ xm list
> > NameID   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

Re: [libvirt] Using Xen config files

2008-08-20 Thread Richard W.M. Jones
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").  
> 
> [EMAIL PROTECTED] ~]$ xm list
> NameID   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

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] Using Xen config files

2008-06-26 Thread Daniel Veillard
On Thu, Jun 26, 2008 at 12:06:04AM -0400, Thomas Moyer wrote:
> Is it possible to directly utilize the Xen config files when using the  
> python bindings for libvirt? If not, is there any automated method of  
> converting the Xen config to a libvirt XML config?

  If the config files are installed in /etc/xen/ and assuming they
use only declaration and no other Python code, then libvirt if compiled
with xen support will look at them as definitions for domains. That
way you can just use for example 'virsh dumpxml' to get the associated
XML for the defined domain. Basically at the API level you do a domain
lookup based on the name (virDomainLookupByName) or UUID, and then 
call virDomainGetXMLDesc() on the result. Those calls are available at the
python binding.
  But there is no direct API to convert Xen config files to the XML,
and Xen config files being python code actually this didn't made 
sense to try to expose it at the API level which is defined in C. The
definitions really use XML as the format for libvirt, and as much
as possible they are not tied to the specifics of a given hypervisor.
   http://libvirt.org/formatdomain.html

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard  | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/

--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list