Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
linux:kvm [2015/12/07 15:14]
vondra
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 =====
-  - Instalace guestu:<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>​ 
-  - grubu pridat do radky linux <​code>​console=tty0 console=ttyS0,​115200</​code>​ +  - put following line into grubu in line starting with linux <​code>​console=tty0 console=ttyS0,​115200</​code>​ 
-  - do /​etc/​default/​grub pridat do GRUB_CMDLINE_LINUX_DEFAULT ​"​console=tty0 console=ttyS0,​115200"<​code>​GRUB_CMDLINE_LINUX_DEFAULT="​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 ====== ====== Vzdaleny pristup ======
Line 16: Line 17:
 import libvirt import libvirt
 conn = libvirt.open("​qemu+ssh://​root@10.0.0.120"​) 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"​) vps1 = conn.lookupByName("​vps1"​)
 +
 +# spusteni
 vps1.start() vps1.start()
 +
 +# pause
 vps1.suspend() vps1.suspend()
 +
 +# unpause
 vps1.resume() vps1.resume()
 +
 +# shut down
 vps1.shutdown() vps1.shutdown()
-vps1.resume()+ 
 +# force shutdown 
 +vps1.destroy() 
 + 
 +# close connection
 conn.close() conn.close()
-<​code>​ +</code> 
-====== ​Level Headline ​======+====== ​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.1449497652.txt.gz · Last modified: 2015/12/07 15:14 by vondra