Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
linux:kvm [2015/12/01 19:09]
vondra created
linux:kvm [2019/01/11 13:14] (current)
admin
Line 1: Line 1:
 ====== Instalace KVM ====== ====== Instalace KVM ======
 TODO: udelat tutorial :) TODO: udelat tutorial :)
 +<code bash>​aptitude -y install qemu-kvm libvirt-bin virtinst bridge-utils </​code>​
 ====== Vytvoreni guesta ====== ====== Vytvoreni guesta ======
 ===== Debian 8 ===== ===== Debian 8 =====
-  - <code bash>​virt-install -n vps1 --ram=2048 --vcpus=2 --location='​http://​ftp.cz.debian.org/​debian/​dists/​jessie/​main/​installer-amd64/'​ --disk path=/​dev/​shared_vg/​vps1 ​ --network bridge=br0 --os-type linux --console pty,​target_type=serial --graphics none --os-variant generic --extra-args '​console=ttyS0,​115200n8 serial'</​code>​+  - Install gues:<code bash>​virt-install -n vps1 --ram=2048 --vcpus=2 --location='​http://​ftp.cz.debian.org/​debian/​dists/​jessie/​main/​installer-amd64/'​ --disk path=/​dev/​shared_vg/​vps1 ​ --network bridge=br0 --os-type linux --console pty,​target_type=serial --graphics none --os-variant generic --extra-args '​console=ttyS0,​115200n8 serial'​</​code>​ 
 +  - put following line into grubu in line starting with linux <​code>​console=tty0 console=ttyS0,​115200</​code>​ 
 +  - put "​console=tty0 console=ttyS0,​115200"​ into /​etc/​default/​grub in GRUB_CMDLINE_LINUX_DEFAULT <​code>​GRUB_CMDLINE_LINUX_DEFAULT="​console=tty0 console=ttyS0,​115200"</​code>​ 
 +  - update grub (this one i always forget and wondering why it doesn'​t work :))<code bash>​update-grub</​code>​ 
 + 
 +====== Vzdaleny pristup ====== 
 +===== Pres certifikaty ===== 
 +https://​libvirt.org/​remote.html 
 +  * note: nepovedlo se mi rozbehat 
 +===== Pres libvirt + ssh ===== 
 +<code python>​ 
 +import libvirt 
 +conn = libvirt.open("​qemu+ssh://​root@10.0.0.120"​) 
 + 
 +# vypis bezicich vps (interni ID) 
 +conn.listDomainsID() 
 + 
 +# nalezeni vps podle ID (pouze bezici) 
 +vps = conn.lookupByID(1) 
 + 
 +# nalezeni vps podle jmena (bere i masiny, ktere jsou nebezici, ale nadefinovane) 
 +vps1 = conn.lookupByName("​vps1"​) 
 + 
 +# spusteni 
 +vps1.start() 
 + 
 +# pause 
 +vps1.suspend() 
 + 
 +# unpause 
 +vps1.resume() 
 + 
 +# shut down 
 +vps1.shutdown() 
 + 
 +# force shutdown 
 +vps1.destroy() 
 + 
 +# close connection 
 +conn.close() 
 +</​code>​ 
 +====== HOT migration ====== 
 +  * NOTE: we cannot use kvm migration, since we use mirrored clustered LVM (mirrored volume could not be activated on more than one node in time) 
 +  * use following script instead:<​code bash> 
 +#​!/​bin/​bash 
 + 
 +if [ $# != 2 ]; then 
 +        echo "​Usage:​ move_vps.sh domain destination"​ 
 +        exit 1 
 +fi 
 + 
 +MACHINE=$1 
 +DESTINATION=$2 
 + 
 +XML_NAME=/​tmp/​$MACHINE 
 +virsh dumpxml $MACHINE > $XML_NAME 
 +scp ${XML_NAME} root@${DESTINATION}:​${XML_NAME} 
 +rm $XML_NAME 
 + 
 +IMG_NAME=/​tmp/​${MACHINE}.img 
 +virsh save $MACHINE $IMG_NAME 
 +scp $IMG_NAME root@${DESTINATION}:​${IMG_NAME} 
 +rm $IMG_NAME 
 + 
 +lvchange -an /​dev/​shared_vg/​$MACHINE 
 +ssh root@$DESTINATION "​lvchange -ay /​dev/​shared_vg/​$MACHINE"​ 
 +ssh root@$DESTINATION "virsh define ${XML_NAME}"​ 
 +ssh root@$DESTINATION "virsh restore $IMG_NAME"​ 
 +ssh root@$DESTINATION "rm $IMG_NAME"</​code>​ 
 + 
 + 
 +====== Correct shutdown ====== 
 +// Keywords: Libvirt Can't shutdown or reboot virtual guest.\ 
 +I can't reboot or shutdown the guest vm from the host mac// 
 + 
 +<code bash> 
 +modprobe virtio_console 
 +apt install qemu-guest-agent 
 +service qemu-ga restart 
 +apt install acpid 
 +</​code>​ 
 + 
 +Test if the agent is running 
 +<code bash> 
 +    virsh qemu-agent-command jakub-sevcik '​{"​execute":"​guest-info"​}'​ 
 +</​code>​
 
linux/kvm.1448993365.txt.gz · Last modified: 2015/12/01 19:09 by vondra