Title: OpenBSD vmm and qcow2 derived disks
       Author: Solène
       Date: 27 August 2023
       Tags: openbsd
       Description: In this article, you will learn how to leverage a qcow2
       feature enabling you many virtualization use case
       
       # Introduction
       
       Let me show you a very practical feature of qcow2 virtual disk format,
       that is available in OpenBSD vmm, allowing you to easily create derived
       disks from an original image (also called delta disks).
       
       A derived disk image is a new storage file that will inherit all the
       data from the original file, without modifying the original ever, it's
       like stacking a new fresh disk on top of the previous one, but all the
       changes are now written on the new one.
       
       This allows interesting use cases such as using a golden image to
       provide a base template, like a fresh OpenBSD install, or create a
       temporary disks to try changes without harming to original file (and
       without having to backup a potentially huge file).
       
       This is NOT OpenBSD specific, it's a feature of the qcow2 format, so
       while this guide is using OpenBSD as an example, this will work
       wherever qcow2 can be used.
       
 (HTM) OpenBSD vmctl man page: -b flag
       
       # Setup
       
       First, you need to have a qcow2 file with something installed in it,
       let's say you already have a virtual machine with its storage file
       `/var/lib/vmm/alpine.qcow2`.
       
       We will create a derived file `/var/lib/vmm/derived.qcow2` using the
       `vmctl` command:
       
       ```console
       # vmctl create -b /var/lib/vmm/alpine.qcow2 /var/lib/vmm/derived.qcow2
       ```
       
       That's it!  Now you have the new disk that already inherits all the
       other file data without modifying it ever.
       
       # Limitations
       
       The derived disk will stop working if the original file is modified, so
       once you make derived disks from a base image, you shouldn't modify the
       base image.
       
       However, it's possible to merge changes from a derived disk to the base
       image using the `qemu-img` command:
       
 (HTM) Red Hat documentation: Rebasing a Backing File of an Image
       
       # Conclusion
       
       The derived images can be useful in some scenarios, if you have an
       image and want to make some experimentation without making a full
       backup, just use a derived disk.  If you want to provide a golden image
       as a start like an installed OS, this will work too.
       
       One use case I had was with OpenKuBSD, I had a single OpenBSD install
       as a base image, each VM had a derived disk as their root but removed
       and recreated at every boot, but they also had a dedicated disk for
       /home, this allows me to keep all the VMs clean, and I just have a
       single system to manage.