Bug 1083345

Summary: The --memspec parameters "snapshot=no" doesn't work when creating internal disk snapshot
Product: Red Hat Enterprise Linux 7 Reporter: Shanzhi Yu <shyu>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: dyuan, eblake, mzhan, pkrempa, rbalakri, yanyang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-1.2.7-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1083346 (view as bug list) Environment:
Last Closed: 2015-03-05 07:33:39 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1083346    

Description Shanzhi Yu 2014-04-02 03:07:27 UTC
Description of problem:

The --memspec parameters "snapshot=no" doesn't work when creating internal disk snapshot

Version-Release number of selected component (if applicable):

libvirt-1.1.1-29.el7.x86_64
qemu-kvm-rhev-1.5.3-59.el7ev.x86_64

How reproducible:

100%

Steps to Reproduce:
1.define an guest and keep it running status
# virsh list --name --state-running
rhel6.5

2.try to create internal disk-only snapshot
# virsh snapshot-create-as rhel6.5 diskonly-internal1   --memspec snapshot=no --diskspec vda,snapshot=internal --diskspec vdb,snapshot=internal
Domain snapshot diskonly-internal1 created

3. check snapshot info
# virsh snapshot-dumpxml rhel6.5  diskonly-internal1
<domainsnapshot>
  <name>diskonly-internal1</name>
  <state>running</state>
  <parent>
    <name>diskonly-internal</name>
  </parent>
  <creationTime>1396342930</creationTime>
  <memory snapshot='internal'/>
  <disks>
    <disk name='vda' snapshot='internal'/>
    <disk name='vdb' snapshot='internal'/>
  </disks>

Actual results:

As above.

Expected results:

1) Suppose we support internal disk-only snapshot, we should succeed creating such snapshot in step3
2) If we don't support internal disk-only snapshot, it should come up with some error info when creating it as in step 2

Additional info:

Comment 2 Eric Blake 2014-05-29 14:05:22 UTC
qemu 1.7 added the blockdev-snapshot-internal-sync QMP command which would let us do a disk-only internal snapshot. We have not wired that up in libvirt yet.

Comment 3 Peter Krempa 2014-05-30 07:28:13 UTC
The original problem was fixed upstream with

commit d2e668e535fd62810eb268351e9e74a483efd0d4
Author: Peter Krempa <pkrempa>
Date:   Thu May 29 10:52:57 2014 +0200

    qemu: snapshot: Reject internal active snapshot without memory state
    
    A internal snapshot of a active VM with the memory snapshot disabled
    explicitly would actually still take the memory snapshot. Reject it
    explicitly.
    
    Before:
     $ virsh snapshot-create-as --domain VM --diskspec vda,snapshot=internal --memspec snapshot=no
     Domain snapshot 1401353155 created
    
    After:
     $ virsh snapshot-create-as --domain VM --diskspec vda,snapshot=internal --memspec snapshot=no
     error: Operation not supported: internal snapshot of a running VM must include the memory state
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1083345

I'll open a bug to add the support for internal snapshots

Comment 5 Yang Yang 2014-09-26 06:34:12 UTC
Verified it on 
qemu-kvm-rhev-2.1.0-5.el7.x86_64
libvirt-1.2.8-3.el7.x86_64

# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     qe-con                         running

# virsh snapshot-create-as qe-con --memspec snapshot=no --diskspec hda,snapshot=internal
error: Operation not supported: internal snapshot of a running VM must include the memory state

Since the results is expected, set the status to verified.

Comment 7 errata-xmlrpc 2015-03-05 07:33:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0323.html