qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [with qemu-git] blockcommit to a ( 'raw' format) base i


From: Kashyap Chamarthy
Subject: Re: [Qemu-devel] [with qemu-git] blockcommit to a ( 'raw' format) base image fails w/ unable to open the disk image file
Date: Wed, 10 Oct 2012 14:09:31 +0530

On Wed, Oct 10, 2012 at 1:31 AM, Jeff Cody <address@hidden> wrote:
> On 10/09/2012 04:54 AM, Kashyap Chamarthy wrote:
>> Hi (Jeff?)
>>
>> I was testing blockcommit operations qemu-git, as of Oct-6th (which
>> has your blockcommit code pulled in). And also w/ libvirt-git  which
>> has Eric's libvirt blockcommit patches applied.
>>
>> with the goal of :
>>
>> actual state: [base] <-- [snap-1] <-- [snap-2] <-- [snap3] <-- [active-layer]
>>
>> desired state: [base] <-- [active-layer]
>>
>> When I actually do the operation, this is what I see
>> -----------------------------------------------
>> $ virsh blockcommit --domain raw-base vda --wait --base
>> /export/vmimgs2/raw-base.img --top
>> /var/lib/libvirt/images/snap3-b-raw-base.qcow2 --verbose
>> error: internal error unable to execute QEMU command 'block-commit':
>> Could not open
>> '/export/vmimgs2/raw-base.img'
>> -----------------------------------------------
>> On libvirt list, Eric indicated it could be a problem in qemu's
>> blockcommit code .
>>
>
> Do you know the command that libvirt is sending QEMU?  If QEMU is
> sending and error response back to libvirt, it would be useful to know
> that as well.

#---------------------------------------------------------------------------------------#
2012-10-10 08:00:59.821+0000: 11604: debug : qemuMonitorIOWrite:462 :
QEMU_MONITOR_IO_WRITE: mon=0x7f1d68000cc0
buf={"execute":"block-commit","arguments":{"device":"drive-virtio-disk0","speed":0,"top":"/var/lib/libvirt/images/snap3-b-raw-base.qcow2","base":"/export/vmimgs2/raw-base.img"},"id":"libvirt-6"}
 len=192 ret=192 errno=2
2012-10-10 08:00:59.823+0000: 11604: debug : qemuMonitorIOProcess:354
: QEMU_MONITOR_IO_PROCESS: mon=0x7f1d68000cc0 buf={"id": "libvirt-6",
"error": {"class": "GenericError", "desc": "Could not open
'/export/vmimgs2/raw-base.img'"}}
 len=114
2012-10-10 08:00:59.823+0000: 11604: debug :
qemuMonitorJSONIOProcessLine:144 : Line [{"id": "libvirt-6", "error":
{"class": "GenericError", "desc": "Could not open
'/export/vmimgs2/raw-base.img'"}}]
2012-10-10 08:00:59.823+0000: 11604: debug :
qemuMonitorJSONIOProcessLine:164 : QEMU_MONITOR_RECV_REPLY:
mon=0x7f1d68000cc0 reply={"id": "libvirt-6", "error": {"class":
"GenericError", "desc": "Could not open
'/export/vmimgs2/raw-base.img'"}}
2012-10-10 08:00:59.823+0000: 11604: debug :
qemuMonitorJSONIOProcess:215 : Total used 114 bytes out of 114
available in buffer
2012-10-10 08:00:59.823+0000: 11605: debug :
qemuMonitorJSONCommandWithFd:262 : Receive command reply ret=0
rxObject=0xd5f8d0
2012-10-10 08:00:59.823+0000: 11605: debug :
qemuMonitorJSONCheckError:336 : unable to execute QEMU command
{"execute":"block-commit","arguments":{"device":"drive-virtio-disk0","speed":0,"top":"/var/lib/libvirt/images/snap3-b-raw-base.qcow2","base":"/export/vmimgs2/raw-base.img"},"id":"libvirt-6"}:
{"id":"libvirt-6","error":{"class":"GenericError","desc":"Could not
open '/export/vmimgs2/raw-base.img'"}}
2012-10-10 08:00:59.823+0000: 11605: error :
qemuMonitorJSONCheckError:347 : internal error unable to execute QEMU
command 'block-commit': Could not open '/export/vmimgs2/raw-base.img'
#---------------------------------------------------------------------------------------#
I believe the above a permission error. I changed the owner ship of
raw-base.img to qemu:qemu (from root:root)

Then I try again blockcommit, I see this: (from libvirtd.log)
#---------------------------------------------------------------------------------------#
 qemuMonitorIOWrite:462 : QEMU_MONITOR_IO_WRITE: mon=0x7f1d68000cc0
buf={"execute":"block-commit","arguments":{"device":"drive-virtio-disk0","speed":0,"top":"/var/lib/libvirt/images/snap3-b-raw-base.qcow2","base":"/export/vmimgs2/raw-base.img"},"id":"libvirt-11"}
 len=193 ret=193 errno=11

qemuMonitorIOProcess:354 : QEMU_MONITOR_IO_PROCESS: mon=0x7f1d68000cc0
buf={"id": "libvirt-11", "error": {"class": "GenericError", "desc":
"Top image file /var/lib/libvirt/images/snap3-b-raw-base.qcow2 not
found"}}
 len=141

: qemuMonitorJSONIOProcessLine:144 : Line [{"id": "libvirt-11",
"error": {"class": "GenericError", "desc": "Top image file
/var/lib/libvirt/images/snap3-b-raw-base.qcow2 not found"}}]

qemuMonitorJSONIOProcessLine:164 : QEMU_MONITOR_RECV_REPLY:
mon=0x7f1d68000cc0 reply={"id": "libvirt-11", "error": {"class":
"GenericError", "desc": "Top image file
/var/lib/libvirt/images/snap3-b-raw-base.qcow2 not found"}}

qemuMonitorJSONIOProcess:215 : Total used 141 bytes out of 141
available in buffer

qemuMonitorJSONCommandWithFd:262 : Receive command reply ret=0 rxObject=0xda26c0

qemuMonitorJSONCheckError:336 : unable to execute QEMU command
{"execute":"block-commit","arguments":{"device":"drive-virtio-disk0","speed":0,"top":"/var/lib/libvirt/images/snap3-b-raw-base.qcow2","base":"/export/vmimgs2/raw-base.img"},"id":"libvirt-11"}:
{"id":"libvirt-11","error":{"class":"GenericError","desc":"Top image
file /var/lib/libvirt/images/snap3-b-raw-base.qcow2 not found"}}

error : qemuMonitorJSONCheckError:347 : internal error unable to
execute QEMU command 'block-commit': Top image file
/var/lib/libvirt/images/snap3-b-raw-base.qcow2 not found
#---------------------------------------------------------------------------------------#

But that file indeed exists, as can be seen below:
#---------------------------------------------------------------------------------------#
address@hidden libvirt-k]$ file /var/lib/libvirt/images/snap3-b-raw-base.qcow2
/var/lib/libvirt/images/snap3-b-raw-base.qcow2: QEMU QCOW Image (v2),
has backing file (path
/var/lib/libvirt/images/snap2-b-raw-base.qcow2), 1073741824 bytes
address@hidden libvirt-k]$ ls -al /var/lib/libvirt/images/snap3-b-raw-base.qcow2
-rwxr--r--. 1 qemu qemu 1966080 Oct  8 10:17
/var/lib/libvirt/images/snap3-b-raw-base.qcow2
address@hidden libvirt-k]$ ls -al /export/vmimgs2/raw-base.img
-rw-r--r--. 1 qemu qemu 1073741824 Oct 10 13:40 /export/vmimgs2/raw-base.img
address@hidden libvirt-k]$
#---------------------------------------------------------------------------------------#

>
> Also, are you using absolute filenames for the images?  There are known
> issues right now with relative filenames with commit (and stream).

I've been using only absolute file names (not relative, as I'm
familiar w/ the errors).

>
> I just grabbed the upstream code, built it and tried it out with raw,
> and it worked fine with a raw base, and qcow2 snapshots on top:
>
>
> { "execute":
>     "block-commit",
>     "arguments": {
>        "device": "virtio0",
>        "base": "/home/Jeff.Cody/virt/images/test/f16-commit.raw",
>        "top": "/home/Jeff.Cody/virt/images/test/f16-commit-2-rawbase.img" } }
>
> {"return": {}}
>
> {"timestamp": {"seconds": 1349811474, "microseconds": 937437}, "event":
> "BLOCK_JOB_COMPLETED", "data": {"device": "virtio0", "len": 6442450944,
> "offset": 6442450944, "speed": 140122839052112, "type": "commit"}}
>
> This was for an image chain that was:
>
> raw <- qcow2 <- qcow2 <- qcow2
>
> which became:
>
> raw <- qcow2
>
>
> From qemu-img:
>
> # qemu-img info f16-commit.raw
> image: f16-commit.raw
> file format: raw
> virtual size: 6.0G (6442450944 bytes)
> disk size: 1.6G
>
> # qemu-img info f16-commit-3-rawbase.img
> image: f16-commit-3-rawbase.img
> file format: qcow2
> virtual size: 6.0G (6442450944 bytes)
> disk size: 516K
> cluster_size: 65536
> backing file: /home/Jeff.Cody/virt/images/test/f16-commit.raw (actual path:
> /home/Jeff.Cody/virt/images/test/f16-commit.raw)

Thank you. I'll have to try this again with today's QEMU git: (along
with your newest patches for 'relative' paths maybe)
>
>
>
>>
>> Although blockcommit to a qcow2 base file works just fine.
>> -----------------------------------------------
>> [root moon libvirt]# virsh blockcommit --domain f17-base vda --wait --base
>> /export/vmimgs2/f17-base.qcow2 --top
>> /export/vmimgs2/snap3-f17-base.qcow2 --verbose
>> Block Commit: [100 %]
>> Commit complete
>> [root moon libvirt]#
>> -----------------------------------------------
>>
>> More info on tests I ran, posted to libvirt list --
>> https://www.redhat.com/archives/libvir-list/2012-October/msg00226.html
>>
>> Let me know if I can help you debug this further.
>>
>> /kashyap
>>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]