virsh version
# virsh -v 0.8.3
the system
# cat /etc/issue /etc/debian_version;uname -r Debian GNU/Linux 6.0 \n \l 6.0.7 2.6.32-5-amd64
# egrep "vmx|svm" /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr
the hypervisor
# virsh uri qemu:///system # lsmod |grep kvm kvm_amd 31878 4 kvm 215455 1 kvm_amd
for more try
# virsh capabilities
A good way to start the virsh exploration
# virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # help Commands: help print help attach-device attach device from an XML file attach-disk attach disk device attach-interface attach network interface autostart autostart a domain capabilities capabilities cd change the current directory connect (re)connect to hypervisor console connect to the guest console cpu-baseline compute baseline CPU cpu-compare compare host CPU with a CPU described by an XML file create create a domain from an XML file start start a (previously defined) inactive domain destroy destroy a domain detach-device detach device from an XML file detach-disk detach disk device detach-interface detach network interface define define (but don't start) a domain from an XML file domid convert a domain name or UUID to domain id domuuid convert a domain name or id to domain UUID dominfo domain information domjobinfo domain job information domjobabort abort active domain job domname convert a domain id or UUID to domain name domstate domain state domblkstat get device block stats for a domain domifstat get network interface stats for a domain dommemstat get memory statistics for a domain domblkinfo domain block device size information domxml-from-native Convert native config to domain XML domxml-to-native Convert domain XML to native config dumpxml domain information in XML edit edit XML configuration for a domain find-storage-pool-sources discover potential storage pool sources find-storage-pool-sources-as find potential storage pool sources freecell NUMA free memory hostname print the hypervisor hostname list list domains migrate migrate domain to another host migrate-setmaxdowntime set maximum tolerable downtime net-autostart autostart a network net-create create a network from an XML file net-define define (but don't start) a network from an XML file net-destroy destroy a network net-dumpxml network information in XML net-edit edit XML configuration for a network net-list list networks net-name convert a network UUID to network name net-start start a (previously defined) inactive network net-undefine undefine an inactive network net-uuid convert a network name to network UUID iface-list list physical host interfaces iface-name convert an interface MAC address to interface name iface-mac convert an interface name to interface MAC address iface-dumpxml interface information in XML iface-define define (but don't start) a physical host interface from an XML file iface-undefine undefine a physical host interface (remove it from configuration) iface-edit edit XML configuration for a physical host interface iface-start start a physical host interface (enable it / "if-up") iface-destroy destroy a physical host interface (disable it / "if-down") managedsave managed save of a domain state managedsave-remove Remove managed save of a domain nodeinfo node information nodedev-list enumerate devices on this host nodedev-dumpxml node device details in XML nodedev-dettach dettach node device from its device driver nodedev-reattach reattach node device to its device driver nodedev-reset reset node device nodedev-create create a device defined by an XML file on the node nodedev-destroy destroy a device on the node nwfilter-define define or update a network filter from an XML file nwfilter-undefine undefine a network filter nwfilter-dumpxml network filter information in XML nwfilter-list list network filters nwfilter-edit edit XML configuration for a network filter pool-autostart autostart a pool pool-build build a pool pool-create create a pool from an XML file pool-create-as create a pool from a set of args pool-define define (but don't start) a pool from an XML file pool-define-as define a pool from a set of args pool-destroy destroy a pool pool-delete delete a pool pool-dumpxml pool information in XML pool-edit edit XML configuration for a storage pool pool-info storage pool information pool-list list pools pool-name convert a pool UUID to pool name pool-refresh refresh a pool pool-start start a (previously defined) inactive pool pool-undefine undefine an inactive pool pool-uuid convert a pool name to pool UUID secret-define define or modify a secret from an XML file secret-dumpxml secret attributes in XML secret-set-value set a secret value secret-get-value Output a secret value secret-undefine undefine a secret secret-list list secrets pwd print the current directory quit quit this interactive terminal exit quit this interactive terminal reboot reboot a domain restore restore a domain from a saved state in a file resume resume a domain save save a domain state to a file schedinfo show/set scheduler parameters dump dump the core of a domain to a file for analysis shutdown gracefully shutdown a domain setmem change memory allocation setmaxmem change maximum memory limit setvcpus change number of virtual CPUs suspend suspend a domain ttyconsole tty console undefine undefine an inactive domain update-device update device from an XML file uri print the hypervisor canonical URI vol-create create a vol from an XML file vol-create-from create a vol, using another volume as input vol-create-as create a volume from a set of args vol-clone clone a volume. vol-delete delete a vol vol-wipe wipe a vol vol-dumpxml vol information in XML vol-info storage vol information vol-list list vols vol-pool returns the storage pool for a given volume key or path vol-path returns the volume path for a given volume name or key vol-name returns the volume name for a given volume key or path vol-key returns the volume key for a given volume name or path vcpuinfo domain vcpu information vcpupin control domain vcpu affinity version show version vncdisplay vnc display snapshot-create Create a snapshot snapshot-current Get the current snapshot snapshot-delete Delete a domain snapshot snapshot-dumpxml Dump XML for a domain snapshot snapshot-list List snapshots for a domain snapshot-revert Revert a domain to a snapshot virsh #
set a domain --guest host-- to autostart by the libvirt daemon
# virsh autostart 2 Domain 2 marked as autostartedverify-check if a guest is set to Autostart
# virsh dominfo 2 |grep -i auto Autostart: enableand
# ls /etc/libvirt/qemu/autostart/before taking the time to read carefully and look around a bit more, I used to set autostart with `virsh start domain` cronjobs.
view domain information and create xml configuration files
# virsh dumpxml vm0it prints the xml configuration to stdout
The kvm-qemu guest hosts xml configuration files are in /etc/libvirt/qemu/ on Debian systems.
# virsh dominfo vm0 Id: - Name: vm0 UUID: 7337798a-ae00-efb4-7790-259c168f764b OS Type: hvm State: shut off CPU(s): 2 Max memory: 524288 kB Used memory: 524288 kB Persistent: yes Autostart: disable
Display the guest hosts list
# virsh list --all Id Name State ---------------------------------- 2 vm2 running - vm0 shut off - vm1 shut off
Display Virtual CPU information
# virsh vcpuinfo 2 VCPU: 0 CPU: 0 State: running CPU time: 1219.9s CPU Affinity: yy VCPU: 1 CPU: 1 State: running CPU time: 1040.8s CPU Affinity: yy
# virsh vcpuinfo vm0 error: Domain shut off, virtual CPUs not present. error: Requested operation is not valid: cannot list vcpu pinning for an inactive domain
Create a guest from an xml configuration file
# virsh create vm0.xmlto create an xml configuration file from an existing guest
# virsh dumpxml vm0 > vm0.xml
Start a guest host
# virsh start vm0 Domain vm0 started
Reboot a guest host
# virsh reboot vm0 error: Failed to reboot domain vm0 error: this function is not supported by the connection driver: virDomainRebootnot supported for kvm on version 0.8.3
Shutdown a guest host
# virsh shutdown vm0 Domain vm0 is being shutdownCheck
# virsh list --all Id Name State ---------------------------------- 2 vm2 running 3 vm0 running - vm1 shut offvm0 is still running, it does not work always
Terminate a guest host
# virsh destroy vm0 Domain vm0 destroyedAn immediate ungraceful shutdown.
Check
# virsh list --all Id Name State ---------------------------------- 2 vm2 running - vm0 shut off - vm1 shut off
Useful URLs:
Virsh Command Reference
centos manual virsh
Debian on Debian KVM
virsh basics