Kvm notes sandbox
Good links
Host setup
Remember to enable virtualization inside bios:
for hp proliats it is:
Advanced options -> Processor Options -> Intel(R) Virtualization Technology and No-Excecute Memory Protection
Install kvm patterns:
# zypper in -t pattern kvm_server # zypper in -t pattern kvm_tools # zypper in spice-vdagent
Host IOMMU
Add to host cmdline 'GRUB_CMDLINE_LINUX_DEFAULT' in /etc/default/grub file:
intel_iommu=on console=ttyS0
or for AMD host system:
amd_iommu=on console=ttyS0
Host I/O Scheduler
IBM KVM best practices guide recomends to use Deadline scheduler.
https://www.ibm.com/support/knowledgecenter/linuxonibm/liaat/liaatbpblockioperf.htm
Add to 'GRUB_CMDLINE_LINUX_DEFAULT' inside /etc/default/grub:
elevator=deadline
Forward kvm host qemu vnc with ssh
$ ssh -L 5900:localhost:5900 <kvm-host-ip> -N
Create guest
virt-install \ --virt-type kvm \ --name basebox_opensuse42_2 \ --description "My basebox openSUSE 42.2" \ --os-type=Linux \ --os-variant=opensuse42.2 \ --ram=2048 --vcpus=2 \ --disk path=/home/kvm/images/basebox_opensuse42_2.img,device=disk,bus=virtio,size=20,sparse=true,format=raw,cache=none \ --disk path=/home/kvm/openSUSE-Leap-42.2-DVD-x86_64.iso,device=cdrom \ --graphics spice,listen=172.16.1.78 \ --network bridge:br0
Virsh
List all guests even not started
# virsh list --all
Guest migration
Dump config
# virsh dumpxml --migratable <guest-name> >guest-name.xml
Restore guest config on new host
# virsh define guest-name.xml
Edit guest with virsh
# virsh edit guest-name
Attach block device to guest
Create xml config for example vda.xml
<disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source dev='/dev/sda5'/> <target dev='vda' bus='virtio'/> </disk>
Permanently attach block device to already existing domain
# virsh attach-disk <domain-name> vda.xml --persistent
Connect to console with virsh
Add serial console to guest, virsh edit guest
<devices> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console>
connect to guest console:
# virsh console guest-name
Clonning guest
It it possible to clone with virsh dumpxml, but dont forget to change uuid, mac and vm name.
KVM basebox notes
- Add console=ttyS0 into bootloader cmdline for virsh console to work. (require syslinux package)
- Install package rsyslog (this probably will remove systemd-logger package) and start rsyslog.service
Test disk performance
Test with iozone:
$ iozone -a -i0 -i1 -i2 -s512M -r64k
Test with dd:
# dd if=/dev/sda1 of=/dev/null bs=1M count=1024 iflag=direct skip=1024 # dd if=/dev/zero of=test bs=1M count=1024 oflag=direct