Table of Contents

KVM CLI Commands Cheet Sheat and Configuration Examples



KVM (Kernel-based Virtual Machine) Brief overview

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V).

KVM (Kernel-based Virtual Machine) is a de facto standard in Linux Virtual Machne.
KVM is used in AWS and GCP.


KVM Commands

virsh dialogue terminal

$ virsh --connect qemu:///system
virsh # list --all


virsh commands

Command Description
virsh list ← active guest only
virsh list --all
virsh list --autostart
virsh list --all --autostart
virsh list --all --no-autostart
virsh list --inactive ← inactive guest only
check virtual server status
virsh dominfo GUEST checking guest information(CPU, Memory, Auto start)
virsh console GUEST For logout with 'CTRL+]'
virsh vncdisplay GUEST :0 is TCP 5900
:1 is TCP 5901
virsh start GUEST
virsh autostart GUEST
virsh autostart --disable GUEST
guest start with os boot
Check
ls -lh /etc/libvirt/qemu/autostart/
virsh shutdown GUEST
virsh destroy GUEST Force terminate OS
virsh edit GUEST edit xml file for cpu numbers, memory size.
The place of xml file is /etc/libvirt/qemu/GUEST.xml.
virsh dumpxml GUEST | less
virsh dumpxml GUEST | grep mac
virsh dumpxml GUEST | grep graphics | grep port
virsh define /etc/libvirt/qemu/SERVER.xml
virsh define xxxxx.xml
registration new virtual machine
virsh create /etc/libvirt/qemu/SERVER.xml
virsh create xxxxx.xml
registration new virtual machine and start
virsh undefine SERVER virsh undefine will delete XML configuration file.
If you need the XML Configuration file, please backup XML file.
And Image file isn't delete.
Check the place of disk file before undefine. And delete image file.
virsh dumpxml Guest |grep file
virt-clone --original ORG --name NEW --file /etc/libvirt/qemu/ORG/ORG.img


Installing KVM in Host OS

yum install kvm
yum install virt-manager libvirt libvirt-python python-virtinst
or
yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
chkconfig libvirtd on




KVM Networking

Checking KVM Network

# brctl show
# brctl domiflist  vm-guest-os


Creating Bridge Interface

Creating Bridge Interface with brX

brX Basic /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-br0
brX bonding /etc/modprobe.d/bonding.conf
/etc/sysconfig/network-scripts/ifcfg-bond0
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-br0
brX VLAN /etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-bond0
/etc/sysconfig/network-scripts/ifcfg-bond0.10
/etc/sysconfig/network-scripts/ifcfg-bond0.20
/etc/sysconfig/network-scripts/ifcfg-br10
/etc/sysconfig/network-scripts/ifcfg-br20

Creating Bridge Interface with virbrX

This bridge is use iptables's NAT function.


How to delete virbr0 of NAT.

# brctl show
# ifconfig virbr0
# virsh net-destroy default
# brctl show

# virsh net-list --all
# virsh net-autostart default --disable
# virsh net-list --all




KVM Guest OS

File Composition

Command Description
configuration file /etc/libvirt/qemu/HOST.xml
disk file /var/lib/libvirt/images/HOST.img


KVM Guest OS Install


KVM Guest OS Configuration


KVM Guest OS Tips


Log

/var/log/libvirt/libvirtd.log
/var/log/libvirt/qemu/test-server.log


Snapshot

Command Description
create snapshot virsh snapshot-create-as [Guest_Name] [Snapshot_Name] [Description]
recovery snapshot virsh snapshot-revert [Guest_Name] [Snapshot_Name]
list snapshot virsh snapshot-list [Guset_Name]
virsh snapshot-list [Guset_Name] --tree
delete snapshot virsh snapshot-delete [Guset_Name] [Snapshot_Name]


LiveMigration

virsh migrate --live centos7 qemu+ssh://xx.xx.xx.xx/system


Tips

KVM Image Mount

# kpartx -av disk.img
# mount /dev/mapper/loop0p1 /mnt  <-   loop0p1 or loop0p2 or loop0p3 etc

# cd /mnt/
# ls -al

# umount /mnt
# kpartx -dv disk.img