Kvm notes sandbox

Материал из Toshiba AC100 wiki
Перейти к навигации Перейти к поиску

Good links

openSUSE Guide
RHEL Guide

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

  1. Add console=ttyS0 into bootloader cmdline for virsh console to work. (require syslinux package)
  2. 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