Unable to launch a VM using lvmcluster pool for root device storage (incus 6.23)

Hi,

I have a pair of incus servers, on Rocky 9, with a shared NVME/TCP LUN which is used for an lvmcluster storage pool.

# incus storage show san
config:
  size: "3298530689024"
description: ""
name: san
driver: lvmcluster
used_by:
  - /1.0/instances/stunning-hare
  - /1.0/instances/touched-mako
  - /1.0/storage-pools/san/volumes/custom/sanblocktest
  - /1.0/storage-pools/san/volumes/custom/santest
status: Created
locations:
  - incus1
  - incus2

The lvmcluster pool works perfectly well for

creating custom volumes, both filesystem and block types, as you can see here:

# incus storage volume list san
+-----------+---------------+-------------+--------------+---------+----------+
|   TYPE    |     NAME      | DESCRIPTION | CONTENT-TYPE | USED BY | LOCATION |
+-----------+---------------+-------------+--------------+---------+----------+
| container | stunning-hare |             | filesystem   | 1       |          |
+-----------+---------------+-------------+--------------+---------+----------+
| custom    | sanblocktest  |             | block        | 0       |          |
+-----------+---------------+-------------+--------------+---------+----------+
| custom    | santest       |             | filesystem   | 0       |          |
+-----------+---------------+-------------+--------------+---------+----------+

use as a backing store for containers.

However, I cannot launch or create an VM using it as a storage pool, with some very curious errors:

# incus launch rocky-9-cloud --storage san --target incus1
Launching the instance
Error: Failed creating instance from image: Failed to mount LVM logical volume: Failed to mount "/dev/dm-13" on "/var/lib/incus/storage-pools/san/virtual-machines/humble-owl.incustmp" using "btrfs": no such device
# incus create --vm --empty emptyvmtest --storage san
Creating emptyvmtest
Error: Failed creating instance: Failed to mount LVM logical volume: Failed to mount "/dev/dm-17" on "/var/lib/incus/storage-pools/san/virtual-machines/emptyvmtest.incustmp" using "btrfs": no such device

watching the system, I see the volumes being created and then disappearing…

Every 2.0s: lvs pstore                                                                                                                incus2: Thu Jun 18 12:57:39 2026

  LV                                    VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  containers_stunning--hare             pstore -wi-ao---k  10.00g
  containers_touched--mako              pstore -wi-ao---k  10.00g
  custom_default_sanblocktest.block     pstore -wi------k  10.00g
  custom_default_santest                pstore -wi------k  10.00g
  virtual-machines_organic--aphid       pstore -wi------k 500.00m <--
  virtual-machines_organic--aphid.block pstore -wi------k  10.00g <-- 

Changing the default filesystem used by the storage pool to “ext4” rather than “btrfs” makes no difference. It seems like incus is attempting to mount the LV as a BTRFS filesystem, but it’s supposed to be a block device, so I find that curious.

Any ideas? Or tips how I should debug this. strace is unhelpful.

I’d look at the dmesg output for any btrfs related error and maybe manually make sure that btrfs is functional on those servers.

lvmcluster currently depends on btrfs for the config volumes as it’s no longer possible to use native LVM snapshots for our user and btrfs is the only filesystem with suitable built-in snapshots.