Introduction
Introduction Statistics Contact Development Disclaimer Help
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.
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:
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.
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.