Home

Incus Reference Guide

Modern container and virtual machine manager

Incus Architecture

Incus follows a client-server architecture where a single daemon (incusd) manages all instances, storage, and networking. The command-line client communicates with the daemon via a RESTful API over HTTPS or Unix sockets.

System Architecture

Incus Component Architecture

Incus CLI Client Command-line interface, Python/Go SDKs, REST API REST API (HTTPS / Unix Socket) Authentication, TLS encryption, Remote access incusd (Daemon) Core management daemon - handles all operations Instance Manager • Container lifecycle • VM lifecycle • Resource limits Storage Manager • ZFS, Btrfs, LVM • Snapshots • Volumes Network Manager • Bridges • DNS/DHCP • Firewalls LXC (Containers) Linux namespaces cgroups Shared kernel QEMU (VMs) KVM acceleration Full virtualization Guest kernel

Storage Architecture

Storage Backend Options

Incus Storage API ZFS • Copy-on-write • Snapshots • Compression Best performance Btrfs • Copy-on-write • Snapshots • Subvolumes Good balance LVM • Block level • LV snapshots • Thin provision Wide support Directory • Simple files • No special setup • Rsync snapshots Easy start Physical Storage (Disks, RAID, NVMe, Network Storage) Container Root FS VM Disk Images

Core Components

1. Incus Daemon (incusd)

The central management daemon that handles all operations. It runs as a system service and manages instances, storage pools, networks, and cluster operations.

2. LXC Integration

Incus uses LXC (Linux Containers) for system container functionality, providing OS-level virtualization.

3. QEMU/KVM Integration

Full hardware virtualization for running VMs with complete isolation and support for any operating system.

Networking Architecture

Network Type Description Use Case
Bridge Linux bridge connecting instances Standard networking, L2 connectivity
Managed Incus-managed bridge with DHCP/DNS Easy setup, automatic IP assignment
Physical Direct attachment to host NIC Direct network access, high performance
SR-IOV Single root I/O virtualization Near-native network performance for VMs
Overlay (VXLAN) Tunneled L2 over L3 Multi-host networking, cloud-style
OVN Open Virtual Network integration Advanced SDN, multi-cluster

Security Model

Multi-Layer Security

  • Containers: Unprivileged by default, user namespace mapping, AppArmor profiles, seccomp filters
  • VMs: Hardware-level isolation, complete kernel separation, secure boot support
  • API Access: TLS encryption, certificate authentication, RBAC for projects
  • Network Isolation: Per-instance firewalls, network ACLs, VLAN separation
  • Storage: Encrypted volumes, per-instance quotas, snapshot protection

Resource Management

Incus provides fine-grained resource control through cgroups for both containers and VMs:

Image Management

Image Server & Distribution

Incus uses an image-based workflow where instances are created from pre-built or custom images.

  • Remote Image Servers: Public servers with thousands of distributions
  • Local Cache: Downloaded images cached locally for fast deployment
  • Image Formats: Unified format for both containers and VMs
  • Custom Images: Create from running instances, import external images
  • Image Aliases: Human-readable names for image versions
  • Auto-Update: Automatic updates for cached images

Understanding Incus architecture helps in planning deployments, troubleshooting issues, and optimizing performance for your specific use cases.