This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
computing:virtmanagerhell [2022/11/13 16:13] – oemb1905 | computing:virtmanagerhell [2023/01/15 17:47] (current) – oemb1905 | ||
---|---|---|---|
Line 44: | Line 44: | ||
virsh destroy guest1 | virsh destroy guest1 | ||
- | I prefer the raw format (.img) but if I change my mind later, perhaps because I want snapshots, then I can easily shutdown the machine and convert the image as follows: | + | I prefer the raw format (.img) but if I change my mind later, perhaps because I want snapshots, then I can easily shutdown the machine and convert the image as follows. If I change my mind, I can also go in reverse back to raw. |
- | qemu-img convert -f raw -O qcow2 guest1.img guest1.qcow2 | + | qemu-img convert |
+ | 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' | If you do end up using this, then you will need to edit the virtual machine' | ||
Line 62: | Line 63: | ||
virsh snapshot-create guest1 | virsh snapshot-create guest1 | ||
+ | | ||
+ | To create an external snapshot, append the following arguments: | ||
+ | |||
+ | virsh snapshot-create-as guest1 snapshot1 --description "first snapshot 11-13-22" | ||
| | ||
If you want to revert to the latest snapshot, then execute this: | If you want to revert to the latest snapshot, then execute this: | ||
Line 67: | Line 72: | ||
virsh snapshot-revert guest1 --current | virsh snapshot-revert guest1 --current | ||
| | ||
- | If you need to delete a particular snapshot, execute | + | If you need to delete a particular |
| | ||
virsh snapshot-delete guest1 snapshot1 | virsh snapshot-delete guest1 snapshot1 | ||
+ | virsh snapshot-delete guest1 --current --children-only | ||
+ | |||
| | ||
To list all snapshots for a particular guestOS, execute this: | To list all snapshots for a particular guestOS, execute this: | ||
Line 79: | Line 86: | ||
virsh snapshot-info guest1 snapshot | virsh snapshot-info guest1 snapshot | ||
virsh snapshot-dumpxml guest1 snapshot1 | virsh snapshot-dumpxml guest1 snapshot1 | ||
+ | | ||
+ | If you need to make a live backup, do the following (Note: make sure that '' | ||
+ | |||
+ | |||
+ | virsh domfsfreeze guest1.qcow2 | ||
+ | qemu-img create -f qcow2 -b guest1.qcow2 snapshot.qcow2 | ||
+ | virsh domfsthaw guest1.qcow2 | ||
+ | |||
| | ||
At times you may need to resize or gather information about a particular virtual disk. If they are in the qcow2 format, gather information as follows: | At times you may need to resize or gather information about a particular virtual disk. If they are in the qcow2 format, gather information as follows: | ||
Line 84: | Line 99: | ||
qemu-img info disk.qcow2 | qemu-img info disk.qcow2 | ||
| | ||
- | To regain space that is being used needlessly, you can sparsify the qcow2 disk as follows: | + | To regain space that is being used needlessly, you can sparsify the qcow2 disk. Note that you must install virt-sparsify separately with '' |
virt-sparsify --in-place disk.qcow2 | virt-sparsify --in-place disk.qcow2 | ||
Line 93: | 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/ | ||
+ | | ||
+ | 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, | ||
+ | |||
+ | dd if=/ | ||
+ | | ||
+ | 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 / | ||
+ | qemu-img create -f qcow2 vm1-backup.qcow2 32G | ||
+ | virsh attach-disk guestOS.qcow2 \ | ||
+ | --source / | ||
+ | --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 174: | Line 221: | ||
kpartx -d debian10.img | kpartx -d debian10.img | ||
- | --- // | + | --- // |