Re: Storage image files and permissions

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

 



On 11/28/18 7:41 AM, Eric Blake wrote:

I relied on the "file" tool provided by Archlinux. It says "QCOW3" as
the file type by its contents.

No, it says "QCOW Image (v3)", and means qcow2v3, because file is not distinguishing between 'qcow' and 'qcow2'.  It would be worth a bug report to the 'file' database maintainers to update their magic file to distinguish 'qcow' (the old v1 that is no longer used anywhere) from 'qcow2' (with both 'qcow2 v2' and 'qcow2 v3' flavors).

Additional information:
The old qcow (v1) format is lousy - it was not created with endian and sizing considerations, to the point that you may have a different image created depending on whether the host was little- or big-endian, and 32- or 64-bit (the file format does not encode the creation architecture, but you can generally make safe guesses as to what happened). We've tightened it up over the years (see qemu commit ea54feff58 that made padding in the header explicit, rather than relying on the compiler to pick the right amount of space), but it is still not an ideal header. Also, it lacks a refcount table, making it fairly easy to corrupt the image if writes don't flush in the correct order, and rather time-consuming to expand an existing image to a larger size. qemu provides a separate driver for qcow images, and recommends that no one create new files in that format.

The new qcow2 format is architecture-independent, and lists header members in a different order than the old qcow format (the 'magic' and 'version' fields are in the same place, but other fields with common names like 'crypt_method' are moved around compared to v1). Both v2 and v3 images can be handled by a single driver (qemu has just a qcow2 driver), and you can even convert between the two (v2 upgrading to v3 is always possible, v3 downgrading to v2 depends on whether the image utilized any v3-only features). While v2 images lack features that only v3 can support, at least the refcount table is common between the two, and it is much easier and faster to write to qcow2 files of either version. RHEL (or CentOS) 6 is the last major distro that was limited to only v2 images, so these days, using v3 is a safe default.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux