Il che è davvero incasinato con il mio piano per il backup di questa macchina ...
Ho un server che è un hypervisor KVM per diverse macchine virtuali. Uno di questi sta eseguendo Docker. Ha i suoi volumi Docker su / dev / vdb, che è impostato come PV LVM, su cui Docker utilizza il suo driver direct-lvm per archiviare i dati del contenitore Docker. Questo disco virtuale è un LVM LV sul disco locale dell'host.
Sia l'host che l'ospite gestiscono Fedora 21.
La vista dell'host di questo volume è (viene mostrato solo il volume pertinente):
[root@host ~]# lvs
LV VG Attr LSize
docker2.example.com-volumes vm-volumes -wi-ao---- 40.00g
[root@host ~]# dmsetup ls --tree
vm--volumes-docker2.example.com--volumes (253:10)
└─ (9:125)
La vista dell'ospite su questo volume è (di nuovo, viene mostrato solo il volume rilevante):
[root@docker2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb docker-volumes lvm2 a-- 40.00g 0
Con tutti gli altri volumi LVM sull'host, posso fare un'istantanea con lvcreate --snapshot
, eseguire il backup dell'istantanea e quindi lvremove
senza problemi. Ma con questo volume particolare, non posso lvremove
perché è in uso:
[root@host ~]# lvremove /dev/vm-volumes/snap-docker2.example.com-volumes
Logical volume vm-volumes/snap-docker2.example.com-volumes is used by another device.
Alla fine ho capito che il device-mapper sull'host aveva in qualche modo capito che questa istantanea del volume logico conteneva un PV LVM, e quindi ho proceduto a mappare i volumi logici all'interno dell'istantanea sull'host (sono mostrati solo i volumi rilevanti):
[root@host ~]# dmsetup ls --tree
vm--volumes-docker2.example.com--volumes (253:10)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
docker--volumes-docker--data (253:18)
└─vm--volumes-snap--docker2.example.com--volumes (253:16)
├─vm--volumes-snap--docker2.example.com--volumes-cow (253:15)
│ └─ (9:125)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
docker--volumes-docker--meta (253:17)
└─vm--volumes-snap--docker2.example.com--volumes (253:16)
├─vm--volumes-snap--docker2.example.com--volumes-cow (253:15)
│ └─ (9:125)
└─vm--volumes-docker2.example.com--volumes-real (253:14)
└─ (9:125)
Questi corrispondono esattamente ai volumi logici all'interno della VM:
[root@docker2 ~]# lvs
LV VG Attr LSize
docker-data docker-volumes -wi-ao---- 39.95g
docker-meta docker-volumes -wi-ao---- 44.00m
In particolare, non tenta di eseguire questa operazione su LVM LV all'avvio del sistema, ma solo quando eseguo un'istantanea.
Cosa sta succedendo qui? Non voglio davvero che Device Mapper ispezioni il contenuto delle istantanee LVM per vedere se c'è qualcosa al loro interno che può essere inutilmente mappato per me. Posso sopprimere questo comportamento? O devo creare l'istantanea tramite qualche altro metodo?
pvscan --cache
per dire a lvmetad del nuovo filtro, epvscan
ora afferma che il PV viene rifiutato da un filtro, ma il problema persiste.