Skip to main content

Libvirt Realms

Last updated: May 31, 2026Latest Frontend Version: 2.16.20

The Libvirt realm uses KVM/QEMU to control VMs. Realm configuration is defined in a file included from the realms section of ticrypt-vm.conf.

Prerequisites

Libvirt realms require:

  1. Root SSH access from ticrypt-vm to all VM hosts (RSA-2048 public key injected into /root/.ssh/authorized_keys on each host)
  2. A distributed file system shared by all VM hosts, large enough for VM images, drives, and Libvirt temporary files

See the Installation Guide for host preparation and Libvirt pool setup.

Realm Parameters

All parameters go in the included realm file and should not be nested inside additional sections.

ParameterTypeRequiredDefaultDescription
disabledBooleanWhether the realm is disabled
driverlibvirtMust be set to libvirt
nameStringDisplay name of the realm
volumes-poolStringticrypt-vmLibvirt storage pool for volumes
drives-poolStringticrypt-vm-drivesLibvirt storage pool for drives
bricks-poolStringticrypt-bricksLibvirt storage pool for VM images
log-schedulingBoolfalseEnable debug logging for the VM scheduler
registration-timeoutDurationMaximum time for a VM to boot and register
poll-frequencyDurationHow often to check VM status
network-filterStringLibvirt network filter. See nwfilter docs.
drives.lazy-allocationon, offWhether to delay drive space allocation
drives.cacheString"default"Drive cache strategy (see below)
drives.min-sizeSizeMinimum allowed drive size
drives.max-sizeSizeMaximum allowed drive size
uploadsSectionReserved for future use
scalingSectionReserved for future use
info

The volumes-pool, drives-pool, and bricks-pool parameters have sensible defaults. There is no reason to change them unless hosting multiple tiCrypt instances on the same infrastructure.

warning

registration-timeout must not be set too short. VMs that cannot boot and register within this window will be terminated.

tip

Set drives.lazy-allocation to on in nearly all cases. Storage space is consumed only as data is written, rather than being fully allocated upfront.

Drive Cache Strategies

The drives.cache parameter controls how the host OS caches drive I/O. Leave it at "default" unless you have a specific reason to change it.

ValueBehavior
"default"System default. May be writethrough or writeback depending on qemu-kvm version.
"writethrough"Host page cache enabled, disk write cache disabled. Writes complete only when committed to storage. Similar to O_DSYNC.
"writeback"Both host page cache and disk write cache enabled. Behaves like a RAID controller with RAM cache.
"none"Bypasses host page cache entirely. Similar to O_DIRECT.

Example Realm Configuration

disabled = false
driver = libvirt
name = "Primary Libvirt Realm"
volumes-pool = "ticrypt-vm"
drives-pool = "ticrypt-vm-drives"
bricks-pool = "ticrypt-bricks"
registration-timeout = 5 minutes
poll-frequency = 30 seconds
drives.lazy-allocation = on
drives.cache = "default"
drives.max-size = 500 GiB

The following are configured at the service level in ticrypt-vm.conf and apply across all realms:

  • Cost Functions: Rules that determine scheduling cost for VM placement
  • Hardware Profiles: Hardware descriptions assigned to hosts
  • Hosts: Individual machines managed via the tiCrypt UI
  • Curves: Built-in functions used within cost functions