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.
$ virsh --connect qemu:///system virsh # list --all
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 |
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
# brctl show
# brctl domiflist vm-guest-os
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 |
This bridge is use iptables's NAT function.
# brctl show # ifconfig virbr0 # virsh net-destroy default # brctl show # virsh net-list --all # virsh net-autostart default --disable # virsh net-list --all
Command | Description |
---|---|
configuration file | /etc/libvirt/qemu/HOST.xml |
disk file | /var/lib/libvirt/images/HOST.img |
/var/log/libvirt/libvirtd.log | |
/var/log/libvirt/qemu/test-server.log |
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] |
virsh migrate --live centos7 qemu+ssh://xx.xx.xx.xx/system
# 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
KVM CLI Commands Cheet Sheat and Configuration Examples