Re: [Libvir] virsh start problem + patch

2008-03-11 Thread Richard W.M. Jones

OK, I think that's a good explanation but I'll leave it to Dan to
comment 'coz he wrote the code ...

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v

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


Re: [Libvir] [PATCH] Another Report error in virsh.c code.

2008-03-11 Thread Richard W.M. Jones
On Tue, Mar 11, 2008 at 05:09:45PM +0900, S.Sakamoto wrote:
 BTW, I think another message is needed here to inform the internal
 error to user.
 For example, the migrate command shows the following message when
 desturi is missing:
 migrate: Missing desturi
 But it does not show the error-message even though migrateuri
 is missing because migrateuri is *not* a necessary option.

I'm not sure I follow what is wrong.  'desturi' is required, so if
missing we get an error.  'migrateuri' is not required, so there is no
error if it is missing.  And that's what the code does.

 So, I want to unify virsh.c with the following rules,
   - for necessary option
 show the message if error occur
   - for unnecessary option
 do not show the message even if error occur

Do you have a patch or another way to explain this, because I'm afraid
I don't follow what you mean.

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: [Libvir] [PATCH] Another Report error in virsh.c code.

2008-03-11 Thread S.Sakamoto
 On Tue, Mar 11, 2008 at 05:09:45PM +0900, S.Sakamoto wrote:
  BTW, I think another message is needed here to inform the internal
  error to user.
  For example, the migrate command shows the following message when
  desturi is missing:
  migrate: Missing desturi
  But it does not show the error-message even though migrateuri
  is missing because migrateuri is *not* a necessary option.
 
 I'm not sure I follow what is wrong.  'desturi' is required, so if
 missing we get an error.  'migrateuri' is not required, so there is no
 error if it is missing.  And that's what the code does.
 
  So, I want to unify virsh.c with the following rules,
- for necessary option
  show the message if error occur
- for unnecessary option
  do not show the message even if error occur
 
 Do you have a patch or another way to explain this, because I'm afraid
 I don't follow what you mean.
Sorry, My explanation is not enough...

What I meant to say was that I want to output to output error-message
at vcpupin as like migrate.

I wish it is unified as follows.

***migrate***
2225desturi = vshCommandOptString (cmd, desturi, found);
2226if (!found) {
2227vshError (ctl, FALSE, %s, _(migrate: Missing desturi));
2228goto done;
2229}

***vcpupin***
1731if (!(cpulist = vshCommandOptString(cmd, cpulist, NULL))) {
+   vshError (ctl, FALSE, %s, _(vcpupin: Missing cpulist));
1732virDomainFree(dom);
1733return FALSE;
1734}


Shigeki Sakamoto.

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


Re: [Libvir] PATCH: Don't make connection read-only when non-root

2008-03-11 Thread Daniel Veillard
On Mon, Mar 10, 2008 at 11:49:54AM +, Richard W.M. Jones wrote:
 On Sun, Mar 09, 2008 at 09:05:02PM +, Daniel P. Berrange wrote:
  The virsh commands has long forced the connection to be read-only if running
  as non-root. This is bogus because it is perfectly capable of authenticating
  full read-write connections as non-root since we gained kerberos/policykit
  support. The user can always use the explicit --readonly flag if they only
  want a read only connection
  
  Dan.
  
  Index: src/virsh.c
  ===
  RCS file: /data/cvs/libvirt/src/virsh.c,v
  retrieving revision 1.135
  diff -r1.135 virsh.c
  6048,6054d6047
   #ifndef __MINGW32__
   /* Force a non-root, Xen connection to readonly */
   if ((ctl-name == NULL ||
!strcasecmp(ctl-name, xen))  ctl-uid != 0)
ctl-readonly = 1;
   #endif
 
 Yes.  I was tempted to just remove this bogosity before but instead I
 just patched it out for Windows.

 okay

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


Re: [Libvir] PATCH: Fix xen unified driver open logic

2008-03-11 Thread Daniel Veillard
On Mon, Mar 10, 2008 at 07:09:36PM +, Daniel P. Berrange wrote:
 When adding PolicyKit support we disabled the proxy driver, but did not
 correctly fix up the Xen unified driver. The result is that it is still
 trying to run the proxy setuid helper which doesn't exist and thus it fails
 the open operation before the remote driver gets the opportunity to process
 the URI. I attempted to fix this by just disabling the proxy driver in the
 unified driver, but came to the conclusion the logic of the current code is
 just not flexible enough for what we need to be able todo  these days.
 
 THe core problem is the 'for(;;)' loop iterating over the drivers - it
 already has several special cases in the loop body to skip drivers, or
 ignore errors and adding more special cases is making my mind hurt trying
 to trace the logic.
 
 So I have removed the loop, and encode the desired logic explicitly. The
 diff a little unpleasant to read, so to summarize the logic is thus:
 
  - If root only, try open the hypervisor driver
  - Failure to open is fatal, do not try other drivers

  hum, I'm not 100% sure of that, an old libvirt version might still be
able to work though xend in face of an hypervisor change it can't handle,
we had the problem for example with 0.4.0 on xen-3.2, there was side effects
but it was basically working without hypervisor access...

  - Try to open the XenD driver
   - If XenD suceeds
   - If XenD  3.0.4, then open the XM driver for inactive domains
   - Try to open the XS driver
= Failure to open is fatal if root
   - Else XenD fails
   -.If proxy is compiled in, try to open proxy
 = Failure to open is fatal
 
 
 This should result in one of the following combinations of drivers being
 activated:
 
  root: (HV + XenD + XS)
  root: (HV + XenD + XS + XM)

  root: (XenD + XS [+XM]) should still be allowed IMHO,

  non-root: (XenD)
  non-root: (XenD + XS)
  non-root: (proxy)
 
 If non-root, and the proxy is not compiled in, we'll hand off to the remote
 driver. Any other scenario will result in an explicit fail.

  okay except for the exception I sugegst to add back,

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


[Libvir] Accessing qemu from windows

2008-03-11 Thread Gabriel Kaufmann
Hi,

I'm running virsh from linux machine with the URI  
qemu+tcp://user:password@ip/system
From a linux machine  (not the same that runs the libvirtd deamon) with 
libvirt 0.3.0, this URI allows me to connect.
In the other hand, using the Virsh.exe (that comes with 
ocaml-libvirt-0.4.0.1.exehttp://libvirt.org/sources/ocaml/ocaml-libvirt-0.4.0.1.exe
  ) on Windows XP, I receive the error
'Virtualization error: libvirt: VIR_ERROR_NO_CONNECT: VIR_FROM_NONE: could not 
connect to qemu:///system?'

Is it a known bug, or is it configuration problem on my server?

Best Regards,

Gabriel Kaufmann
Software Engineer
[EMAIL PROTECTED]mailto:[EMAIL PROTECTED]

Ericom Software
Tel (Dir): +972 2 591 1700 Ext 754
Tel (Main): +972 2 591 1700
http://www.ericom.com

Access Done Right
Empower Enterprise-Wide Access to Microsoft(r) Terminal Server, Virtual 
Desktops and Legacy Applications
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [Libvir] Need Help on Error handling.

2008-03-11 Thread Ajishrao.r
Thanks for the reply, I will see it and then will let you know.

On Mon, Mar 10, 2008 at 6:23 PM, Chris Lalancette [EMAIL PROTECTED]
wrote:

 Richard W.M. Jones wrote:
  On Sun, Mar 09, 2008 at 10:52:33PM +0530, Ajishrao.r wrote:
  Hi,
I am using libvirt to manage, The Hypervisor, Can Any one Help me
  about handling error? My main questions are.
 
  ---  What is Library level Error Handling?
  ---  Any Example to use
 
  void virSetErrorFunc (void * userData,virErrorFunc
  http://libvirt.org/html/libvirt-virterror.html#virErrorFunc handler)
 
  I'm not aware of any example code which uses this.

 Actually, there is example code right in the libvirt source tree.  In
 src/virsh.c, virSetErrorFunc() is used to set up the virshErrorHandler
 callback.
  I've used that as an example before for my own code :).

 Chris Lalancette




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


[libvir] Could not connect to xend

2008-03-11 Thread Anton Protopopov
Hi.

When I tried to run virsh to connect to xen, I have got an error --- libvirt
failed to open connection to xend.
Here is output with DEBUG enabled. What kind of additional information do
you need?

[EMAIL PROTECTED] ~]# LIBVIRT_DEBUG=SPAM virsh
DEBUG: libvirt.c: virInitialize (register drivers)
DEBUG: libvirt.c: virConnectOpenAuth (name=(null), auth=0xb7ed79d8, flags=0)
DEBUG: libvirt.c: do_open (Probed xen:///)
DEBUG: libvirt.c: do_open (Using xen:/// as default URI, 1 hypervisor found)
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 Xen sub-driver 0)
DEBUG: xen_unified.c: xenUnifiedOpen (Xen sub-driver 0 open ok
)
DEBUG: xen_unified.c: xenUnifiedOpen (trying Xen sub-driver 2)
libvir: Xen Daemon error : internal error failed to connect to xend
libvir: Xen Daemon error : internal error failed to connect to xend
DEBUG: xen_unified.c: xenUnifiedOpen (Xen sub-driver 2 open failed
)
DEBUG: libvirt.c: do_open (driver 2 Xen returned ERROR)
DEBUG: hash.c: virUnrefConnect (unref connection 0x807bf88 xen:/// 1)
DEBUG: hash.c: virReleaseConnect (release connection 0x807bf88 xen:///)
error: failed to connect to the hypervisor
--
Libvir-list mailing list
Libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvir] Could not connect to xend

2008-03-11 Thread Daniel P. Berrange
On Tue, Mar 11, 2008 at 05:23:24PM +0300, Anton Protopopov wrote:
 Hi.
 
 When I tried to run virsh to connect to xen, I have got an error --- libvirt
 failed to open connection to xend.
 Here is output with DEBUG enabled. What kind of additional information do
 you need?
 
 [EMAIL PROTECTED] ~]# LIBVIRT_DEBUG=SPAM virsh
[snip]
 DEBUG: libvirt.c: do_open (trying driver 2 (Xen) ...)
 DEBUG: xen_unified.c: xenUnifiedOpen (trying Xen sub-driver 0)
 DEBUG: xen_unified.c: xenUnifiedOpen (Xen sub-driver 0 open ok
 )
 DEBUG: xen_unified.c: xenUnifiedOpen (trying Xen sub-driver 2)
 libvir: Xen Daemon error : internal error failed to connect to xend
 libvir: Xen Daemon error : internal error failed to connect to xend
 DEBUG: xen_unified.c: xenUnifiedOpen (Xen sub-driver 2 open failed
 )
 DEBUG: libvirt.c: do_open (driver 2 Xen returned ERROR)

So XenD driver failed - check

 - That XenD is running
 - That /etc/xen/xend-config.sxp has '(xend-unix-server yes)' set
 - That the XenD process has /var/lib/xend/xend-socket open (use lsof)

Dan.
-- 
|: Red Hat, Engineering, Boston   -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: [Libvir] [PATCH] Another Report error in virsh.c code.

2008-03-11 Thread Richard W.M. Jones
On Tue, Mar 11, 2008 at 07:19:57PM +0900, S.Sakamoto wrote:
 I wish it is unified as follows.
 
 ***migrate***
 2225desturi = vshCommandOptString (cmd, desturi, found);
 2226if (!found) {
 2227vshError (ctl, FALSE, %s, _(migrate: Missing desturi));
 2228goto done;
 2229}
 
 ***vcpupin***
 1731if (!(cpulist = vshCommandOptString(cmd, cpulist, NULL))) {
 +   vshError (ctl, FALSE, %s, _(vcpupin: Missing cpulist));
 1732virDomainFree(dom);
 1733return FALSE;
 1734}

So the problem is just the text in the error message?  ie. Instead
of:

  $ virsh vcpupin
  error: command 'vcpupin' requires domain option
  error: command 'vcpupin' requires vcpu option
  error: command 'vcpupin' requires cpulist option

you want it to print a different message, as in:

vcpupin: Missing cpulist

?

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: [Libvir] Snapshots for Xen and KVM

2008-03-11 Thread Richard W.M. Jones
On Tue, Mar 11, 2008 at 12:54:37PM +0200, Gabriel Kaufmann wrote:
 Does anyone knows if Xen and KVM support snapshots (regardless if
 Libvirt provides the API for them).

It's currently on the Xen to-do list, but apart from some research
papers I'm not aware of them implementing it.  Perhaps recently.
Checkpointing is tricky to get right because you have to take a
snapshot of the memory and disk at exactly the same moment.

Note that neither Xen's live migration nor the domain save features
are real checkpoints, because they both only consider the memory.

 If yes, will libvirt add API for it?

If it's supported, then why not.

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v

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


Re: [Libvir] Accessing qemu from windows

2008-03-11 Thread Richard W.M. Jones
On Tue, Mar 11, 2008 at 01:00:23PM +0200, Gabriel Kaufmann wrote:
 I'm running virsh from linux machine with the URI  
 qemu+tcp://user:password@ip/system
 From a linux machine  (not the same that runs the libvirtd deamon) with 
 libvirt 0.3.0, this URI allows me to connect.
 In the other hand, using the Virsh.exe (that comes with 
 ocaml-libvirt-0.4.0.1.exehttp://libvirt.org/sources/ocaml/ocaml-libvirt-0.4.0.1.exe
   ) on Windows XP, I receive the error
 'Virtualization error: libvirt: VIR_ERROR_NO_CONNECT: VIR_FROM_NONE: could 
 not connect to qemu:///system?'
 
 Is it a known bug, or is it configuration problem on my server?

I suspect a bug actually.  I only tested remote Xen and remote test
drivers, not remote QEMU.  Can you find out if it's actually trying to
make a remote TCP connection at all?

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


[Libvir] virsh list command of libvirt consumes a lot of CPU in the domain-0

2008-03-11 Thread jean-paul . pigache
Hi all,
I know that this is not a libvirt issue but this badly impacts libvirt 
usage.
Is anyone aware of any status on this issue ? Daniel ?

Here is some history I could get from the libvirt mailing list :

* October 12, 2006 (Daniel Berrange).
I've been trying to track down just why talking to XenD is resulting in so 
much CPU time being
comsumed by both xend  xenstored. As a test case, I'm running 'virsh 
dominfo demo' which results in
a single HTTP request to Xend to fetch domain info, eg 'GET 
/xend/domains/demo'
Run this in a tight loop  I'll see xenstored taking  50% CPU, and XenD 
taking another 11%
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2647 root 16 0 6188 840 464 R 52 0.0 0:55.04 xenstored
11600 root 18 0 259m 7568 1516 S 11 0.2 0:04.53 python
Its not surprising that xend is consuming time since we are making many 
requests per second, but for
an operation which is only doing reads it having so much time attributed 
to xenstored seems very
excessive. So I ran oprofile  collected some data about xenstored:
CPU: AMD64 processors, speed 2211.33 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Cycles outside of halt state) with a unit 
mask of 0x00 (No
unit mask) count 10
samples % image name symbol name
347226 45.9445 ext3 (no symbols)
264664 35.0200 jbd (no symbols)
31778 4.2048 libc-2.5.so memset
10763 1.4241 xenstored main
8884 1.1755 libc-2.5.so _int_malloc
7053 0.9332 libc-2.5.so vfprintf
4264 0.5642 xenstored initialize_set
So almost 80% of xenstored's CPU time is attributed to ext3  journalling 
modules, suggesting
xenstored is doing alot of disk I/O. strace()'ing the xenstored process 
shows the only file it is opening
is:
# strace -p 2647 -e trace=open,rename,unlink
Process 2647 attached - interrupt to quit
open(/var/lib/xenstored/tdb.0x62aa80, O_WRONLY|O_CREAT|O_TRUNC, 0640) = 
13
open(/var/lib/xenstored/tdb.0x62aa80, O_RDWR) = 15
rename(/var/lib/xenstored/tdb.0x62aa80, /var/lib/xenstored/tdb) = 0
unlink(/var/lib/xenstored/tdb.0x62aa80) = -1 ENOENT (No such file or 
directory)
open(/var/lib/xenstored/tdb.0x62b2b0, O_WRONLY|O_CREAT|O_TRUNC, 0640) = 
13
open(/var/lib/xenstored/tdb.0x62b2b0, O_RDWR) = 14
rename(/var/lib/xenstored/tdb.0x62b2b0, /var/lib/xenstored/tdb) = 0
unlink(/var/lib/xenstored/tdb.0x62b2b0) = -1 ENOENT (No such file or 
directory)
...
So basically it is repeatedly copying its persistent TBD database over and 
over again. The TDB on this
system is 128 KB in size and each individual HTTP GET on /xend/domain/demo 
is resulting in 16
copies being made.
Do the maths - 128 * 16 == 2 MB of reads, and 2 MB of writes - for a 
single read in XenD. Now if I
monitor the status of 20 domains, once per second that's causing 40 MB of 
writes  40 MB of reads
every second which is utterly ridiculous  completely non scalable for 
enterprise deployment :-(
There's two problems I see here:
1. Why the need for xenstored to be doing any of this I/O in the first 
place?
If the DB needs to be kept on disk at all, it really needs to have a much 
saner update/transactional
model to only update bits which actually change, rather than re-creating 
the entire DB on every
transaction. But it strikes me that the DB could potentially be kept 
entirely in memory removing the
disk I/O completely. Sure yyou wouldn't be able to restart the daemon 
then, but even today you can't
restart xenstored  expect things to still be working.
2. Why does XenD create sooo many transactions in XenStored for a read op 
?
Having instrumented Xend it sems that the root cause of the problem is the
xen.xend.xenstore.xstransact class. This alllows one to start a 
transaction, do a bunch of
reads/writes  then commit the transaction. At the same time though it has 
a bunch of static
'convenience' methods for read  write which will implicitly start  
commit a transaction. Well
90% of the code in XenD seems to be using these 'convenience' methods 
instead of explicitly
starting a transaction to cover a piece of work - the result is a simple 
GET causes 16 transactions
and an 'xm create' results in 80 transactions. These convenience 
methods are utterly destroying
performance.
Clearly we can't address these for 3.0.3, but I think both of these areas 
need serious work in 3.0.4 if we
want a scalable control plane in Dom0. Fixing the XenD bit looks 
particularly hard because any single
method using the convenience xenstored read functions can be called under 
many different contexts, so
of which needs transactions, others which don't. It ought to be possible 
to trace back all the calls 
make it possible to pass explicit xstransct objects into all calls  then 
kill off the convenience methods.

* Answer, same day (October 12, 2006)

Yes, xenstored is very simple minded in many respects. We will certainly 
be improving this during
3.0.4 development -- I think we can get the costs down very significantly 
for commonplace operations
without enormous effort.

* Avril 25, 2007 (Daniel Berrange)

 Xen 3.0.3 has a 

Re: [Libvir] Accessing qemu from windows

2008-03-11 Thread Richard W.M. Jones
On Tue, Mar 11, 2008 at 06:00:31PM +0200, Gabriel Kaufmann wrote:
 I'm sure it actually makes a remote TCP connection since on the server side I 
 get the error:
 'libvir: error : could not connect to qemu:///system?'

It actually prints this out on the server side?

Can you run the server with the --verbose option, you'll get a lot
more detail about what is happening.

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v

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


Re: [Libvir] Snapshots for Xen and KVM

2008-03-11 Thread Bryan Kearney
Is there a means of snapshotting before you start up xen, and then 
reverting after you shut it down?


-- bk


Richard W.M. Jones wrote:

On Tue, Mar 11, 2008 at 12:54:37PM +0200, Gabriel Kaufmann wrote:

Does anyone knows if Xen and KVM support snapshots (regardless if
Libvirt provides the API for them).


It's currently on the Xen to-do list, but apart from some research
papers I'm not aware of them implementing it.  Perhaps recently.
Checkpointing is tricky to get right because you have to take a
snapshot of the memory and disk at exactly the same moment.

Note that neither Xen's live migration nor the domain save features
are real checkpoints, because they both only consider the memory.


If yes, will libvirt add API for it?


If it's supported, then why not.

Rich.



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


Re: [Libvir] virsh start problem + patch

2008-03-11 Thread Daniel P. Berrange
On Tue, Mar 11, 2008 at 06:57:33AM +0100, Toth Istvan wrote:
 # virsh list --all
 Id Name State
 --
  0 Domain-0 running
  - windows-xen  shut off
  - windows-xen2 no state
 
 # xm list
 NameID   Mem VCPUs  State   
 Time(s)
 Domain-0 0  3489 4 r-
 853.6
 windows-xen  1   512 0 
 -b-s-d 39.4
 windows-xen2 4   512 0 
 -- 22.5
 
 The windows-xen, and windows-xen2 domains  were installed the very same 
 way, except I've had a Dom0 reboot since I've installed windows-xen, so 
 xen has had the opportunity to sort it's state out, whil the 
 windows-xen2 domain is a fresh install. Starting and stopping (by xm) a 
 freshly installed windows hvm domain does not sort out the state, only a 
 Dom0 reboot (or  a xend restart) does.
 
 I have attached the output of xm list --long command.

This shows that it is all XenD related - inactive domains should *not*
have a 'domid' or 'state' field set in the 'xm list --long' output. In
both your windows-xen  windows-xen2 VM, these fields are incorrectly
present.

 This problem indeed does look like a Xend bug, but it turns out that it 
 does not actually affect virsh. (It does affect virt-manager, as I've 
 written to the other list)



 The other problem is I am pretty sure, a virsh logic bug, and is 
 independent of the first one.

No, it is again a Xen bug. Inactive domains are *mandated* to have a
domain ID of -1.  They do not exist in the hypervisor anymore and thus
have no domain ID associated with them. If XenD is not clearing the
domain ID properly this is a XenD problem.

That all said, we may need to workaround this XenD brokenness in the
libirt XenD driver. Working around it in virsh is the wrong place.

 and I get this:
 
 ./virsh start windows-xen
 warnings
 error: Domain is already active
 virDomainGetID(dom) returns 1
 
 ./virsh start windows-xen2
 warnings
 error: Domain is already active
 virDomainGetID(dom) returns 3
 
 so virDomainGetID() does not return -1, but returns the actual xen 
 domain id of the managed, but inactive xen domain, and I believe this is 
 what it should do,
 as it's job is not to tell us about the state of the domain, but to tell 
 the id of the domain, regardles of its state.

No. Inactive domains are mandated to have an ID of -1.

Dan.
-- 
|: Red Hat, Engineering, Boston   -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: [Libvir] Snapshots for Xen and KVM

2008-03-11 Thread John Levon
On Tue, Mar 11, 2008 at 03:43:51PM +, Richard W.M. Jones wrote:

 On Tue, Mar 11, 2008 at 12:54:37PM +0200, Gabriel Kaufmann wrote:
  Does anyone knows if Xen and KVM support snapshots (regardless if
  Libvirt provides the API for them).
 
 It's currently on the Xen to-do list, but apart from some research
 papers I'm not aware of them implementing it.  Perhaps recently.
 Checkpointing is tricky to get right because you have to take a
 snapshot of the memory and disk at exactly the same moment.
 
 Note that neither Xen's live migration nor the domain save features
 are real checkpoints, because they both only consider the memory.

Why would Xen itself be at all concerned with snapshotting the disk?
AIUI, there's hooks in xend so you just plug in your disk snapshotting
(ZFS, LVM, vmdk, whatever) to that.

regards
john

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