Kvm: Difference between revisions
Jump to navigation
Jump to search
Line 57: | Line 57: | ||
# vmdk to qcow2 | # vmdk to qcow2 | ||
qemu-img convert disk0.vmdk -O qcow2 bigbluebutton.qcow2 | qemu-img convert disk0.vmdk -O qcow2 bigbluebutton.qcow2 | ||
FILE=costest-ph9l4-rhcos.vmdk ; qemu-img convert ${FILE} -O qcow2 ${FILE%.*}.qcow2 | |||
=snapshot= | =snapshot= |
Revision as of 10:28, 3 February 2023
prepare environment
# Is environment prepared for viritutalization. egrep '(vmx|svm)' /proc/cpuinfo vmx - (intel) svm - (amd)
Create disk image.
qemu-img create -f qcow2 fedora20.halfface.se.qcow2 50G
mount qcow2
qemu-img info $machine.qcow2 qemu-img info $machine.qcow2 --force-share
mount qcow2 image
# Create /dev/nbd devices if they do not exist. modprobe nbd max_part=8 # Connect qcow2 file to nbd device. qemu-nbd --connect=/dev/nbd0 ./img_output/Rocky-8.6-x86_64-dvd1/rocky8.qcow2 # Sanity check disk device. gdisk -l /dev/nbd0 Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2099200 41943039 19.0 GiB 8E00 Linux LVM # List device to mount ls -la /dev/mapper/ total 0 drwxr-xr-x 2 root root 100 2022-08-25 12:13:50 . drwxr-xr-x 22 root root 5220 2022-08-25 12:13:50 .. lrwxrwxrwx 1 root root 7 2022-08-25 12:13:50 vg0-root -> ../dm-1 # Mount device mount /dev/mapper/vg0-root /mnt/
list all domain blocks
virsh domblklist $vm
list info about block device
virsh domblkstat $vm vda --human
List short info about vm
virsh dominfo $vm
add ram on the fly
virsh setmem --domain $VM --size 1500M --current
Install software
yum install -y qemu kvm SDL bridge-utils tunctl
install virtual machine.
virt-install --connect qemu:///system --name Fedora_16 --ram 2048 --vcpus=1 -f /ssd/libvirt/Fedora_16.qcow2 -s 30 -c /install/system/linux/fedora/16/Fedora-16-x86_64-netinst.iso --vnc --noautoconsole --hvm
delete virtual machine.
virsh undefine kvm_1
list libvirt storage pools
virsh pool-list --all
connect to virtual machine.
virt-viewer Fedora_16
On remote machine over ssh
virt-viewer --connect qemu+ssh://root@anden.halfface.se/system win8
convert file format
# img to qcow2 qemu-img convert -cp -O qcow2 kvm_1.img kvm_1.qcow2 # vmdk to qcow2 qemu-img convert disk0.vmdk -O qcow2 bigbluebutton.qcow2 FILE=costest-ph9l4-rhcos.vmdk ; qemu-img convert ${FILE} -O qcow2 ${FILE%.*}.qcow2
snapshot
# Create snapshot virsh snapshot-create SL_63 # List snapshots virsh snapshot-list SL_63 # Delete snapshot virsh snapshot-delete SL_63 1346734871 # Revert to snapshot snapshot-revert virsh snapshot-revert fedora20_2.halfface.se 1414336149
List info about qcow2 image.
qemu-img info sms-app02.qcow2 --force-share image: sms-app02.qcow2 file format: qcow2 virtual size: 100G (107374182400 bytes) disk size: 107G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 2 snapshot1 0 2018-04-23 18:50:15 00:00:00.000 4 pre-patch 0 2018-04-24 10:34:05 00:00:00.000 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false
Delete snapshot
qemu-img snapshot -d 4 sms-app02.qcow2
list information
# Simple information about domain. virsh dominfo fedora_20_raid1
# View information about domain. virsh dumpxml fedora_20_raid1 | less
change value of virtual machine
virsh autostart virtual_machine_name
disk handling
# Detach one of the disks. virsh detach-disk fedora_20_raid1 vda virsh detach-disk rhel8.5 vda --persistent
# Attach disk virsh attach-disk fedora_20_raid1 /ssd/libvirt/fedora20_1.qcow2 vda --sourcetype file --subdriver qcow2 virsh attach-disk host /var/lib/libvirt/images/host-#.qcow2 vdb --driver qemu --subdriver qcow2 --targetbus virtio --persistent
# Copy kvm machine. virsh dumpxml <domain> > domain.xml vi domain.xml virsh create domain.xml
# Eject cdrom. virsh change-media www.halfface.se hda --eject
duplicate move machine
# You cannot "clone" a running vm, stop it. suspend and destroy # are also valid options for less graceful cloning virsh shutdown this.vm # copy the storage. cp /var/lib/libvirt/images/{this-vm,that-vm}.img # dump the xml for the original virsh dumpxml this-vm > /tmp/that-vm.xml # hardware addresses need to be removed, libvirt will assign # new addresses automatically sed -i /uuid/d /tmp/that-vm.xml sed -i '/mac address/d' /tmp/that-vm.xml # and actually rename the vm: (this also updates the storage path) sed -i 's/this-vm/that-vm/g' /tmp/that-vm.xml # finally, create the new vm virsh define /tmp/that-vm.xml virsh start this-vm virsh start that-vm
virt-convert
Convert vmware image to kvm.
virt-convert . --disk-format qcow2 --destination .
drivers
Drivers for other os and enhancements.
https://www.spice-space.org/download.html
access via spice
remote-viewer spice://10.151.105.122:5900
virsh capabilities
currently supported machine types.
virsh capabilities
extend qcow2 image
Inspect storage
virsh domblklist almalinux8.4
Inspect storage
virsh domblkinfo almalinux8.4 /var/lib/libvirt/images/almalinux8.4.qcow2
Make storage to new size.
virsh blockresize almalinux8.4 /var/lib/libvirt/images/almalinux8.4.qcow2 64G
Inspect storage
qemu-img info almalinux8.4.qcow2 --force-share
Create partition from free space.
fdisk /dev/vda pvcreate /dev/vda3 vgextend almalinux /dev/vda3 lvextend -l +100%FREE /dev/mapper/almalinux-root resize2fs /dev/mapper/almalinux-root xfs_growfs /dev/mapper/almalinux-root
rename vm
virsh stop foo virsh domrename foo bar cd /var/lib/libvirt/images mv foo.qcow2 bar.qcow2 # replace foo with bar virsh edit bar
rename vm
virsh domrename foo bar
dhcp leases
List networks
virsh net-list
View leases
virsh net-dhcp-leases okd01-dwb8v
stop running vm:s
virsh list --state-running --name | while read VM ; do virsh shutdown $VM ; done