[libvirt-users] LIbvirt Python Snapshot -Domain Crashing

Hi, I'm using libvirt(1.0.0) with python, for managing virtual machines.. but while taking multiple snapshot domain is crashing... Snapshot XML ------------------------- <domainsnapshot> <name>snp1</name> <creationTime></creationTime> <description>Description</description> <state></state> <domain> <uuid></uuid> </domain> <parent> <name></name> </parent> </domainsnapshot> ---------------- API Call -------------- snp1=domain1.snapshotCreateXML(snp_xml,0) here I'm passing flag value as zero.. Its created first snapshot without any error, but when I tried for second snapshot 1) Domain switched its state to pause and its not coming back I installed ubuntu12.04 OS in the domian. Rgds -Sijo

On Tue, Jun 03, 2014 at 04:02:21PM +0530, Sijo Jose wrote:
Hi, I'm using libvirt(1.0.0) with python, for managing virtual machines.. but while taking multiple snapshot domain is crashing...
Snapshot XML -------------------------
<domainsnapshot> <name>snp1</name> <creationTime></creationTime> <description>Description</description> <state></state> <domain> <uuid></uuid> </domain> <parent> <name></name> </parent>
</domainsnapshot> ----------------
API Call -------------- snp1=domain1.snapshotCreateXML(snp_xml,0) here I'm passing flag value as zero..
Its created first snapshot without any error, but when I tried for second snapshot 1) Domain switched its state to pause and its not coming back
I installed ubuntu12.04 OS in the domian.
I do not know much about these snapshot calls, but let me ask you. You wrote that it's crashing, but here you are saying it gets paused only, so which statement is correct? If you have the problem with "downstream" version (here you are saying it's from Ubuntu), please check it with current master as well. That can help us (or someone from Ubuntu) find the reason for it to fail. It's also possible there are some patches applied only in your downstream version on top of 1.0.0 and we're mostly dealing with upstream versions here. Martin
Rgds -Sijo
_______________________________________________ libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users

Martin, Actually domain doesn't crash, but it state got changed to pause, till the snapshot action got complete. Its a time consuming process. so here is my requirement. I want to take snapshot of a Running Domain on every 3 hours,( at a later point of time It should be possible to revert to the actual domain state when I took the snapshot), I'm using libvirt APIs python bindings, there are many flags defined, so which way I can accomplish it..? as of now I"m using flag value as zero. API Call -------------- snp1=domain1.snapshotCreateXML(snp_xml,0) virDomainSnapshotCreateFlags enum virDomainSnapshotCreateFlags { VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = 1 Restore or alter metadata VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = 2 With redefine, make snapshot current VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA = 4 Make snapshot without remembering it VIR_DOMAIN_SNAPSHOT_CREATE_HALT = 8 Stop running guest after snapshot VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY = 16 disk snapshot, not system checkpoint VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = 32 reuse any existing external files VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = 64 use guest agent to quiesce all mounted file systems within the domain VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC = 128 atomically avoid partial changes VIR_DOMAIN_SNAPSHOT_CREATE_LIVE = 256 create the snapshot while the guest is running -Sijo On Tue, Jun 3, 2014 at 6:00 PM, Martin Kletzander <mkletzan@redhat.com> wrote:
On Tue, Jun 03, 2014 at 04:02:21PM +0530, Sijo Jose wrote:
Hi, I'm using libvirt(1.0.0) with python, for managing virtual machines.. but while taking multiple snapshot domain is crashing...
Snapshot XML -------------------------
<domainsnapshot> <name>snp1</name> <creationTime></creationTime> <description>Description</description> <state></state> <domain> <uuid></uuid> </domain> <parent> <name></name> </parent>
</domainsnapshot> ----------------
API Call -------------- snp1=domain1.snapshotCreateXML(snp_xml,0) here I'm passing flag value as zero..
Its created first snapshot without any error, but when I tried for second snapshot 1) Domain switched its state to pause and its not coming back
I installed ubuntu12.04 OS in the domian.
I do not know much about these snapshot calls, but let me ask you. You wrote that it's crashing, but here you are saying it gets paused only, so which statement is correct?
If you have the problem with "downstream" version (here you are saying it's from Ubuntu), please check it with current master as well. That can help us (or someone from Ubuntu) find the reason for it to fail. It's also possible there are some patches applied only in your downstream version on top of 1.0.0 and we're mostly dealing with upstream versions here.
Martin
Rgds
-Sijo
_______________________________________________
libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users

On 06/03/2014 07:27 AM, Sijo Jose wrote: [please don't top-post on technical lists]
Martin, Actually domain doesn't crash, but it state got changed to pause, till the snapshot action got complete. Its a time consuming process.
Yes, the default internal snapshot is a time-consuming process, which is why we recommend external snapshots, which can be taken with very little guest downtime.
so here is my requirement.
I want to take snapshot of a Running Domain on every 3 hours,( at a later point of time It should be possible to revert to the actual domain state when I took the snapshot), I'm using libvirt APIs python bindings, there are many flags defined, so which way I can accomplish it..? as of now I"m using flag value as zero.
You need to use flags to achieve what you want. In particular...
VIR_DOMAIN_SNAPSHOT_CREATE_LIVE = 256 create the snapshot while the guest is running
this flag is necessary, along with...
<domainsnapshot> <name>snp1</name> <creationTime></creationTime> <description>Description</description> <state></state> <domain> <uuid></uuid> </domain> <parent> <name></name> </parent>
</domainsnapshot>
additional changes to this XML to specifically request an external snapshot by listing the pathname at which the external memory snapshot will live. See how 'virsh snapshot-create-as $dom --print-xml --live --memspec /path/to/file' does it. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (3)
-
Eric Blake
-
Martin Kletzander
-
Sijo Jose