Skip to content

Storage, volumes, snapshots, and backups

Storage is where Incus keeps instance disks, custom volumes, images, and snapshots.

Official docs:

  • Storage: https://linuxcontainers.org/incus/docs/main/explanation/storage/
  • Storage pools: https://linuxcontainers.org/incus/docs/main/howto/storage_pools/

Inspect storage

incus storage list
incus storage show default
incus storage info default

Common drivers:

  • dir: simplest, easy to understand, slower snapshots/clones;
  • zfs: excellent snapshots/clones, good for homelabs with ZFS;
  • btrfs: snapshot-friendly on Btrfs systems;
  • lvm: block-backed storage with thin provisioning options.

Instance root disks

Show devices:

incus config device show web-01
incus config show web-01 --expanded

Resize a root disk if the storage driver supports it:

incus config device override web-01 root size=20GiB

Custom storage volumes

Create a volume:

incus storage volume create default app-data

Attach it to an instance:

incus config device add web-01 app-data disk pool=default source=app-data path=/srv/app-data

Remove from instance:

incus config device remove web-01 app-data

Delete the volume:

incus storage volume delete default app-data

Snapshots

Instance snapshot:

incus snapshot web-01 before-upgrade
incus restore web-01 before-upgrade
incus delete web-01/before-upgrade

Volume snapshot:

incus storage volume snapshot default app-data before-change
incus storage volume restore default app-data before-change
incus storage volume delete default app-data/before-change

Export backups

Export an instance:

incus export web-01 web-01-backup.tar.gz

Import it:

incus import web-01-backup.tar.gz

For important services, test imports on another host before trusting backups.

Copy to another pool or host

Copy instance to another local name:

incus copy web-01 web-01-copy

Copy to another remote:

incus copy web-01 backup-host:web-01

Storage hygiene

incus list
incus image list
incus storage volume list default

Clean up:

  • old stopped test instances;
  • old snapshots;
  • unused custom volumes;
  • unused local images.

Backup habit

Before risky changes:

incus snapshot app-01 before-risky-change
incus export app-01 app-01-$(date +%Y%m%d).tar.gz

After verifying the change, remove temporary snapshots so storage does not silently fill up.