Just following up, this is indeed an apparmor issue. The attachment work with apparmor disabled. This is a libvirt bug: https://bugzilla.redhat.com/show_bug.cgi?id=1361592
On Mon, Aug 22, 2016 at 2:26 PM, Erlon Cruz <sombra...@gmail.com> wrote: > If that was the case I wouldn't be able to attach a volume without > snapshots. But just in case I did the following test, before attaching the > file, I copied all the file to a local folder and changed the path in XML > with the new paths. The problem repeats: > > *2016-08-22 17:14:19.795+0000: 3799: info : qemuMonitorIOProcess:423 : > QEMU_MONITOR_IO_PROCESS: mon=0x7f68f800c4c0 buf={"return": "Could not open > backing file: Could not open > '/home/ubuntu/volumes/volume-d81f7e7e-4215-4433-aad2-50adcd31b29d.7a9ea169-a3ab-48bd-bd9d-e7585860abe4': > Permission denied\r\n", "id": "libvirt-30"}* > > But, if I use the top backing file with same permissions > (/home/ubuntu/volumes/volume-d81f7e7e-4215-4433-aad2-50adcd31b29d), the > operation suceeds. Can this be a libvirt/QEMU bug? > > Han, can you tell me more details about the commands you used and the > versions of or libvirt/qemu? I couldn't reproduce from the steps you > outlined. > > On Fri, Aug 19, 2016 at 12:02 AM, Han Han <h...@redhat.com> wrote: > >> Hi Erlon, >> Since you say you got Permission denied error while the ACL mode is 777, >> I guess it is due to security system like selinux or apparmor. >> As I know, selinux defaultly will disable qemu to use volume based on >> NFS. We need to use 'setsebool virt_use_nfs 1' to enable it. >> Well, your OS is ubuntu, so I think apparmor causes the permission >> problem. Try to find a way to enable virt_use_nfs or disable apparmor. Then >> check if the problem can be reproduced. >> >> Han >> >> ----- Original Message ----- >> From: "Erlon Cruz" <sombra...@gmail.com> >> To: "Han Han" <h...@redhat.com> >> Cc: "Yang Yang" <yany...@redhat.com>, "Yuan Dan" <dy...@redhat.com>, >> "Xuesong Zhang" <xuzh...@redhat.com>, libvirt-users@redhat.com >> Sent: Thursday, 18 August, 2016 12:44:36 PM >> Subject: Re: [libvirt-users] Attaching disks with external snapshots >> >> Hi Han, >> >> Any update on this? >> >> Erlon >> >> On Wed, Aug 17, 2016 at 9:58 AM, Erlon Cruz <sombra...@gmail.com> wrote: >> >> > 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/a3b4c6ddd9bf82edd4f726872be58d05/ >> 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. >> > >> > Erlon >> > >> > [1] http://paste.openstack.org/show/556055/ >> > [2] http://paste.openstack.org/show/556056/ >> > [3] http://pastebin.com/CCFcKq5b >> > [4] http://paste.openstack.org/show/559018/ >> > >> > >> > On Tue, Aug 16, 2016 at 2:41 PM, Erlon Cruz <sombra...@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 --version >> >> QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.4), Copyright >> >> (c) 2003-2008 Fabrice Bellard >> >> >> >> libvirtd --version >> >> libvirtd (libvirt) 1.3.1 >> >> >> >> >> >> >> >> Erlon >> >> >> >> On Mon, Aug 15, 2016 at 12:56 AM, Han Han <h...@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" <sombra...@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 >> >>> >> >> >> >> >> > >> > >
_______________________________________________ libvirt-users mailing list libvirt-users@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-users