Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
kvm:kvm [2020/02/04 21:49] – [clone domain/ vm] tmadekvm:kvm [2021/09/29 18:41] – [Volume] tmade
Line 4: Line 4:
  
   apt-get install qemu-kvm virtinst virt-manager bridge-utils libosinfo-bin   apt-get install qemu-kvm virtinst virt-manager bridge-utils libosinfo-bin
 +  apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager    #ubuntu 20.04
 +
   sudo adduser $USER kvm    sudo adduser $USER kvm 
   #apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker   #apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker
Line 11: Line 13:
  
   https://github.com/LuyaoHuang/virsh-bash-completion                               #bash completion   https://github.com/LuyaoHuang/virsh-bash-completion                               #bash completion
 +  
 +====Network====
 +
 +Set your network devices on OS level such as (example with 2 network interfaces "enp4s0" and "eno1" which is bridge slave interface for bridge "vmbr0"):
 +
 +<code>
 +# This file describes the network interfaces available on your system
 +# For more information, see netplan(5).
 +network:
 + version: 2
 + renderer: networkd
 + ethernets:
 +   enp4s0:
 +     dhcp4: no
 +     dhcp6: no
 +     addresses: [192.168.1.100/24]
 +     gateway4: 192.168.1.1
 +     mtu: 1500
 +     nameservers:
 +       addresses: [192.168.1.1]
 +       search: [local]
 +   eno1:
 +     dhcp4: no
 +     dhcp6: no
 + bridges:
 +   vmbr0:
 +     dhcp4: no
 +     dhcp6: no
 +     interfaces: [eno1]
 +     addresses: [10.0.0.100/24]
 +     gateway4: 10.0.0.1
 +     mtu: 1500
 +     #nameservers:
 +     #  addresses: [8.8.8.8,8.8.4.4]
 +     #parameters:
 +     #  stp: true
 +     #  forward-delay: 4
 +</code>
 ====Commands==== ====Commands====
  
Line 16: Line 56:
   virsh list --all                                                 #show all vm´s    virsh list --all                                                 #show all vm´s 
   virsh undefine vm1   virsh undefine vm1
-  virsh destroy vm1+  virsh destroy vm1                                                #forcefully stop a given domain, but leave its resources intact
   virsh start vm-name   virsh start vm-name
   virsh autostart test                                             #   virsh autostart test                                             #
Line 23: Line 63:
   virsh suspend vm-name   virsh suspend vm-name
   virsh resume vm-name   virsh resume vm-name
 +  virsh domrename foo bar                                          #rename vm from foo to bar
   virsh autostart vm-name   virsh autostart vm-name
   virsh autostart --disable vm-name   virsh autostart --disable vm-name
Line 32: Line 73:
   virsh net-list --all                                             #list all network configs   virsh net-list --all                                             #list all network configs
   virsh dumpxml vm-name                                            #xml-config to stdout   virsh dumpxml vm-name                                            #xml-config to stdout
 +  virsh dumpxml master > master.xml                                #backup vm
 +  virsh define master.xml                                          #restore vm 
   virt-manager                                                     #gui to show, manage and create vm´s   virt-manager                                                     #gui to show, manage and create vm´s
-  virsh snapshot-list vm-name        +====snapshot==== 
 +  virsh snapshot-list vm-name                                                 #list all snaps        
 +  virsh snapshot-list vm-name--tree 
   virsh snapshot-create-as vm-name   virsh snapshot-create-as vm-name
   virsh snapshot-create-as --domain vm-name --name snap-name   virsh snapshot-create-as --domain vm-name --name snap-name
 +  virsh snapshot-create-as vm-name
 +  virsh snapshot-create-as vm-name "snap1" --diskspec sda,file=/var/backups/snapshots/snap1-vm-name.qcow2 --disk-only --atomic
   virsh snapshot-info --domain vm-name --snapshotname snap-name   virsh snapshot-info --domain vm-name --snapshotname snap-name
   virsh snapshot-revert --current vm-name   virsh snapshot-revert --current vm-name
Line 41: Line 88:
   virsh snapshot-delete --domain vm-name --snapshotname snap-name   virsh snapshot-delete --domain vm-name --snapshotname snap-name
   virsh snapshot-create-as --disk-only vm-name   virsh snapshot-create-as --disk-only vm-name
-  virsh snapshot-delete --current --metadata vm-name               #delete "disk-snapshot" +  virsh snapshot-edit --rename  --domain vm-name --snapshotname snap-name     #rename 
-  +  virsh snapshot-delete --current --metadata vm-name                          #delete "disk-snapshot" 
 +  qemu-img info --backing-chain test.qcow2 
 +  qemu-img info test.qcow2 
 +  qemu-img convert -O output_format source destination 
 +  virsh domblklist vm-name 
 +  virsh blockcommit vm-name sda --active --verbose --pivot 
 + 
 +===Change Path Of "backing file"=== 
 + 
 +<code sh rename-backup-path.sh> 
 +#!/bin/bash 
 + 
 +BACKINGFILE="/kvm/images/master.qcow2" 
 +QCOW2_FILE_TO_CHANGE="master.1586464836" 
 + 
 +sudo qemu-img rebase \ 
 +  -f qcow2 \ 
 +  -u \ 
 +  -b $BACKINGFILE \ 
 +  $QCOW2_FILE_TO_CHANGE 
 +</code> 
 + 
 +Other: 
 + 
 +<code> 
 +sudo qemu-img rebase \ 
 +  -f qcow2 \ 
 +  -b $NEW_BACKING_FILE \ 
 +  $QCOW2_FILE_TO_CHANGE 
 +</code> 
 + 
 +===Merge snapshot and backing file into standalone disk=== 
 +<code> 
 +cp test1-base new-master                                 #test1-base = base-disk 
 +qemu-img rebase -b new-master test1-master-0             #snapshot="test1-master-0" 
 +qemu-img commit test1-master-0 
 +qemu-img commit new-master                               #output if success: "Image committed" 
 +Image committed. 
 +qemu-img info new-master 
 +</code>  
 + 
 +===Backup=== 
 + 
 +<code> 
 +virsh blockcopy --domain kmaster sda \ 
 +  /data/images/backup/copy.qcow2 \ 
 +  --wait --verbose --shallow \ 
 +  --pivot 
 +</code>  
 ====Pool==== ====Pool====
  
-  virsh pool-list                                                  #show active storage pool 
   virsh pool-list --all                                            #show also inactice pool   virsh pool-list --all                                            #show also inactice pool
 +  virsh pool-list                                                  #show active storage pool
 +  virsh pool-list --details                                        #show details like disk usage
   virsh pool-info poolname                                         #detailed pool info   virsh pool-info poolname                                         #detailed pool info
   virsh pool-autostart poolame   virsh pool-autostart poolame
   virsh pool-start poolname   virsh pool-start poolname
-  virsh pool-undefine poolname                                     #set inactive +  virsh pool-undefine poolname                                     #delete pool "default" 
-  virsh pool-destroy poolname                                      #delete pool "default"+  virsh pool-destroy poolname                                      #set inactive
   virsh pool-edit poolname   virsh pool-edit poolname
   virsh pool-define-as --name default --type dir --target /media/work/kvm   virsh pool-define-as --name default --type dir --target /media/work/kvm
-  +  virsh pool-refresh --pool default 
 +  virsh pool-refresh --pool kvm-vm
 ====Volume==== ====Volume====
  
   virsh vol-list default   virsh vol-list default
   virsh vol-list default --details   virsh vol-list default --details
 +  virsh vol-list kvm-vm --details
   virsh vol-delete volume-name.qcow2  --pool default   virsh vol-delete volume-name.qcow2  --pool default
   virsh vol-create-as default test_vol2.qcow2 2G   virsh vol-create-as default test_vol2.qcow2 2G
   virsh vol-clone --pool default vol1.qcow2 vol2.qcow2   virsh vol-clone --pool default vol1.qcow2 vol2.qcow2
-  qemu-img resize volume-name.qcow2 30G+  qemu-img resize volume-name.qcow2 30G && virsh pool-refresh --pool poolname0 #vm has to be shutdown! 
 +   
 +Pool refesh an volume list: 
 + 
 +<code sh pool-vol-ref.sh> 
 +#!/bin/bash 
 + 
 +virsh pool-refresh --pool poolname0 
 +virsh pool-refresh --pool poolname1 
 +virsh vol-list poolname0 --details 
 +virsh vol-list poolname1 --details 
 +</code>
      
 ====clone domain/ vm==== ====clone domain/ vm====
Line 70: Line 179:
 <code  sh clone-vm.sh> <code  sh clone-vm.sh>
 #!/bin/bash #!/bin/bash
 +
 +#author:  Thomas Roehm
 +#version: 1.0
  
 echo "" echo ""
kvm/kvm.txt · Last modified: 2022/03/12 09:13 by tmade
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki