From: Nathaniel McCallum <npmccallum@gentoo.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] QCow v2
Date: Tue, 04 Jul 2006 09:01:35 -0400 [thread overview]
Message-ID: <1152018095.16023.15.camel@localhost.localdomain> (raw)
In-Reply-To: <44AA33AD.3030300@bellard.org>
On Tue, 2006-07-04 at 11:23 +0200, Fabrice Bellard wrote:
> Hi,
>
> I am not sure it is interesting to store the configuration of the VM in
> the disk image (there can be several disk images for a given VM).
> Moreover, extensions to the qcow header must be added at its end.
Storing the config in the disk image does not preclude:
1. using multiple disk images with a vm
2. using multiple vm's with a single disk image
Nor does it make it more difficult to do any of the above. All it does
is make it easier for the use case of one VM with one image, which is
the vast majority of VM's out there.
In addition, it definitely is interesting to store other random data in
the image. Here is a second proposal:
We have a key/value section that replaces the backing store section:
typedef struct QCowHeader {
uint32_t magic;
uint32_t version;
uint64_t key_val_offset; /* was backing_file_offset */
uint32_t key_val_size; /* was backing_file_size */
uint32_t mtime;
uint64_t size;
uint8_t cluster_bits;
uint8_t l2_bits;
uint32_t crypt_method;
uint64_t l1_table_offset;
} QCowHeader;
The above does not change the size of the header. And as such, you can
still read the header off the file and determine how to interpret it
based on the version number.
The key_val section is pairs of null terminated (UTF-8?) strings. The
first string in the pair is the key, the second is the value.
It could handle the current backing store design like this:
"backing_store": "<filename>"
> Regarding my current plans, the next qcow evolution will be the support
> for multiple snapshots. Each snapshot will be tagged by a label.
I assume you'll do this with multiple backing stores:
"num_backing_stores" : "2"
"backing_store_0" : "<filename>"
"backing_store_0_label": "<label>"
"backing_store_1" : "<filename>"
"backing_store_1_label": "<label>"
prev parent reply other threads:[~2006-07-04 13:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-04 2:45 [Qemu-devel] QCow v2 Nathaniel McCallum
2006-07-04 8:12 ` Johannes Schindelin
2006-07-04 8:49 ` Raphaël Rigo
2006-07-04 9:23 ` Fabrice Bellard
2006-07-04 10:44 ` Christian MICHON
2006-07-04 10:57 ` Fabrice Bellard
2006-07-04 11:28 ` Julian Seward
2006-07-04 11:01 ` Johannes Schindelin
2006-07-04 11:13 ` Elefterios Stamatogiannakis
2006-07-04 13:51 ` Christian MICHON
2006-07-04 15:04 ` Natalia Portillo
2006-07-11 11:30 ` Christian MICHON
2006-07-11 17:43 ` André Braga
2006-07-04 11:14 ` Christian MICHON
2006-07-04 11:26 ` Fabrice Bellard
2006-07-04 12:13 ` Christian MICHON
2006-07-04 12:22 ` Fabrice Bellard
2006-07-04 13:03 ` Christian MICHON
2006-07-04 13:16 ` Christian MICHON
2006-07-04 13:28 ` Johannes Schindelin
2006-07-04 13:01 ` Nathaniel McCallum [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1152018095.16023.15.camel@localhost.localdomain \
--to=npmccallum@gentoo.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).