qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] "File too large" error from "qemu-img snapshot" (was Re


From: Eric Blake
Subject: Re: [Qemu-devel] "File too large" error from "qemu-img snapshot" (was Re: AW: Bug Repoting Directions Request)
Date: Wed, 19 Nov 2014 08:43:49 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

On 11/19/2014 07:54 AM, Paolo Bonzini wrote:
> On 19/11/2014 13:07, Prof. Dr. Michael Schefczyk wrote:
>> Yes! My level of knowledge is that one uses the qcow2 format in order
>> to be able to create live snapshots/backups. Otherwise one would tend
>> to use the more efficient raw format. Is this not correct and did I
>> apply the backup mechanism in the wrong way?
> 
> That's correct, but you still have to create live snapshots from within
> QEMU.

You absolutely CANNOT modify a qcow2 file via qemu-img or any other
external means while qemu is using the file in read-write mode, or you
risk file corruption (which appears to be what happened to you).
Monitor commands to the qemu process are the only supported means for
taking a live snapshot/backup of an in-use disk.

> 
> This is done with a QMP (QEMU Management Protocol) command like
> 
> { "execute": "blockdev-snapshot-internal-sync",
>                 "arguments": { "device": "ide-hd0",
>                                "name": "snapshot0" }
>    }
> 
> QMP is accessed through normal sockets, or via libvirt.
> 
> However, I'm not sure if running "qemu-img convert" on the resulting
> snapshot is possible though, and there is no equivalent of "qemu-img
> snapshot -d".

qemu-img snapshot -d can be achieved via the QMP monitor command
'human-monitor-command' forwarding to the HMP 'delvm' command.  But you
are correct that I don't know of any way to reproduce qemu-img convert
on a read-write image.

> 
> You can instead use QEMU's support for backup, which will do what you
> wanted directly while the VM is running.  For example:
> 
> { "execute": "drive-backup", "arguments": { "device": "ide-hd0",
>                                      "sync": "full", "format": "qcow2",
>                                      "target": "backup.img" } }
> 
> This does not even require qcow2 for the image.  The downside is that
> you must not turn off the VM until the job has completed.

Another option is to create a live snapshot (so that your file under
interest is now read-only with a temporary qcow2 overlay as the
read-write file), then you can do whatever you want with the file (such
as qemu-img convert), and finally do an active commit to get rid of the
temporary qcow2 overlay and back to just the main live image.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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