Difference between revisions of "Virsh"

From wikieduonline
Jump to navigation Jump to search
 
(90 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<code>virsh</code><ref>http://manpages.ubuntu.com/manpages/xenial/man1/virsh.1.html</ref><ref> https://github.com/libvirt/libvirt/blob/master/tools/virsh.c</ref> is a command line utility for managing virsh guest domains/virtual machines and the hypervisor<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh</ref>. Can be used to operate vm like create, list, start, [[virsh/virsh shutdown|shutdown]] or suspend and to manage storage, [[virsh/KVM virsh Snapshots|snapshots]] and [[cell biology/Checkpoints|checkpoints]]<ref>https://github.com/libvirt/libvirt/commit/689beaa47c51fb49fafa992dd468116b8f6b0782#diff-f41fa7374ab97c527387ea4ce48fd04e</ref> among other actions. <code>[[virt-manager]]</code> is a graphical alternative to virsh. It supports Xen, QEMU, [[KVM]], LXC, OpenVZ, VirtualBox and VMware ESX.
+
{{lowercase}}
 +
<code>virsh</code><ref>http://manpages.ubuntu.com/manpages/xenial/man1/virsh.1.html</ref><ref> https://github.com/libvirt/libvirt/blob/master/tools/virsh.c</ref> is a command line utility for managing virsh guest domains/virtual machines and the hypervisor<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh</ref>. Can be used to operate vm like create, list, start, [[shutdown]] or suspend and to manage [[Virsh storage information|storage]], [[Virsh Snapshots|snapshots]] and [[checkpoints]]<ref>https://github.com/libvirt/libvirt/commit/689beaa47c51fb49fafa992dd468116b8f6b0782#diff-f41fa7374ab97c527387ea4ce48fd04e</ref> among other actions. <code>[[virt-manager]]</code> is a graphical alternative to virsh. It supports Xen, QEMU, [[KVM]], [[LXC]], [[OpenVZ]], VirtualBox and VMware ESX.
  
<code>virsh</code>  is include in <code>[[kVM/libvirt|libvirt-client]]</code>  package in [[Red Hat Enterprise Linux|RHEL]] and [[Ubuntu]] and uses [[kVM/libvirt|libvirt]] management API. Binaries included:
+
<code>virsh</code>  is include in <code>[[libvirt|libvirt-client]]</code>  package in [[RHEL]] and [[Ubuntu]] and uses [[libvirt]] management API. Binaries included:
* virsh
+
*<code>virsh</code>
* [[/virt-admin/]]
+
*<code>[[virt-admin]]</code>
* [[/virt-host-validate/]]
+
*<code>[[virt-host-validate]]</code>
* [[/virt-login-shell/]]
+
*<code>[[virt-login-shell]]</code>
* [[/virt-pki-validate/]]
+
*<code>[[virt-pki-validate]]</code>
* [[/virt-xml-validate/]]
+
*<code>[[virt-xml-validate]]</code>
  
 
== Basic Commands ==
 
== Basic Commands ==
Line 14: Line 15:
  
 
== All Commands ==
 
== All Commands ==
* <code>[[/virsh autostart/]] VM_NAME</code> or <code>[[/virsh autostart/]] VM_NAME --disable</code> (Related: <code>[[virsh/virsh start|virsh start]]</code> and <code>[[virsh pool-autostart]]</code>)
+
* <code>[[virsh --connect]]</code>
* <code>[[/virsh blockcommit/]]</code>. Allows Live-disk-backup-with-active-blockcommit <ref> https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref>
+
** <code>[[virsh -c]] qemu:///system list</code>
* <code>[[/virsh blockcopy/]]</code>
+
*<code>[[virsh attach-device]]</code>
* <code>[[/virsh blockjob/]]</code>
+
* <code>[[virsh autostart]] VM_NAME</code> or <code>[[virsh autostart]] VM_NAME --disable</code> (Related: <code>[[virsh start]]</code> and <code>[[virsh pool-autostart]]</code>)
* <code>[[/virsh change-media/]]</code>
+
* <code>[[virsh blockcommit]]</code>. Allows Live-disk-backup-with-active-blockcommit <ref> https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref>
* <code>[[/virsh create/]] [[/MY_XML_VM_DEFINITION.XML/]]</code>
+
* <code>[[virsh blockcopy]]</code>
* <code>[[/virsh define/]] [[/MY_XML_VM_DEFINITION.XML/]]</code> (define machine but do not start it)
+
* <code>[[virsh blockjob]]</code>
** <code>[[/virsh define/]] xmlfile.xml --validate</code>
+
* <code>[[virsh blockresize]]</code>
** <code>[[/virsh destroy/]] VM_MACHINE_NAME </code> (Ungraceful Shutdown but do not destroy data or VM but you can corrupt guest file systems)
+
* <code>[[virsh change-media]]</code>
** <code>[[/virsh destroy/]] VM_MACHINE_NAME --graceful</code>
+
* <code>[[virsh create]] [[MY_XML_VM_DEFINITION.XML/]]</code>
* <code>[[/virsh domblklist/]] VMNAME</code>
+
* <code>[[virsh console]] YOUR_VM</code>
**<code>[[/virsh domblklist/]] --details VM_MACHINE_NAME</code>
+
* <code>[[virsh define]] [[MY_XML_VM_DEFINITION.XML]]</code> (define machine but do not start it)
* <code>[[/virsh domblkstat/]] VMNAME</code>
+
** <code>[[virsh define]] xmlfile.xml --validate</code>
* <code>[[/virsh domblkinfo/]] VMNAME BLOCK_DEVICE</code> (BLOCK_DEVICE from [[/virsh domblklist/]] command)
+
** <code>[[virsh destroy]] VM_MACHINE_NAME </code> (Ungraceful Shutdown but do not destroy data or VM but you can corrupt guest file systems)
* <code>[[/virsh domdisplay/]]</code>
+
** <code>[[virsh destroy]] VM_MACHINE_NAME --graceful</code>
* <code>[[/virsh domfsfreeze/]]</code> Quiesces the guest filesystem in isolation<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands</ref>
+
* <code>[[virsh domblklist]] VMNAME</code>
* <code>[[/virsh domfsthaw/]]</code> Quiesces the guest filesystem in isolation<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands</ref>
+
**<code>[[virsh domblklist]] --details VM_MACHINE_NAME</code>
* <code>[[/virsh domid/]]</code>
+
* <code>[[virsh domblkstat]] VMNAME</code>
* <code>[[/virsh dominfo/]] VMNAME_OR_ID</code> Guess virtual machine information such us state and [[virsh/virsh autostart|autostart]] configuration.
+
* <code>[[virsh domblkinfo]] VMNAME BLOCK_DEVICE</code> (BLOCK_DEVICE from [[virsh domblklist]] command)
* <code>[[/virsh dommemstat/]]</code>
+
* <code>[[virsh domdisplay]]</code>
* <code>[[/virsh domname/]]</code>
+
* <code>[[virsh domfsfreeze]]</code> Quiesces the guest filesystem in isolation<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands</ref>
 +
* <code>[[virsh domfsthaw]]</code> Quiesces the guest filesystem in isolation<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands</ref>
 +
* <code>[[virsh domid]]</code>
 +
* <code>[[virsh dominfo]] VMNAME_OR_ID</code> Guess virtual machine information such us state and [[autostart]] configuration.
 +
* <code>[[virsh dommemstat]]</code>
 +
* <code>[[virsh domname]]</code>
 +
* <code>[[virsh domrename]]</code> (since 2015)
 
* <code>virsh dump --memory-only --verbose</code>
 
* <code>virsh dump --memory-only --verbose</code>
* <code>[[/virsh dumpxml/]] VMNAME</code> - domain information in XML (Can be used to move VMs between hosts <ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>)
+
* <code>[[virsh dumpxml]] VMNAME</code> - domain information in XML (Can be used to move VMs between hosts <ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>)
* <code>[[/virsh edit/]] VMNAME</code>
+
* <code>[[virsh edit]] VMNAME</code>
* <code>[[/virsh list/]]</code>
+
* <code>[[virsh list]]</code>
 
** <code>virsh list --name</code>
 
** <code>virsh list --name</code>
* <code>[[/virsh memtune/]]</code>
+
* <code>[[virsh memtune]]</code>
 
* <code>[[virsh migrate]]</code>
 
* <code>[[virsh migrate]]</code>
 
* <code>[[virsh pool-autostart]]</code>
 
* <code>[[virsh pool-autostart]]</code>
* <code>[[/virsh pool-build/]]</code>
+
* <code>[[virsh pool-build]]</code>
* <code>[[/virsh pool-create/]]</code> create '''temporary''' storage pools from command line
+
* <code>[[virsh pool-create]]</code> create '''temporary''' storage pools from command line
* <code>[[/virsh pool-create-as/]]</code> create '''temporary''' storage pools from XML file
+
* <code>[[virsh pool-create-as]]</code> create '''temporary''' storage pools from XML file
* <code>[[/virsh pool-define/]]</code> (create '''persistent''' storage from options from XML file)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
+
* <code>[[virsh pool-define]]</code> (create '''persistent''' storage from options from XML file)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
* <code>[[/virsh pool-define-as/]]</code> (create '''persistent''' storage from  options from command line)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
+
* <code>[[virsh pool-define-as]]</code> (create '''persistent''' storage from  options from command line)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
* <code>[[/virsh pool-event/]]</code>
+
* <code>[[virsh pool-event]]</code>
* <code>[[/virsh reboot/]]</code>
+
* <code>[[virsh reboot]]</code>
 
* <code>virsh restore</code>
 
* <code>virsh restore</code>
* <code>virsh resume</code>
+
* <code>[[virsh resume]]</code>
* <code>virsh save</code>
+
* <code>[[virsh save]]</code>
 
* <code>virsh set-lifecycle-action</code>. Added in November 2017 (v.3.9.0)<ref>https://libvirt.org/news.html</ref>
 
* <code>virsh set-lifecycle-action</code>. Added in November 2017 (v.3.9.0)<ref>https://libvirt.org/news.html</ref>
 
* <code>[[virsh setmaxmem]]</code>
 
* <code>[[virsh setmaxmem]]</code>
* <code>[[virsh/virsh setmem|virsh setmem]]</code>
+
* <code>[[virsh setmem]]</code>
** <code>[[virsh/virsh setmem|virsh setmem]] —-config</code>
+
** <code>[[virsh setmem]] —-config</code>
* <code>[[/virsh snapshot-create-as/]]</code>
+
* <code>[[virsh setvcpus]]</code>
* <code>[[virsh/virsh start|virsh start]]</code>
+
* <code>[[virsh snapshot-create-as]]</code>
* <code>virsh suspend</code>
+
* <code>[[virsh start]]</code>
* <code>virsh save</code>
+
* <code>[[virsh suspend]]</code>
* <code>[[virsh/virsh shutdown|virsh shutdown]]</code>
+
* <code>[[virsh shutdown]]</code>
* <code>[[/virsh undefine/]]</code>
+
* <code>[[virsh undefine]]</code>
 
* <code>virsh update-device</code>
 
* <code>virsh update-device</code>
* <code>[[virsh/virsh vcpuinfo|virsh vcpuinfo]]</code>
+
* <code>[[virsh vcpuinfo]]</code>
 +
* <code>[[virsh vncdisplay]]</code>
 +
* <code>[[virsh backup-begin]]</code>
 +
* <code>[[virsh checkpoint-create]]</code>
 +
* <code>[[virsh nodedev-list --tree]]</code>
 +
* <code>[[virsh nodedev-dumpxml]]</code>
 +
* <code>[[virsh nodedev-dettach]]</code>
  
 
== Getting Information ==
 
== Getting Information ==
* List Running Virtual Machines: <code>[[/virsh list/]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh</ref><ref>https://help.ubuntu.com/community/KVM/Managing</ref>
+
* List Running Virtual Machines:
 +
** <code>[[virsh list]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh</ref><ref>https://help.ubuntu.com/community/KVM/Managing</ref>
 
** <code>virsh list --name</code>
 
** <code>virsh list --name</code>
** List all Virtual Machines: <code>virsh list --all</code>
+
** <code>virsh list --all</code>
  
* <code>[[/virsh dominfo/]] MY_VM_NAME</code> Guess virtual machine information such us state and [[virsh/virsh autostart|autostart]] configuration.
+
* <code>[[virsh dominfo]] MY_VM_NAME</code> Guess virtual machine information such us state and [[autostart]] configuration.
  
* <code>[[/virsh domstats/]]</code> (show all VMs)
+
* <code>[[virsh domstats]]</code> (show all VMs)
* <code>[[/virsh domstats/]] --list-persistent</code>
+
** <code>[[virsh domstats]] --list-persistent</code>
* <code>[[/virsh domstats/]] MY_VM_MACHINE</code>
+
** <code>[[virsh domstats]] MY_VM_MACHINE</code>
** <code>virsh domstats MY_VM_MACHINE --state</code>
+
*** <code>virsh domstats MY_VM_MACHINE --state</code>
** --no-wait option https://libvirt.org/news.html
+
*** --no-wait option https://libvirt.org/news.html
  
* <code>[[/virsh nodeinfo/]]</code>
+
* <code>[[virsh nodeinfo]]</code>
  
* View configuration: <code>[[/virsh dumpxml/]] {guest-id, VM_NAME or uuid}</code> > yourfilename.xml<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-domain_commands-creating_a_virtual_machine_xml_dump_configuration_file</ref>
+
* View configuration:  
 +
** <code>[[virsh dumpxml]] {guest-id, VM_NAME or uuid}</code> > yourfilename.xml<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-domain_commands-creating_a_virtual_machine_xml_dump_configuration_file</ref>
 
** Virtual interfaces: <code>virsh domiflist VM_NAME</code>
 
** Virtual interfaces: <code>virsh domiflist VM_NAME</code>
  
 
Network info:  
 
Network info:  
*<code>virsh [[virsh/net-list|net-list]]</code>
+
*<code>[[virsh net-list]]</code>
*<code>virsh [[virsh/net-info|net-info]]</code>
+
*<code>[[virsh net-info]]</code>
  
 
Storage info:  
 
Storage info:  
* <code>[[/virsh pool-list/]]</code>
+
* <code>[[virsh pool-list]]</code>
* <code>[[/virsh pool-info/]] <pool></code>
+
* <code>[[virsh pool-info]] <pool></code>
* <code>[[/virsh vol-list/]] <pool></code> (Displays Name and Path)
+
* <code>[[virsh vol-list]] <pool></code> (Displays Name and Path)
** <code>[[/virsh vol-list/]] --details <pool></code> (Includes also Capacity and Allocation)
+
** <code>[[virsh vol-list]] --details <pool></code> (Includes also Capacity and Allocation)
* <code>[[/virsh vol-info/]] <vol></code>
+
* <code>[[virsh vol-info]] <vol></code>
  
 +
[[Virsh display|Display info]]:
 +
* <code>[[virsh vncdisplay]] VM_NAME</code>
 +
* <code>[[virsh domdisplay]] VM_NAME</code>
  
 
Guest info:
 
Guest info:
* <code>[[/virsh guestinfo/]]</code> v5.7.0 (2019-09-03)<ref>https://fossies.org/linux/libvirt/NEWS</ref> ([[KVM/libvirt/Libvirt Release notes]])
+
* <code>[[virsh guestinfo]]</code> v5.7.0 (2019-09-03)<ref>https://fossies.org/linux/libvirt/NEWS</ref> ([[Libvirt Release notes]])
  
* virhostuptime (Since August 2019) https://github.com/libvirt/libvirt/commit/8b802f13cb47817706cba101f5d52e2c8957698d#diff-8d027e5576f9d83750bb73c63b12a6e3
+
* <code>virhostuptime</code> (Since August 2019) https://github.com/libvirt/libvirt/commit/8b802f13cb47817706cba101f5d52e2c8957698d#diff-8d027e5576f9d83750bb73c63b12a6e3
  
* <code>virsh version</code>
+
* <code>[[virsh version]]</code>
<pre>
+
 
virsh version
+
* <code>[[virsh capabilities]]</code>
Compiled against library: libvirt 4.0.0
 
Using library: libvirt 4.0.0
 
Using API: QEMU 4.0.0
 
Running hypervisor: QEMU 2.11.1
 
</pre>
 
  
 
== Operations ==
 
== Operations ==
[[/Changing VM running status operations/]]:  
+
[[Changing VM running status operations]]:  
* Start VM: <code>[[/virsh start/]] VM_MACHINE_NAME</code>
+
{{virsh operations}}
* Resume VM:<code>[[/virsh resume/]]</code>
 
* Shutdown VM: <code>[[/virsh shutdown/]]</code> (stop) Gracefully VM
 
* ''Destroy'' VM: <code>[[/virsh destroy/]] VM_NAME</code> (stop/stop not gracefully) VM
 
** <code>virsh destroy VM_MACHINE_NAME --graceful</code>
 
 
 
  
* <code> [[/virsh console/]] VM_MACHINE_NAME</code>
+
* <code>[[virsh console]] VM_MACHINE_NAME</code>
  
 
Snapshots:
 
Snapshots:
* [[/virsh snapshot-create/]]
+
* <code>[[virsh snapshot-create]]</code>
** [[/virsh snapshot-create/]] --validate (08/2019) <ref>https://libvirt.org/news.html</ref>
+
* <code>[[virsh snapshot-create]]</code> --validate (08/2019) <ref>https://libvirt.org/news.html</ref>
  
 
Migrations:
 
Migrations:
* <code>[[/virsh migrate/]] --live GuestName DestinationURL</code>
+
* <code>[[virsh migrate]] --live GuestName DestinationURL</code>
** <code>[[/virsh migrate/]] --offline</code><ref>https://libvirt.org/migration.html#offline</ref> (copying non-shared storage or other file based storages (e.g. UEFI variable storage) is not supported during offline migration)
+
* <code>[[virsh migrate]] --offline</code><ref>https://libvirt.org/migration.html#offline</ref> (copying non-shared storage or other file based storages (e.g. UEFI variable storage) is not supported during offline migration)
  
 
Configuration:
 
Configuration:
* <code>[[/virsh autostart/]] VM_MACHINE_NAME</code>
+
* <code>[[virsh autostart]] VM_MACHINE_NAME</code>
  
== [[/Virsh Storage commands/]] ==
+
== [[Virsh Storage commands]] ==
=== [[/Virsh Storage Information/]] ===
+
=== [[Virsh Storage Information]] ===
* <code>[[/virsh domblklist/]] VMNAME</code>
+
{{virsh storage info TOC}}
* <code>[[/virsh pool-list/]]</code>
 
* <code>[[/virsh pool-info/]] <pool></code>
 
* <code>[[/virsh vol-info/]]<vol></code>
 
* <code>[[/virsh vol-list/]]<pool></code>
 
  
 
=== All Storage commands ===
 
=== All Storage commands ===
* <code>[[/virsh domblklist/]] VMNAME</code>
+
* <code>[[virsh domblklist]] VMNAME</code>
 +
* <code>[[virsh domblkinfo]]</code>
 
* <code>[[virsh pool-autostart]]</code>
 
* <code>[[virsh pool-autostart]]</code>
* <code>[[/virsh pool-build/]]</code>
+
* <code>[[virsh pool-build]]</code>
* <code>[[/virsh pool-create/]]</code> create '''temporary''' storage pools from command line
+
* <code>[[virsh pool-create]]</code> create '''temporary''' storage pools from command line
* <code>[[/virsh pool-create-as/]]</code> create '''temporary''' storage pools from XML file
+
* <code>[[virsh pool-create-as]]</code> create '''temporary''' storage pools from XML file
* <code>[[/virsh pool-define/]]</code> (create '''persistent''' storage from options from XML file)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
+
* <code>[[virsh pool-define]]</code> (create '''persistent''' storage from options from XML file)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
* <code>[[/virsh pool-define-as/]]</code> (create '''persistent''' storage from  options from command line)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
+
* <code>[[virsh pool-define-as]]</code> (create '''persistent''' storage from  options from command line)<ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli</ref>
* <code>[[/virsh pool-event/]]</code>
+
* <code>[[virsh pool-event]]</code>
** <code>[[/virsh pool-event/]] --list</code>
+
** <code>[[virsh pool-event]] --list</code>
** <code>[[/virsh pool-event/]] --event lifecycle</code>
+
** <code>[[virsh pool-event]] --event lifecycle</code>
** <code>[[/virsh pool-event/]] --event refresh</code>
+
** <code>[[virsh pool-event]] --event refresh</code>
* <code>[[/virsh pool-list/]]</code>
+
* <code>[[virsh pool-list]]</code>
* <code>[[/virsh pool-info/]] <pool></code>
+
* <code>[[virsh pool-info]] <pool></code>
* <code>[[/virsh pool-start/]] <pool></code>
+
* <code>[[virsh pool-start]] <pool></code>
* <code>[[/virsh vol-clone/]]</code>
+
* <code>[[virsh vol-clone]]</code>
* <code>[[/virsh vol-create-as/]]</code>
+
* <code>[[virsh vol-create-as]]</code>
* <code>[[/virsh vol-info/]] --pool POOL_NAME VOL_NAME</code>
+
* <code>[[virsh vol-info]] --pool POOL_NAME VOL_NAME</code>
* <code>[[/virsh vol-list/]] <pool></code>
+
* <code>[[virsh vol-list]] <pool></code>
  
== [[Virsh/KVM virsh Snapshots|KVM virsh Snapshots]] ==
+
== [[Virsh Snapshots]] ==
* <code>[[/virsh snapshot-create/]]</code> Create a snapshot from XML. See also: <code>[[kVM/qemu-img|qemu-img]]</code> and <code>[[KVM/qemu-img/qemu-img info|qemu-img info]]</code>
+
{{virsh snapshots TOC}}
* <code>[[/virsh snapshot-create-as/]]</code> Create a snapshot from a set of args.
 
* <code>[[/virsh snapshot-current/]]</code> Get or set the current snapshot
 
* <code>[[/virsh snapshot-delete/]]</code> Delete a domain snapshot
 
* <code>[[/virsh snapshot-dumpxml/]] VM_MACHINE_NAME SNAPSHOT_NAME</code> Dump XML for a domain snapshot
 
* <code>[[/virsh snapshot-edit/]]</code> edit XML for a snapshot
 
* <code>[[/virsh snapshot-info/]]</code> snapshot information. (virsh snapshot-info --domain DOMAIN_NAME --snapshotname SNAPSHOT_NAME)
 
* <code>[[/virsh snapshot-list/]] VM_MACHINE_NAME</code> List snapshots for a domain
 
* <code>[[/virsh snapshot-parent/]]</code> Get the name of the parent of a snapshot
 
* <code>[[/virsh snapshot-revert/]]</code> Revert a domain to a snapshot
 
  
== [[/Virsh CPU Commands/]] ==
+
== [[Virsh CPU Commands]] ==
* <code>[[/virsh cpu-models/]] x86_64</code>
+
* <code>[[virsh cpu-models]] x86_64</code>
 +
* <code>[[virsh setvcpus]]</code>
  
== [[/Virsh Memory Commands/]] ==
+
== [[Virsh Memory Commands]] ==
* <code>[[/virsh memtune/]]</code>                        Get or set memory parameters
+
{{virsh memory commands}}
* <code>[[/virsh setmaxmem/]]</code>                      change maximum memory limit
 
* <code>[[virsh setmem]]</code>                        change memory allocation
 
* <code>[[/virsh dommemstat/]]</code>                    get memory statistics for a domain
 
* <code>[[/virsh freecell/]]</code>                      NUMA free memory
 
* <code>[[/virsh node-memory-tune/]]</code>              Get or set node memory parameters
 
* <code>[[/virsh nodememstats/]]</code>                  Prints memory stats of the node.
 
  
== [[KVM/qemu|QEMU]] ==
+
== [[QEMU]] ==
* <code>virsh qemu-attach</code>                    QEMU Attach
+
{{virsh qemu TOC}}
* <code>virsh qemu-monitor-command</code>          QEMU Monitor Command
 
* <code>virsh qemu-monitor-event</code>            QEMU Monitor Events
 
** <code>virsh qemu-monitor-event VM_MACHINE_NAME</code> 
 
* <code>virsh qemu-agent-command</code>            QEMU Guest Agent Command
 
  
 
== Networking ==
 
== Networking ==
*  <code>virsh net-autostart </code>                autostart a network
+
{{virsh net TOC}}
*  <code>virsh net-create </code>                    create a network from an XML file
 
*  <code>virsh net-define </code>                    define an inactive persistent virtual network or modify an existing persistent one from an XML file
 
*  <code>virsh net-destroy </code>                  destroy (stop) a network
 
*  <code>virsh [[/net-dhcp-leases/]] </code>              print lease info for a given network
 
*  <code>[[/virsh net-dumpxml/]]</code> NET_NAME            network information in XML
 
*  <code>virsh [[net-edit]]</code>                      edit XML configuration for a network
 
*  <code>virsh net-event </code>                    Network Events
 
*  <code>virsh [[/net-info/]]</code>                      network information
 
*  <code>virsh [[/net-list/]]</code>                      list networks
 
*  <code>virsh net-name  </code>                    convert a network UUID to network name
 
*  <code>virsh net-start </code>                      start a (previously defined) inactive network
 
*  <code>virsh net-undefine </code>                  undefine a persistent network
 
*  <code>virsh net-update </code>                    update parts of an existing network's configuration
 
*  <code>virsh net-uuid </code>                      convert a network name to network UUID
 
  
 
== Activities ==
 
== Activities ==
 
# Review virsh command cheatsheet https://computingforgeeks.com/virsh-commands-cheatsheet/
 
# Review virsh command cheatsheet https://computingforgeeks.com/virsh-commands-cheatsheet/
 
# Read https://github.com/libvirt/libvirt/blob/master/tools/virsh.c source code.
 
# Read https://github.com/libvirt/libvirt/blob/master/tools/virsh.c source code.
# Enable access to your VM Machines via [[Virsh/virsh console]] command
+
# Enable access to your VM Machines via [[virsh console]] command
# Learn difference between <code>[[/virsh define/]]</code> and <code>[[/virsh create/]]</code>
+
# Learn difference between <code>[[virsh define]]</code> and <code>[[virsh create]]</code>
# [[/Create Live backups/]] with active [[virsh/virsh blockcommit|virsh blockcommit]]<ref>https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref>
+
# [[Create Live backups]] with active [[virsh blockcommit]]<ref>https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit</ref>
# [[KVM/Offline Migrate or move a virtual machine between two KVM servers without shared storage]]<ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>: <code>[[virsh/virsh dumpxml|virsh dumpxml]]</code> and <code>[[virsh/MY XML VM DEFINITION.XML|virsh define]]</code>
+
# [[Offline Migrate or move a virtual machine between two KVM servers without shared storage]]<ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>: <code>[[virsh dumpxml]]</code> and <code>[[virsh define]]</code>
  
 
== See also ==
 
== See also ==
* <code>[[virtinst]]</code> package<ref>https://github.com/virt-manager/virt-manager/tree/master/virtinst</ref>, includes following python binaries: <code>virt-clone</code>, <code>virt-convert</code>, <code>[[/virt-install/]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_virtualization/getting-started-with-virtualization-in-rhel-8_configuring-and-managing-virtualization</ref>
+
* <code>[[virtinst]]</code> package<ref>https://github.com/virt-manager/virt-manager/tree/master/virtinst</ref>, includes following python binaries: <code>[[virt-clone]]</code>, <code>virt-convert</code>, <code>[[virt-install]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_virtualization/getting-started-with-virtualization-in-rhel-8_configuring-and-managing-virtualization</ref>
 
* [[virt-top]] 'top'-like utility for virtualization stats
 
* [[virt-top]] 'top'-like utility for virtualization stats
* [[DevOps/Ansible/ovirt-RHV module]]
+
* [[ovirt-RHV module]]
* [[KVM]] and [[libvirt]]
 
 
* [[virt-admin]]
 
* [[virt-admin]]
 +
* {{libvirtd}}
 +
* {{KVM}}
 +
* {{virsh}}
  
 
== References ==
 
== References ==

Latest revision as of 20:45, 26 May 2022

virsh[1][2] is a command line utility for managing virsh guest domains/virtual machines and the hypervisor[3]. Can be used to operate vm like create, list, start, shutdown or suspend and to manage storage, snapshots and checkpoints[4] among other actions. virt-manager is a graphical alternative to virsh. It supports Xen, QEMU, KVM, LXC, OpenVZ, VirtualBox and VMware ESX.

virsh is include in libvirt-client package in RHEL and Ubuntu and uses libvirt management API. Binaries included:

Basic Commands[edit]

  • virsh
  • virsh -r

All Commands[edit]

Getting Information[edit]

  • View configuration:
    • virsh dumpxml {guest-id, VM_NAME or uuid} > yourfilename.xml[14]
    • Virtual interfaces: virsh domiflist VM_NAME

Network info:

Storage info:

Display info:

Guest info:

Operations[edit]

Changing VM running status operations:

Snapshots:

Migrations:

  • virsh migrate --live GuestName DestinationURL
  • virsh migrate --offline[17] (copying non-shared storage or other file based storages (e.g. UEFI variable storage) is not supported during offline migration)

Configuration:

Virsh Storage commands[edit]

Virsh Storage Information[edit]

All Storage commands[edit]

Virsh Snapshots[edit]

Virsh CPU Commands[edit]

Virsh Memory Commands[edit]

virsh Memory Commands: virsh setmaxmem, virsh setmem, virsh dommemstat

QEMU[edit]

  • virsh qemu-attach QEMU Attach
  • virsh qemu-monitor-command QEMU Monitor Command
  • virsh qemu-monitor-event QEMU Monitor Events
    • virsh qemu-monitor-event VM_MACHINE_NAME
  • virsh qemu-agent-command QEMU Guest Agent Command

Networking[edit]

Activities[edit]

  1. Review virsh command cheatsheet https://computingforgeeks.com/virsh-commands-cheatsheet/
  2. Read https://github.com/libvirt/libvirt/blob/master/tools/virsh.c source code.
  3. Enable access to your VM Machines via virsh console command
  4. Learn difference between virsh define and virsh create
  5. Create Live backups with active virsh blockcommit[20]
  6. Offline Migrate or move a virtual machine between two KVM servers without shared storage[21]: virsh dumpxml and virsh define

See also[edit]

References[edit]

  1. http://manpages.ubuntu.com/manpages/xenial/man1/virsh.1.html
  2. https://github.com/libvirt/libvirt/blob/master/tools/virsh.c
  3. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh
  4. https://github.com/libvirt/libvirt/commit/689beaa47c51fb49fafa992dd468116b8f6b0782#diff-f41fa7374ab97c527387ea4ce48fd04e
  5. https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
  6. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands
  7. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-using_the_qemu_guest_virtual_machine_agent_protocol_cli-libvirt_commands
  8. https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm
  9. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli
  10. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli
  11. https://libvirt.org/news.html
  12. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh
  13. https://help.ubuntu.com/community/KVM/Managing
  14. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-domain_commands-creating_a_virtual_machine_xml_dump_configuration_file
  15. https://fossies.org/linux/libvirt/NEWS
  16. https://libvirt.org/news.html
  17. https://libvirt.org/migration.html#offline
  18. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli
  19. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#creating-storage-for-virtual-machines-using-the-cli_managing-storage-for-virtual-machines-using-the-cli
  20. https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
  21. https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm
  22. https://github.com/virt-manager/virt-manager/tree/master/virtinst
  23. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_virtualization/getting-started-with-virtualization-in-rhel-8_configuring-and-managing-virtualization

Script error: No such module "Check for unknown parameters".

Advertising: