[Top][All Lists]

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

[Qemu-devel] [PATCH v3 14/19] docs, qapi: document qemu-img map

From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH v3 14/19] docs, qapi: document qemu-img map
Date: Thu, 25 Jul 2013 16:23:12 +0200

Eric Blake also requested including the output in qapi-schema.json,
so that it is published through the introspection mechanism.

Signed-off-by: Paolo Bonzini <address@hidden>
 qapi-schema.json | 29 +++++++++++++++++++++++++++++
 qemu-img.texi    | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)

diff --git a/qapi-schema.json b/qapi-schema.json
index 592bb9c..421ea8a 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -803,6 +803,35 @@
 { 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
+# @BlockDeviceMapEntry:
+# Entry in the metadata map of the device (returned by "qemu-img map")
+# @start: Offset in the image of the first byte described by this entry
+#         (in bytes)
+# @length: Length of the range described by this entry (in bytes)
+# @depth: Number of layers (0 = top image, 1 = top image's backing file, etc.)
+#         before reaching one for which the range is allocated.  The value is
+#         in the range 0 to the depth of the image chain - 1.
+# @zero: the sectors in this range read as zeros
+# @data: reading the image will actually read data from a file (in particular,
+#        if @offset is present this means that the sectors are not simply
+#        preallocated, but contain actual data in raw format)
+# @offset: if present, the image file stores the data for this range in
+#          raw format at the given offset.
+# Since 1.6
+{ 'type': 'BlockDeviceMapEntry',
+  'data': { 'start': 'int', 'length': 'int', 'depth': 'int', 'zero': 'bool',
+            'data': 'bool', '*offset': 'int' } }
 # @BlockDirtyInfo:
 # Block dirty bitmap information.
diff --git a/qemu-img.texi b/qemu-img.texi
index 69f1bda..43f0b31 100644
--- a/qemu-img.texi
+++ b/qemu-img.texi
@@ -213,6 +213,52 @@ To enumerate information about each disk image in the 
above chain, starting from
 qemu-img info --backing-chain snap2.qcow2
 @end example
address@hidden map [-f @var{fmt}] address@hidden @var{filename}
+Dump the metadata of image @var{filename} and its backing file chain.
+In particular, this commands dumps the allocation state of every sector
+of @var{filename}, together with the topmost file that allocates it in
+the backing file chain.
+Two option formats are possible.  The default format (@code{human})
+only dumps known-nonzero areas of the file.  Known-zero parts of the
+file are omitted altogether, and likewise for parts that are not allocated
+throughout the chain.  @command{qemu-img} output will identify a file
+from where the data can be read, and the offset in the file.  Each line
+will include four fields; for example:
+0       131072       2        327680
address@hidden example
+means that 131072 bytes starting at offset 0 in the image are available at
+depth 2 (i.e. by opening in @code{raw} format the backing file of the
+backing file of @var{filename}) starting at offset 327680.  Data that
+is compressed, encrypted, or otherwise not available in raw format will
+cause an error if @code{human} format is in use.
+The alternative format @code{json} will return an array of dictionaries
+in JSON format.  It will include similar information in
+the @code{start}, @code{length}, @code{depth}, @code{offset} fields;
+it will also include other more specific information:
address@hidden @minus
+whether the sectors contain actual data or not (boolean field @code{data};
+if false, the sectors are either unallocated or stored as optimized
+all-zero clusters);
+whether the data is known to read as zero (boolean field @code{zero});
address@hidden itemize
+In JSON format, the @code{offset} field is optional; it is absent in
+cases where @code{human} format would omit the entry or exit with an error.
+If @code{data} is false and the @code{offset} field is present, the
+corresponding sectors in the file are not yet in use, but they are
+For more information, consult @file{include/block/block.h} in QEMU's
+source code.
 @item snapshot [-l | -a @var{snapshot} | -c @var{snapshot} | -d @var{snapshot} 
] @var{filename}
 List, apply, create or delete snapshots in image @var{filename}.

reply via email to

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