Storage concepts
Datastore kinds, disk formats, thin and thick provisioning, where the files of a virtual machine live and how space is counted.
A datastore is where the files of virtual machines live. It has a name, a type, a capacity and the list of hosts that have mounted it. The controller keeps the record; the host agent mounts the storage and reads its capacity.
Datastore kinds
| Type in the API | Console label | What it is |
|---|---|---|
LOCAL | Local | A directory on one host. Only that host can reach it. |
NFS | NFS | An export of an NFS server, mounted by the hosts that use it. Version 3 and version 4.1 are offered. |
BLOCK | Block (iSCSI, FC) | A LUN that a host reaches over software iSCSI, with a file system on it. |
The type values RBD, LINSTOR and ZFS also exist; the host endpoints of this version create local, NFS and iSCSI datastores, see Datastores and iSCSI. NFS and iSCSI datastores need the licence features remote_storage.nfs and remote_storage.iscsi.
The console shows whether a datastore is reachable: Accessible from all hosts or Not accessible. A datastore on shared storage, NFS or iSCSI, can be mounted by several hosts.
Disk formats
Disks are qcow2 files by default. The new virtual machine wizard also accepts images in the formats img, raw and vmdk as the source of a disk. A qcow2 disk can sit on top of another file: a linked clone is a qcow2 file that stores only its own changes and reads the rest from a base image or snapshot. A linked clone needs that base to stay where it is, on the same datastore.
Change tracking adds small files next to a disk, named after the image with the ending .kcbt. They belong to the disk.
Thin and thick
A thin disk uses space on the datastore as the guest writes. A thick disk reserves its full size when it is created. The console creates thin disks. Through the API a disk has the flag thin.
The checks differ. A thick disk, or a grown thick disk, must fit in the free space of the datastore. A thin disk may be larger than the free space, up to the limit max_thin_disk_gib of the controller, or up to the capacity of the datastore when that setting is 0. A disk is never made smaller.
Where the files are
Each datastore is a folder tree. The wizard puts the files of a virtual machine in a folder with the name of the machine, for example web-01/web-01.qcow2. Paths are always relative to the root of the datastore, never absolute and never with ... Unregistering a virtual machine writes the file .kyvernon-vm.json next to its disks, so the machine can be registered again.
Files that belong to a virtual machine are protected: the disk of a virtual machine, and a folder that holds one, cannot be deleted through the file endpoints. An image that is the base of a linked clone stays until the clones are gone.
How space is counted
The console shows for each datastore the Capacity, the Free space and the Used space. A virtual machine shows its Provisioned storage, the sum of the sizes of its disks. With thin disks and linked clones, provisioned space can be larger than the space used. Watch the free space of datastores that hold thin disks.
Files that nothing references can be found with the orphan report, see Disks.
Related tasks
Version 0.1. Last changed: 2026-11-13