8417e1378c
The recently-added NBD context qemu:allocation-depth is able to
distinguish between locally-present data (even when that data is
sparse) [shown as depth 1 over NBD], and data that could not be found
anywhere in the backing chain [shown as depth 0]; and the libnbd
project was recently patched to give the human-readable name "absent"
to an allocation-depth of 0. But qemu-img map --output=json predates
that addition, and has the unfortunate behavior that all portions of
the backing chain that resolve without finding a hit in any backing
layer report the same depth as the final backing layer. This makes it
harder to reconstruct a qcow2 backing chain using just 'qemu-img map'
output, especially when using "backing":null to artificially limit a
backing chain, because it is impossible to distinguish between a
QCOW2_CLUSTER_UNALLOCATED (which defers to a [missing] backing file)
and a QCOW2_CLUSTER_ZERO_PLAIN cluster (which would override any
backing file), since both types of clusters otherwise show as
"data":false,"zero":true" (but note that we can distinguish a
QCOW2_CLUSTER_ZERO_ALLOCATED, which would also have an "offset":
listing).
The task of reconstructing a qcow2 chain was made harder in commit
|
||
---|---|---|
.. | ||
fuse-allow-other | ||
fuse-allow-other.out | ||
migrate-bitmaps-postcopy-test | ||
migrate-bitmaps-postcopy-test.out | ||
migrate-bitmaps-test | ||
migrate-bitmaps-test.out | ||
mirror-top-perms | ||
mirror-top-perms.out | ||
nbd-qemu-allocation | ||
nbd-qemu-allocation.out | ||
parallels-read-bitmap | ||
parallels-read-bitmap.out | ||
qsd-jobs | ||
qsd-jobs.out | ||
remove-bitmap-from-backing | ||
remove-bitmap-from-backing.out |