Skip to content

lxd-to-incus may not be handling daemon storage volumes correctly #1426

@kienanstewart

Description

@kienanstewart

Required information

  • Distribution: Debian
  • Distribution version: 12 (Bookworm)
  • The output of "incus info" or if that fails:
    • Kernel version:
    • LXC version: 5.0.2-1+deb12u2
    • Incus version: 6.0.2-1~bpo12+1
    • Storage backend in use: dir, lvm, lvmcluster, zfs

Issue description

On our deployed hosts, we keep a relatively small root fs (~80-100G). When launching new incus images, images with a larger footprint will fail to launch with an error such as:

Error: Failed transferring image "962948505414268fda3520e51582bd45df907bb03f003ba1bb1cab6f734ff971" from "172.x.y.z:8443": write /var/lib/incus/images/incus_build_474263561/incus_tar_2678206713: no space left on device

Due to the relatively small root setup, all our cluster members are configured with different backups and images volumes, e.g.

$ incus config get --target X storage.backups_volume
default/storage-backups

$ incus config get --target X storage.images_volume
default/storage-images

The storage.images_volume is used for final storage, but the /var/lib/incus/images directory is still used for transient operations.

E.g.

Image export:

finalName := internalUtil.VarPath("images", info.Fingerprint)

Image building:
builddir, err := os.MkdirTemp(internalUtil.VarPath("images"), "incus_build_")

Image unpacking:
tempDir, err := os.MkdirTemp(internalUtil.VarPath("images"), "incus_image_unpack_")

Would it be reasonable to have the images storage directory used when set instead of $INCUS_DIR/images?

In the immediate, my work-around will be to mount a storage pool over /var/lib/incus/images to ensure that there is enough disk space for these operations.

Metadata

Metadata

Assignees

Labels

EasyGood for new contributors

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions