VM aus lassen und auch nicht kurz starten, sonst schreibt der Gast dir gleich wieder rein und der Vergleich ist wertlos. Größe vom zvol holen und den Vergleich damit begrenzen, das LV ist auf Extent-Größe aufgerundet und hinten drüber wäre immer ein Unterschied:
Code:
SIZE=$(blockdev --getsize64 /dev/zvol/rpool/data/vm-100-disk-0)
cmp -n $SIZE /dev/zvol/rpool/data/vm-100-disk-0 /dev/<vg>/vm-100-disk-0
cmp sagt dir direkt, bei welchem Byte der erste Unterschied sitzt. Liegt der Offset weit hinten oder gibt es nur ein paar Stellen, riecht das nach nicht geflushten letzten Blöcken. Sind die Unterschiede über die ganze Platte verstreut, ist es was anderes und ich würd Richtung Storage/Pfade schauen. Wenn dir ein ja/nein reicht, tuts auch
head -c $SIZE /dev/zvol/... | sha256sum auf beiden Seiten, dauert bei 7T halt.
Dass der e2fsck sauber durchläuft und dir danach ein apt mit Segfault wegfliegt, heißt im Klartext, dass die Nutzdaten selbst verbogen sind und nicht bloß Metadaten. Das ist schon heftig und wenn der cmp einen Unterschied zeigt, gehört das direkt in einen Bugreport.
Was mir noch auffällt: dein global_filter wirft nur zd und rbd raus, LVM schaut also auch auf die einzelnen sdX-Pfade. Normalerweise fängt die Multipath-Component-Detection von lvm2 das ab, aber schau doch mal mit
pvs -a drüber, ob da wirklich nur das dm-Device als PV auftaucht und nicht zusätzlich noch die nackten sdX.