User Tools

Site Tools


computing:virtmanagerhell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
computing:virtmanagerhell [2022/12/04 22:11] oemb1905computing:virtmanagerhell [2023/01/15 17:47] (current) oemb1905
Line 47: Line 47:
  
   qemu-img convert -p -f raw -O qcow2 guest1.img guest1.qcow2   qemu-img convert -p -f raw -O qcow2 guest1.img guest1.qcow2
-  qemu-img convert -p -f qcow2 -O raw gust1.qcow2 guest1.raw+  qemu-img convert -p -f qcow2 -O raw guest1.qcow2 guest1.raw
      
 If you do end up using this, then you will need to edit the virtual machine's xml file. To do that, open the file and edit the disk type. Change ''type'' and ''source file='' to match the new type and extension. If you also moved the location, you can edit that now as well. If you do end up using this, then you will need to edit the virtual machine's xml file. To do that, open the file and edit the disk type. Change ''type'' and ''source file='' to match the new type and extension. If you also moved the location, you can edit that now as well.
Line 108: Line 108:
   qemu-img resize disk.qcow2 1000G   qemu-img resize disk.qcow2 1000G
   qemu-img resize disk.qcow2 +10G   qemu-img resize disk.qcow2 +10G
 +  
 +Okay, so another big issue with qcow2 images is them growing over time from writes/deletes and then those blocks taking up space on the hypervisor while not actually being used on the guestOS any longer. To stop this, enable unmap on the virtIO disk in virsh, and then schedule a timer within the guest OS to trim those underlying blocks.
 +  
 +  sudo systemctl enable fstrim.timer
 +  sudo systemctl start fstrim.timer
 +  
 +You can also manually run fstrim and then power down the qcow2 image and convert it. You may optionally use compression to save more space, but it takes very long.
 +
 +  fstrim -v /
 +  qemu-img convert -O qcow2 guest.qcow2 guest-trimmed.qcow2
 +  qemu-img convert -O qcow2 -c guest.qcow2 guest-trimmed.qcow2
 +  
 +To test trimming functionality, I use a combination of ``ncdu`` which shows actually consumed space on the host OS, along with the following dd command to easily consume and delete space:
 +
 +  dd if=/dev/urandom of=file bs=4M count=500
 +  
 +To create a backup volume inside a guest you create the volume, attach it, and then shell into the guest and format, mount, and create an fstab entry. First, on the hostOS:
 +  
 +  cd /mnt/vms/backups/vm1-backup-dir/
 +  qemu-img create -f qcow2 vm1-backup.qcow2 32G
 +  virsh attach-disk guestOS.qcow2 \
 +    --source /mnt/vms/backups/vm1-backup-dir/vm1-backup \
 +    --target vdb \
 +    --persistent
 +  
 +Then, on the guestOS:
 +  
 +  mkdir /mnt/backup
 +  mkfs.ext4 /dev/vdb
 +  mount -t auto /dev/vdb /mnt/backup
 +  nano /etc/fstab
 +  /dev/vdb /mnt/backup ext4 defaults, 0 0
  
 The rest from here on out is my attempt at resizing an .img virtual disk using tools exclusively from virsh / virt-manager. These are highly risky moves and totally not needed for day to day operations. It was more of a mission I was on and based on a tutorial I used nearly 15 years ago when expanding a Windows VM I used for teaching software that was only on that VM. At any rate, I have only succeeded twice doing this, and often get confused looking at the l00ps. Proceed with caution! The rest from here on out is my attempt at resizing an .img virtual disk using tools exclusively from virsh / virt-manager. These are highly risky moves and totally not needed for day to day operations. It was more of a mission I was on and based on a tutorial I used nearly 15 years ago when expanding a Windows VM I used for teaching software that was only on that VM. At any rate, I have only succeeded twice doing this, and often get confused looking at the l00ps. Proceed with caution!
Line 189: Line 221:
   kpartx -d debian10.img   kpartx -d debian10.img
  
- --- //[[jonathan@haacksnetworking.org|oemb1905]] 2022/11/25 10:55//+ --- //[[jonathan@haacksnetworking.org|oemb1905]] 2023/01/15 10:31//
computing/virtmanagerhell.1670191888.txt.gz · Last modified: 2022/12/04 22:11 by oemb1905