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
kvm:kvm [2020/02/26 12:41] – [clone domain/ vm] tmadekvm:kvm [2022/03/12 09:13] (current) – [Commands] 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 and immediately stop a given domain - the vm won´t be destoyed, just stopped.
   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====
kvm/kvm.1582717294.txt.gz · Last modified: 2020/02/26 12:41 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