Bug 1379930 - image exported by qemu-nbd couldn't get right 'file format'
Summary: image exported by qemu-nbd couldn't get right 'file format'
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.3
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Virtualization Maintenance
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 1379929
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-09-28 07:20 UTC by Han Han
Modified: 2016-09-28 09:54 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1379929
Environment:
Last Closed: 2016-09-28 09:07:40 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Han Han 2016-09-28 07:20:46 UTC
The  bug is also reproduced on qemu-kvm-rhev-2.6.0-27.el7.x86_64.
+++ This bug was initially created as a clone of Bug #1379929 +++

Description of problem:
As subject

Version-Release number of selected component (if applicable):
nbdkit-1.1.12-1.fc25.x86_64
qemu-img-2.7.0-1.fc26.x86_64


How reproducible:
100%

Steps to Reproduce:
1. Create a qcow2 image:
# qemu-img create /tmp/xx.qcow2 -f qcow2 100M
Formatting '/tmp/xx.qcow2', fmt=qcow2 size=104857600 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16

Export by qemu-nbd:
# qemu-nbd -t -p 30001 --format=qcow2 /tmp/xx.qcow2

2. Check the image local and via nbd
# qemu-img info /tmp/xx.qcow2
image: /tmp/xx.qcow2
file format: qcow2
virtual size: 100M (104857600 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

#  qemu-img info nbd://localhost:30001
image: nbd://localhost:30001
file format: raw
virtual size: 100M (104857600 bytes)
disk size: unavailable

Actual results:
As step2

Expected results:
qemu-img info via nbd get right result.

Additional info:
Try to do above steps with nbdkit and the result is right.
# nbdkit -p 30000 file file=/tmp/xx.qcow2
# qemu-img info nbd://localhost:30000
image: nbd://localhost:30000
file format: qcow2
virtual size: 100M (104857600 bytes)
disk size: unavailable
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

Comment 2 Daniel Berrangé 2016-09-28 09:07:40 UTC
When you ran 'qemu-nbd' you gave it a --format=qcow2 argument, so it is exporting the *contents* of the qcow2 image, ie a *raw* volume.  So the qemu-img info command is correct in reporting that it is raw.

Comment 3 Han Han 2016-09-28 09:53:14 UTC
(In reply to Daniel Berrange from comment #2)
> When you ran 'qemu-nbd' you gave it a --format=qcow2 argument, so it is
> exporting the *contents* of the qcow2 image, ie a *raw* volume.  So the
> qemu-img info command is correct in reporting that it is raw.

I try to use 'qemu-nbd -t -p 30001 --format=raw' and get qcow2 format when using qemu-img info. Well, for the issue in comment0, it is not a bug.

But the manual of qemu-nbd is confusing:
-f, --format=fmt
           Force the use of the block driver for format fmt instead of auto-detecting
I couldn't get the info of 'exporting the *contents* of the qcow2 image'. Maybe we should improve the manual page and give some examples.

Comment 4 Daniel Berrangé 2016-09-28 09:54:34 UTC
I don't think there's anything that needs fixing here, this behaviour is consistent with elsewhere.


Note You need to log in before you can comment on or make changes to this bug.