Hoi zusammen,
Ich habe da nen Handlingthema beim kvm. Ich erstelle einen Snapshot auf einer VM (test04) mit preallocated=full HDD qcow2 image (22GB) - test04-system.qcow2. Beim löschen des Snapshots zeigt mir du und ls unterschiedliche Werte an.
Ich bekomme es so reproduziert:
- anzeigen Disk image information
$ qemu-img info /data/vm1/test04-system.full.qcow2
image: /data/vm1/test04-system.full.qcow2
file format: qcow2
virtual size: 22.2 GiB (23836229632 bytes)
disk size: 22.2 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
- erstellen vom Snapshot
$virsh snapshot-create test04
- Das rootfilesystem ist frei, ich erstelle ein file mit 18GB
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 22G 3.3G 19G 16% /
tmpfs 996M 8.0K 996M 1% /dev/shm
tmpfs 399M 500K 398M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 5.3M 100M 5% /boot/efi
tmpfs 200M 0 200M 0% /run/user/1000
$ sudo dd if=/dev/urandom of=/testfile bs=1M count=18000
18000+0 records in
18000+0 records out
18874368000 bytes (19 GB, 18 GiB) copied, 82.8493 s, 228 MB/s
- Ich schaue mir auf dem kvm das hdd image file an:
$ ls -lah /data/vm1/test04-system.qcow2
-rw-r--r-- 1 libvirt-qemu kvm 39G Dec 31 12:34 /data/vm1/test04-system.qcow2
$ du -sh /data/vm1/test04-system.qcow2
41G /data/vm1/test04-system.qcow2
- so weit, so gut
$ virsh snapshot-list test04
Name Creation Time State
---------------------------------------------------
1672486383 2022-12-31 12:33:03 +0100 running
$ virsh snapshot-delete test04 --snapshotname=1672486383
Domain snapshot 1672486383 deleted
- nach dem Löschen des Snapshots würde ich erwarten, dass das Imagefile wieder die Originalgrösse hat.
$ ls -lah /data/vm1/test04-system.qcow2
-rw-r--r-- 1 libvirt-qemu kvm 41G Dec 31 12:38 /data/vm1/test04-system.qcow2
$ du -sh /data/vm1/test04-system.qcow2
23G /data/vm1/test04-system.qcow2
$ file /data/vm1/test04-system.qcow2
/data/vm1/test04-system.qcow2: QEMU QCOW2 Image (v3), 23836229632 bytes
- Das Imagefile hat seine Originalgrösse, „ls" zeigt mir aber noch 41GB an. Ich würde vermuten, dass er jetzt nen sparsefile aus dem Image gemacht hat. Wie würde ich das file jetzt wieder tatsächlich „klein“ bekommen - Hintergrund: nicht alle tools unterstützen sparsefiles (backup..)?
Danke im Voraus und "guten Rutsch",
Andreas