# History.
remember 'qemu-img create -f qcow2 -F raw -b ssh://kool/mnt/scratch/pipes/fedora-33.img snapshot.qcow2'
remember 'virt-sparsify --in-place snapshot.qcow2'
+remember 'ls -lh snapshot.qcow2'
+remember 'qemu-img map snapshot.qcow2'
remember 'qemu-img convert -f qcow2 snapshot.qcow2 -O raw local.img -p'
terminal
</pre>
<pre>
- nbdkit tar
-┌──────────┐filter┌────────────┐
-│ test.ova │─────▶│ qcow2 file │◀─── virt-sparsify --in-place
-└──────────┘ └────────────┘ ┌───────────┐
+┌──────────┐ ┌────────────┐ ┌────────────┐
+│ test.ova │─────▶│ tar filter │─────▶│ qcow2 file │
+└──────────┘ └────────────┘ └────────────┘
+ ◀─── virt-sparsify --in-place
+ ┌───────────┐
───▶ qemu-img convert ────▶│ local.img │
└───────────┘
</pre>
<h1>Simpler example of modification</h1>
<pre>
-┌─────────────┐http┌────────────┐ ┌────────────┐
-│ cloud image │───▶│ xz filter │───▶│ nbdkit │
-└─────────────┘ └────────────┘ └────────────┘
+ nbdkit
+┌─────────────┐http┌─────────────┐ ┌────────────┐ ┌────────────┐
+│ cloud image │───▶│ curl plugin │───▶│ xz filter │───▶│ qcow2 file │
+└─────────────┘ └─────────────┘ └────────────┘ └────────────┘
◀─── virt-sparsify --in-place
<li> nbdcopy vs qemu-img convert
<li> copy-on-read, bounded caches
<li> block size adjustment
+<li> <code>json:</code> URIs
<li> reading from containers & stop using gzip!
<li> pay attention to benchmarking & use realistic images
</ul>