KVM virtualizációnál a dinamikus lemezek mérete annak ellenére növekszik, hogy a rajta felhasznált tárterület relatív nem változik. Ez ott jelent(het) problémát, ha ezt nem kezeli le a mentő szoftver. Proxmox esetében lehet tömörítést is alkalmazni a mentésekhez, de erre az nem megoldás. Két merevlemezen 52GB-ot csökkentettem az alábbi eljárással!
Természetesen az egész ügyet el lehet kerülni, ha a virtuális szerverek telepítésekor jól méretezünk. Esetemben felülméreteztem. Számomra ebből az a tanulság, hogy inkább kevesebb legyen a ráhagyás az egyes partíciókon, mert növelni könnyebb azokat, mint csökkenteni. A másik tanulság, hogy az LVM alkalmazása ezt megkönnyítheti, de ebben a tanulmányban nem térek erre ki.
A megoldás lépései a következők:
1. lépés – a szabad hely kinullázása a VM-ben
2. lépés – a “kinullázott” fájl törlése
3. lépés – a VM leállítása
4. lépés – shrinking qcow2 disks
5. lépés – a diskek felcserélése
6. lépés – a konzisztencia ellenőrzése
7. lépés – a VM elindítása
8. lépés – a VM szolgáltatásainak ellenőrzése
9. lépés – a régi diskek törlése
Lássuk mi a méreteket a virtuális szerveren (vm) és a hypervisoron (proxmox):
root@vm:~# df -h / Filesystem Size Used Avail Use% Mounted on /dev/vda1 76G <strong>4.5G</strong> 67G 7% / root@vm:~# df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/vdc1 296G <strong>14G</strong> 268G 5% /var/www root@proxmox:~# ls -lh /mnt/pve/VM/images/103/ -rw-r--r-- 1 root root <strong>38G</strong> Apr 21 10:02 vm-103-disk-1.qcow2 -rw-r--r-- 1 root root <strong>35G</strong> Apr 21 11:45 vm-103-disk-3.qcow2
vda1 = vm-103-disk-1.qcow2
vdc1 = vm-103-disk-3.qcow2
A probléma abból adódik, hogy hogy az 1-es és a 3-as disk együttes mérete 73GB és ahova mentek nincs ennyi többlet hely (azaz ennek tömörített mérete kb. 62GB). A Proxmox mentésére jellemző, hogy előbb elkészíti a mentést, majd ha minden rendben törli a korábbit.
Most pedig nézzük meg a változtatások után:
root@proxmox:~# ls -lh /mnt/pve/VM/images/103/ -rw-r--r-- 1 root root <strong>4.2G</strong> Apr 21 12:40 /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 -rw-r--r-- 1 root root <strong>17G</strong> Apr 21 12:56 /mnt/pve/VM/images/103/vm-103-disk-3.qcow2
Vágjunk bele!
—————————————————————————————————-
1. lépés – Disk1 kinullázása
Figyelem a root partíció méretét:
root@vm:~# watch df -h / Filesystem Size Used Avail Use% Mounted on /dev/vda1 76G <strong>4.6G</strong> 67G 7% /
FONTOS, hogy semmiképpen ne írjuk tele!!!
Egy másik konzolon elindítottam a “kinullázást”:
root@vm:~# dd if=/dev/zero of=/zero_file bs=1M ^C47279+0 records in 47279+0 records out 49575624704 bytes (50 GB) copied, 3664.18 s, 13.5 MB/s
Amikor megállítottam, valahogy így nézett ki a mérete:
root@vm:~# df -h / Filesystem Size Used Avail Use% Mounted on /dev/vda1 76G <strong>51G</strong> 21G 72% / root@proxmox:~# ls -lh /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 -rw-r--r-- 1 root root <strong>55G</strong> Apr 21 11:41 /mnt/pve/VM/images/103/vm-103-disk-1.qcow2
—————————————————————————————————-
2. lépés – a “kinullázott” fájl törlése, hogy az eredeti méretet visszakapjuk
root@vm:~# rm /zero_file root@vm:~# df -h / Filesystem Size Used Avail Use% Mounted on /dev/vda1 76G <strong>4.6G</strong> 67G 7% /
Itt jegyezném meg, hogy direkt nem írtam végig a szabad helyemet nullával, hanem csak picivel mentem túl az eredeti hypervisor méreten. Valamint azt is figyeltem, hogy a hypervisoron mikor kezd el növekedni a qcow2 disk. Majdnem beérte (néhány GB híja), mikor hízni kezdett. Komoly fejfájást okozhat, ha magára hagyjuk a dd-t és koppig írja a lemezt! Ezt mindenképpen kerüljük el!
—————————————————————————————————-
1. lépés (ismét) – Disk3 kinullázása
root@vm:~# watch df -h /var/www Filesystem Size Used Avail Use% Mounted on /dev/vdc1 296G <strong>14G</strong> 268G 5% /var/www root@vm:~# dd if=/dev/zero of=/var/www/zero_file bs=1M ^C22779+0 records in 22779+0 records out 23885512704 bytes (24 GB) copied, 949.35 s, 25.2 MB/s root@vm:~# watch df -h /var/www/ Filesystem Size Used Avail Use% Mounted on /dev/vdc1 296G <strong>36G</strong> 245G 13% /var/www root@proxmox:~# ls -lh /mnt/pve/VM/images/103/vm-103-disk-3.qcow2 -rw-r--r-- 1 root root <strong>39G</strong> Apr 21 12:01 /mnt/pve/VM/images/103/vm-103-disk-3.qcow2
—————————————————————————————————-
2. lépés (ismét) – a “kinullázott” fájl törlése
root@vm:~# rm /var/www/zero_file root@vm:~# df -h /var/www/ Filesystem Size Used Avail Use% Mounted on /dev/vdc1 296G <strong>14G</strong> 268G 5% /var/www
—————————————————————————————————-
3. lépés – a VM leállítása
root@vm:~# shutdown -h now
—————————————————————————————————-
4. lépés – shrinking qcow2 disks
root@proxmox:~# ls -lh /mnt/pve/VM/images/103/ -rw-r--r-- 1 root root 55G Apr 21 12:03 vm-103-disk-1.qcow2 -rw-r--r-- 1 root root 39G Apr 21 12:03 vm-103-disk-3.qcow2 root@proxmox:~# qemu-img convert -c -O qcow2 /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 /mnt/pve/VM/images/103/vm-103-disk-1-shrunk.qcow2 root@proxmox:~# qemu-img convert -O qcow2 /mnt/pve/VM/images/103/vm-103-disk-3.qcow2 /mnt/pve/VM/images/103/vm-103-disk-3-shrunk.qcow2
—————————————————————————————————-
5. lépés – a diskek felcserélése
root@proxmox:~# mv /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 /mnt/pve/VM/images/103/vm-103-disk-1-bak.qcow2 root@proxmox:~# mv /mnt/pve/VM/images/103/vm-103-disk-1-shrunk.qcow2 /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 root@proxmox:~# mv /mnt/pve/VM/images/103/vm-103-disk-3.qcow2 /mnt/pve/VM/images/103/vm-103-disk-3-bak.qcow2 root@proxmox:~# mv /mnt/pve/VM/images/103/vm-103-disk-3-shrunk.qcow2 /mnt/pve/VM/images/103/vm-103-disk-3.qcow2
—————————————————————————————————-
6. lépés – a konzisztencia ellenőrzése
root@proxmox:~# ls -lh /mnt/pve/VM/images/103/vm-103-disk-1* -rw-r--r-- 1 root root 55G Apr 21 12:14 /mnt/pve/VM/images/103/vm-103-disk-1-bak.qcow2 -rw-r--r-- 1 root root 4.2G Apr 21 12:40 /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 root@proxmox:~# qemu-img check /mnt/pve/VM/images/103/vm-103-disk-1.qcow2 No errors were found on the image. root@proxmox:~# ls -lh /mnt/pve/VM/images/103/vm-103-disk-3* -rw-r--r-- 1 root root 39G Apr 21 12:13 /mnt/pve/VM/images/103/vm-103-disk-3-bak.qcow2 -rw-r--r-- 1 root root 17G Apr 21 12:56 /mnt/pve/VM/images/103/vm-103-disk-3.qcow2 root@proxmox:~# qemu-img check /mnt/pve/VM/images/103/vm-103-disk-3.qcow2 No errors were found on the image.
—————————————————————————————————-
7. lépés – a VM elindítása
—————————————————————————————————-
8. lépés – a VM szolgáltatásainak ellenőrzése
—————————————————————————————————-
9. lépés – a régi diskek törlése
root@proxmox:~# rm /mnt/pve/VM/images/103/vm-103-disk-1-bak.qcow2 root@proxmox:~# rm /mnt/pve/VM/images/103/vm-103-disk-3-bak.qcow2
Gondolkodtam azon, hogy mi lenne, ha a partíciókat és a disk méreteket is csökkenteném, de a root file systemhez kicsit komplikált lenne az ügy, így ez kimaradt…