From: Eric Blake <eblake@redhat.com>
To: Dietmar Maurer <dietmar@proxmox.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/5] introduce new vma archive format
Date: Wed, 21 Nov 2012 09:06:24 -0700 [thread overview]
Message-ID: <50ACFC00.5080800@redhat.com> (raw)
In-Reply-To: <1353488464-82756-3-git-send-email-dietmar@proxmox.com>
[-- Attachment #1: Type: text/plain, Size: 2525 bytes --]
On 11/21/2012 02:01 AM, Dietmar Maurer wrote:
> This is a very simple archive format, see docs/specs/vma_spec.txt
>
> Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
> ---
> +++ b/docs/specs/vma_spec.txt
> @@ -0,0 +1,24 @@
> +=Virtual Machine Archive format (VMA)=
> +
> +This format contains a header which includes the VM configuration as
> +binary blobs, and a list of devices (dev_id, name).
> +
> +The actual VM image date is stored inside extends. En extend contains
s/date/data/
s/extends. En extend/extents. An extent/
> +up to 64 clusters, and start with a 512 byte header containing
> +additional information for those clusters.
> +
> +We use a cluster size of 65536, and use 8 bytes for each
> +cluster in the header to store the following information:
> +
> +* 1 byte dev_id (to identity the drive)
> +* 2 bytes zero indicator (mark zero regions (16x4069))
s/4069/4096/
> +* 4 bytes cluster number
Is that sufficient, or is it possible to have an image larger than
64k*4G that would overflow?
> +* 1 byte not used (reserved)
> +
> +We only store non-zero blocks (such block is 4096 bytes).
> +
> +Each archive is marked with an unique uuid. The archive header and all
s/an unique/a/ (by definition, 'uuid' is an acronym that already means
unique; also, it is 'a' and not 'an' before any 'u' pronounced as 'y',
which is true for both 'unique' and a spelled-out 'uuid')
> +extend headers includes that uuid and a MD5 checksum (over header
s/extend/extent/
> +data).
> +
> +
> diff --git a/vma-reader.c b/vma-reader.c
> new file mode 100644
> index 0000000..7a54de5
> --- /dev/null
> +++ b/vma-reader.c
> @@ -0,0 +1,720 @@
> +/*
> + * VMA: Virtual Machine Archive
> + *
> + * Copyright (C) Proxmox Server Solutions
Missing a year.
> + *
> + * Authors:
> + * Dietmar Maurer (dietmar@proxmox.com)
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2. See
Can you please use GPLv2+ (the 'or later' clause is essential if you
want your work to be reusable in GPLv3[+] projects)?
I didn't review the code, just the specification. I have to wonder how
much of your work overlaps with Paolo's 'drive-mirror' and NBD server
work; and it seems to me that it is better to use 'drive-mirror' for
doing backup work into existing disk formats, rather than inventing yet
another archive format.
--
Eric Blake eblake@redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 619 bytes --]
next prev parent reply other threads:[~2012-11-21 16:06 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-21 9:01 [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 2/5] add basic backup support to block driver Dietmar Maurer
2012-11-22 11:25 ` Stefan Hajnoczi
2012-11-22 11:29 ` Dietmar Maurer
2012-11-23 8:56 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 3/5] introduce new vma archive format Dietmar Maurer
2012-11-21 16:06 ` Eric Blake [this message]
2012-11-21 17:56 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 4/5] add backup related monitor commands Dietmar Maurer
2012-11-21 16:16 ` Eric Blake
2012-11-21 17:59 ` Dietmar Maurer
2012-11-21 18:49 ` Dietmar Maurer
2012-11-21 9:01 ` [Qemu-devel] [PATCH 5/5] add regression tests for backup Dietmar Maurer
2012-11-21 10:48 ` [Qemu-devel] [PATCH 1/5] RFC: Efficient VM backup for qemu (v1) Kevin Wolf
2012-11-21 11:10 ` Dietmar Maurer
2012-11-21 12:37 ` Kevin Wolf
2012-11-21 13:23 ` Paolo Bonzini
2012-11-23 7:42 ` Dietmar Maurer
2012-11-23 9:18 ` Paolo Bonzini
2012-11-23 9:28 ` Dietmar Maurer
2012-11-23 8:12 ` Dietmar Maurer
2012-11-23 9:01 ` Dietmar Maurer
2012-11-23 9:05 ` Dietmar Maurer
2012-11-23 9:15 ` Paolo Bonzini
2012-11-23 9:17 ` Dietmar Maurer
2012-11-23 9:55 ` Kevin Wolf
2012-11-23 10:55 ` Markus Armbruster
2012-11-21 13:25 ` Dietmar Maurer
2012-11-21 13:58 ` Kevin Wolf
2012-11-21 15:47 ` Dietmar Maurer
2012-11-23 7:38 ` Dietmar Maurer
2012-11-23 9:08 ` Kevin Wolf
2012-11-23 9:21 ` Dietmar Maurer
2012-11-23 9:31 ` Dietmar Maurer
2012-11-23 10:29 ` Kevin Wolf
2012-11-26 5:51 ` Dietmar Maurer
2012-11-26 12:07 ` Paolo Bonzini
2012-11-27 6:20 ` Dietmar Maurer
2012-11-27 7:15 ` Dietmar Maurer
2012-11-27 8:48 ` Kevin Wolf
2012-11-27 10:24 ` Dietmar Maurer
2012-11-21 11:23 ` Dietmar Maurer
2012-11-22 11:12 ` Stefan Hajnoczi
2012-11-22 11:26 ` Dietmar Maurer
2012-11-22 12:44 ` Stefan Hajnoczi
2012-11-22 12:55 ` Dietmar Maurer
2012-11-22 15:30 ` Stefan Hajnoczi
2012-11-22 15:58 ` Dietmar Maurer
2012-11-22 17:02 ` Stefan Hajnoczi
2012-11-22 17:34 ` Dietmar Maurer
2012-11-22 11:40 ` Dietmar Maurer
2012-11-22 15:42 ` Stefan Hajnoczi
2012-11-22 12:00 ` Dietmar Maurer
2012-11-22 15:45 ` Stefan Hajnoczi
2012-11-22 15:56 ` Dietmar Maurer
2012-11-22 16:37 ` Stefan Hajnoczi
2012-11-22 12:03 ` Dietmar Maurer
2012-11-22 17:16 ` Stefan Hajnoczi
2012-11-22 17:46 ` Dietmar Maurer
2012-11-23 5:23 ` Stefan Hajnoczi
2012-11-23 5:25 ` Stefan Hajnoczi
2012-11-23 6:18 ` Dietmar Maurer
2012-11-23 6:13 ` Dietmar Maurer
2012-11-22 17:50 ` Dietmar Maurer
2012-11-23 5:21 ` Stefan Hajnoczi
2012-11-22 18:05 ` Dietmar Maurer
2012-11-23 5:19 ` Stefan Hajnoczi
2012-11-23 6:05 ` Dietmar Maurer
2012-11-22 18:15 ` Dietmar Maurer
2012-11-27 10:09 ` Wenchao Xia
2012-11-27 10:37 ` Dietmar Maurer
2012-11-28 9:39 ` Wenchao Xia
2012-11-28 11:08 ` Dietmar Maurer
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=50ACFC00.5080800@redhat.com \
--to=eblake@redhat.com \
--cc=dietmar@proxmox.com \
--cc=kwolf@redhat.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.