Soluzione 1:
A volte la documentazione pertinente è nascosta nei file di configurazione piuttosto che, ad esempio, nella documentazione. Così sembra con LVM.
 Per impostazione predefinita, LVM tenterà automaticamente di attivare i volumi su tutti i dispositivi fisici che vengono connessi al sistema dopo l'avvio, purché siano presenti tutti i PV, e lvmetad e udev (o più recentemente systemd) sono in esecuzione. Quando viene creata l'istantanea LVM, viene attivato un evento udev e poiché l'istantanea contiene un PV, lvmetad esegue automaticamente pvscan e così via.
 Osservando /etc/lvm/backup/docker-volumes Sono stato in grado di determinare che lvmetad aveva eseguito esplicitamente pvscan sullo snapshot utilizzando i numeri maggiore e minore del dispositivo, che aggirano i filtri LVM che normalmente lo impedirebbero. Il file conteneva:
description = "Created *after* executing 'pvscan --cache --activate ay 253:13'"
 
 Questo comportamento può essere controllato impostando auto_activation_volume_list in /etc/lvm/lvm.conf . Consente di impostare quali gruppi di volumi, volumi o tag possono essere attivati automaticamente.
Quindi, ho semplicemente impostato il filtro per contenere entrambi i gruppi di volumi per l'host; qualsiasi altra cosa non corrisponderà al filtro e non verrà attivata automaticamente.
auto_activation_volume_list = [ "mandragora", "vm-volumes" ]
 I volumi LVM del guest non vengono più visualizzati sull'host e, infine, i miei backup sono in esecuzione...
Soluzione 2:
Si desidera modificare il valore 'filter' in /etc/lvm/lvm.conf per ispezionare solo i dispositivi fisici sull'host KVM; il valore predefinito accetta "ogni dispositivo a blocchi" che include gli stessi LV. Il commento sopra il valore predefinito è abbastanza completo e può spiegare l'utilizzo meglio di me.
Soluzione 3:
 Ho riscontrato più o meno lo stesso problema in combinazione con vgimportclone . A volte falliva con questo:
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Physical volume "/tmp/snap.iwOkcP9B/vgimport0" changed
  1 physical volume changed / 0 physical volumes not changed
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Volume group "insidevgname" successfully changed
  /dev/myvm-vg: already exists in filesystem
  New volume group name "myvm-vg" is invalid
Fatal: Unable to rename insidevgname to myvm-vg, error: 5
 
 A quel punto, se volevo distruggere lo snapshot, dovevo prima disabilitare temporaneamente udev a causa del bug descritto su https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081
 Ma anche allora, dopo aver apparentemente disattivato con successo il gruppo di volumi di LVM nidificato, la mappatura delle partizioni per il PV nidificato, creata da kpartx , in qualche modo è rimasto in uso.
Il trucco sembrava essere che il mapper del dispositivo manteneva una mappatura principale aggiuntiva utilizzando il vecchio nome del gruppo di volumi, come questo nell'elenco ad albero:
insidevgname-lvroot (252:44)
 └─outsidevgname-myvm--root-p2 (252:43)
    └─outsidevgname-myvm--root (252:36)
 
 La soluzione era rimuovere semplicemente quella particolare mappatura con dmsetup remove insidevgname-lvroot . Dopodiché, kpartx -d e lvremove ha funzionato bene.