Han,Did the same test again with libvirt debug enabled. This time I added the disk[1] without snaps (OK), and then added the disk[2] with snapshots. The libvirt log[3] (line 320) says:Could not open '/opt/stack/data/nova/mnt/a3b4c6ddd9bf82edd4f726872be58d 05/volume-a75b42e8-8175-4516- b724-43ee6f3d2520': Permission denied\r\n", "id": "libvirt-33"}] But this file has 777 permissions. I can access it with any user I tried[4]. Tough its mounted over NFS, the permissions seems to be right.ErlonOn Tue, Aug 16, 2016 at 2:41 PM, Erlon Cruz <sombrafam@gmail.com> wrote:Hi Han,Thanks for helping. What is the XML before the snapshot is created? Can you post the XML files you used too? The files are in the links pointed by the numbers [1], [2] etc.The versions are:qemu-system-x86_64 --versionQEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.4), Copyright (c) 2003-2008 Fabrice Bellardlibvirtd --versionlibvirtd (libvirt) 1.3.1ErlonOn Mon, Aug 15, 2016 at 12:56 AM, Han Han <hhan@redhat.com> wrote:Hi,Erlon
I was not able to reproduce your problem. It is ok to attach disk with external snapshot.
I did it with following steps:
# qemu-img create /tmp/vdb 100M
Formatting '/tmp/vdb', fmt=raw size=104857600
# virsh start snap
Domain snap started
# virsh snapshot-create-as snap s1 --disk-only --diskspec vdb,file=/tmp/vdb.s1 --quiesce
Domain snapshot s1 created
# virsh dumpxml snap|awk '/<disk/,/<\/disk/'
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/snap.s1'/>
<backingStore type='file' index='1'>
<format type='qcow2'/>
<source file='/var/lib/libvirt/images/snap.qcow2'/>
<backingStore/>
</backingStore>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/tmp/vdb.s1'/>
<backingStore type='file' index='1'>
<format type='raw'/>
<source file='/tmp/vdb'/>
<backingStore/>
</backingStore>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
</disk>
Save the dumped vdb's xml to /tmp/vdb.xml
# virsh detach-device snap /tmp/vdb.xml
Device detached successfully
# virsh attach-device snap /tmp/vdb.xml
Device attached successfully
# virsh dumpxml snap|awk '/<disk/,/<\/disk/'
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/snap.s1'/>
<backingStore type='file' index='1'>
<format type='qcow2'/>
<source file='/var/lib/libvirt/images/snap.qcow2'/>
<backingStore/>
</backingStore>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/tmp/vdb.s1'/>
<backingStore type='file' index='1'>
<format type='raw'/>
<source file='/tmp/vdb'/>
<backingStore/>
</backingStore>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
</disk>
So I managed to attach disks with snapshot.
I want to know what is your libvirt and qemu-kvm version?
And can you provide your files: /tmp/disk.xml[1], /tmp/snap-from-disk.xml[2], /tmp/disk-with-snap.xml[4], /tmp/disk-with-snap.xml . I need more details.
Han Han
______________________________
----- Original Message -----
From: "Erlon Cruz" <sombrafam@gmail.com>
To: libvirt-users@redhat.com
Sent: Friday, August 12, 2016 10:23:24 AM
Subject: [libvirt-users] Attaching disks with external snapshots
Hi folks,
I'm trying to to attach a disk to an instance using libvirt. The problem is, this disk has external snapshots. The process tried was:
1 - Attach a disk in the domain:
virsh# attach-device instance-00000006 /tmp/disk.xml[1] --live
2 - Snapshot the disk[2]:
virsh# snapshot-create instance-00000006 --quiesce --xmlfile /tmp/snap-from-disk.xml[2] --disk-only
3 - Dump the domain XML and create a new disk file from it:
virsh# dumpxml instance-00000006
... [3]
4 - Dettach the device and re-add it using the new disk file:
virsh# detach-device instance-00000006 /tmp/disk-with-snap.xml[4]
Device detached successfully
virsh# attach-device instance-00000006 /tmp/disk-with-snap.xml
error: Failed to attach device from /tmp/disk-with-snap.xml
error: internal error: unable to execute QEMU command 'device_add': Property 'virtio-blk-device.drive' can't find value 'drive-virtio-disk1'
Question, is this operation supported? If yes, how is the correct procedure?
Erlon
[1] http://paste.openstack.org/show/556055/
[2] http://paste.openstack.org/show/556056/
[3] http://paste.openstack.org/show/556063/
[4] http://paste.openstack.org/show/556064/
_________________
libvirt-users mailing list
libvirt-users@redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users