As the side-note in the article mentions, the core idea of "copy-on-write" has been around for ages. In context of virtualization, check out QEMU's "qcow2" format and its notion of "backing files" and "overlays".
A quick example to take offline, instantaneous "disk snapshots" (QEMU can do this for live VMs too): Let's assume you already have a disk image of a clean Linux distro, let's call it _base.raw_. Then you can create instantaneous "snapshot"[1] this way:
$> qemu-img create -f qcow2 -b ./base.raw -F raw overlay1.qcow2
[The "-F raw" is specifying the file format of the backing file; this is a good practice to explicitly mention this when creating overlay files;]
Once you do this, and boot the VM with overlay1.qcow2, all the new guest writes will go to overlay1.qcow2. And whenever the guest need to refer to some old data it is copied over from the backing file, base.raw into the overlay1.qcow2 file. This lets you take a a backup of the base image, or make more "snapshots" (overlays) based on it.
To take an instantaneous disk snapshot while the guest is running, refer to the docs here[2].
[1] The term "snapshot" here a bit of a misnomer, it is actually called an "overlay" — because the overlay file "refers" to its backing file, which becomes read-only once you create the overlay.
A quick example to take offline, instantaneous "disk snapshots" (QEMU can do this for live VMs too): Let's assume you already have a disk image of a clean Linux distro, let's call it _base.raw_. Then you can create instantaneous "snapshot"[1] this way:
[The "-F raw" is specifying the file format of the backing file; this is a good practice to explicitly mention this when creating overlay files;]Once you do this, and boot the VM with overlay1.qcow2, all the new guest writes will go to overlay1.qcow2. And whenever the guest need to refer to some old data it is copied over from the backing file, base.raw into the overlay1.qcow2 file. This lets you take a a backup of the base image, or make more "snapshots" (overlays) based on it.
To take an instantaneous disk snapshot while the guest is running, refer to the docs here[2].
[1] The term "snapshot" here a bit of a misnomer, it is actually called an "overlay" — because the overlay file "refers" to its backing file, which becomes read-only once you create the overlay.
[2] https://libvirt.org/kbase/live_full_disk_backup.html