-
-
Notifications
You must be signed in to change notification settings - Fork 336
Description
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:
Line 399 in 3c2b356
finalName := internalUtil.VarPath("images", info.Fingerprint) |
Image building:
Line 1022 in 3c2b356
builddir, err := os.MkdirTemp(internalUtil.VarPath("images"), "incus_build_") |
Image unpacking:
incus/internal/server/storage/utils.go
Line 745 in 3c2b356
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.