Was meinen Plan, diese Maschine zu sichern, wirklich durcheinander bringt ...
Ich habe einen Server, der ein KVM-Hypervisor für mehrere virtuelle Maschinen ist. Eine davon ist Docker. Die Docker-Volumes befinden sich in / dev / vdb, das als LVM-PV eingerichtet ist und auf dem Docker seinen Direct-LVM-Treiber zum Speichern von Docker-Containerdaten verwendet. Diese virtuelle Festplatte ist eine LVM-LV auf der lokalen Festplatte des Hosts.
Sowohl Gastgeber als auch Gast betreiben Fedora 21.
Die Ansicht des Hosts zu diesem Volume lautet (nur das relevante Volume wird angezeigt):
[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)
Die Ansicht des Gastes zu diesem Band ist (wieder wird nur der relevante Band angezeigt):
[root@docker2 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb docker-volumes lvm2 a-- 40.00g 0
Mit allen anderen LVM-Volumes auf dem Host kann ich einen Snapshot lvcreate --snapshot
erstellen, den Snapshot sichern und dann lvremove
ohne Probleme. Aber mit diesem speziellen Band kann ich es nicht lvremove
, weil es verwendet wird:
[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.
Schließlich stellte ich fest, dass der Geräte-Mapper auf dem Host irgendwie herausgefunden hatte, dass dieser Snapshot für logische Volumes eine LVM-PV enthielt, und fuhr dann fort, die logischen Volumes innerhalb des Snapshots dem Host zuzuordnen (nur die relevanten Volumes werden angezeigt):
[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)
Diese entsprechen genau den logischen Volumes in der VM:
[root@docker2 ~]# lvs
LV VG Attr LSize
docker-data docker-volumes -wi-ao---- 39.95g
docker-meta docker-volumes -wi-ao---- 44.00m
Insbesondere wird nicht versucht, dies mit dem LVM-LV zu tun, wenn das System gestartet wird, sondern nur, wenn ich einen Snapshot mache.
Was geht hier vor sich? Ich möchte wirklich nicht, dass der Geräte-Mapper den Inhalt von LVM-Snapshots überprüft, um festzustellen, ob sich darin etwas befindet, das für mich nicht hilfreich zugeordnet werden kann. Kann ich dieses Verhalten unterdrücken? Oder muss ich den Schnappschuss mit einer anderen Methode erstellen?
pvscan --cache
, um lvmetad über den neuen Filter zu informieren.pvscan
Jetzt wird angegeben, dass die PV von einem Filter abgelehnt wird, das Problem besteht jedoch weiterhin.