Virsh
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:
Contents
Basic Commands
virsh
virsh -r
All Commands
/virsh autostart/ VM_NAME
or/virsh autostart/ VM_NAME --disable
(Related:virsh start
andvirsh pool-autostart
)/virsh blockcommit/
. Allows Live-disk-backup-with-active-blockcommit [5]/virsh blockcopy/
/virsh blockjob/
/virsh change-media/
/virsh create/ /MY_XML_VM_DEFINITION.XML/
/virsh define/ /MY_XML_VM_DEFINITION.XML/
(define machine but do not start it)/virsh define/ xmlfile.xml --validate
/virsh destroy/ VM_MACHINE_NAME
(Ungraceful Shutdown but do not destroy data or VM but you can corrupt guest file systems)/virsh destroy/ VM_MACHINE_NAME --graceful
/virsh domblklist/ VMNAME
/virsh domblklist/ --details VM_MACHINE_NAME
/virsh domblkstat/ VMNAME
/virsh domblkinfo/ VMNAME BLOCK_DEVICE
(BLOCK_DEVICE from /virsh domblklist/ command)/virsh domdisplay/
/virsh domfsfreeze/
Quiesces the guest filesystem in isolation[6]/virsh domfsthaw/
Quiesces the guest filesystem in isolation[7]/virsh domid/
/virsh dominfo/ VMNAME_OR_ID
Guess virtual machine information such us state and autostart configuration./virsh dommemstat/
/virsh domname/
virsh dump --memory-only --verbose
/virsh dumpxml/ VMNAME
- domain information in XML (Can be used to move VMs between hosts [8])/virsh edit/ VMNAME
/virsh list/
virsh list --name
/virsh memtune/
virsh migrate
virsh pool-autostart
/virsh pool-build/
/virsh pool-create/
create temporary storage pools from command line/virsh pool-create-as/
create temporary storage pools from XML file/virsh pool-define/
(create persistent storage from options from XML file)[9]/virsh pool-define-as/
(create persistent storage from options from command line)[10]/virsh pool-event/
/virsh reboot/
virsh restore
virsh resume
virsh save
virsh set-lifecycle-action
. Added in November 2017 (v.3.9.0)[11]virsh setmaxmem
virsh setmem
virsh setmem —-config
/virsh snapshot-create-as/
virsh start
virsh suspend
virsh save
virsh shutdown
/virsh undefine/
virsh update-device
virsh vcpuinfo
Getting Information
- List Running Virtual Machines:
/virsh list/
[12][13]virsh list --name
- List all Virtual Machines:
virsh list --all
/virsh dominfo/ MY_VM_NAME
Guess virtual machine information such us state and autostart configuration.
/virsh domstats/
(show all VMs)/virsh domstats/ --list-persistent
/virsh domstats/ MY_VM_MACHINE
virsh domstats MY_VM_MACHINE --state
- --no-wait option https://libvirt.org/news.html
- View configuration:
/virsh dumpxml/ {guest-id, VM_NAME or uuid}
> yourfilename.xml[14]- Virtual interfaces:
virsh domiflist VM_NAME
- Virtual interfaces:
Network info:
Storage info:
/virsh pool-list/
/virsh pool-info/ <pool>
/virsh vol-list/ <pool>
(Displays Name and Path)/virsh vol-list/ --details <pool>
(Includes also Capacity and Allocation)
/virsh vol-info/ <vol>
Guest info:
/virsh guestinfo/
v5.7.0 (2019-09-03)[15] (KVM/libvirt/Libvirt Release notes)
- virhostuptime (Since August 2019) https://github.com/libvirt/libvirt/commit/8b802f13cb47817706cba101f5d52e2c8957698d#diff-8d027e5576f9d83750bb73c63b12a6e3
virsh version
virsh version 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
Operations
/Changing VM running status operations/:
- Start VM:
/virsh start/ VM_MACHINE_NAME
- Resume VM:
/virsh resume/
- Shutdown VM:
/virsh shutdown/
(stop) Gracefully VM - Destroy VM:
/virsh destroy/ VM_NAME
(stop/stop not gracefully) VMvirsh destroy VM_MACHINE_NAME --graceful
/virsh console/ VM_MACHINE_NAME
Snapshots:
- /virsh snapshot-create/
- /virsh snapshot-create/ --validate (08/2019) [16]
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 autostart/ VM_MACHINE_NAME
/Virsh Storage commands/
/Virsh Storage Information/
/virsh domblklist/ VMNAME
/virsh pool-list/
/virsh pool-info/ <pool>
/virsh vol-info/<vol>
/virsh vol-list/<pool>
All Storage commands
/virsh domblklist/ VMNAME
virsh pool-autostart
/virsh pool-build/
/virsh pool-create/
create temporary storage pools from command line/virsh pool-create-as/
create temporary storage pools from XML file/virsh pool-define/
(create persistent storage from options from XML file)[18]/virsh pool-define-as/
(create persistent storage from options from command line)[19]/virsh pool-event/
/virsh pool-event/ --list
/virsh pool-event/ --event lifecycle
/virsh pool-event/ --event refresh
/virsh pool-list/
/virsh pool-info/ <pool>
/virsh pool-start/ <pool>
/virsh vol-clone/
/virsh vol-create-as/
/virsh vol-info/ --pool POOL_NAME VOL_NAME
/virsh vol-list/ <pool>
KVM virsh Snapshots
/virsh snapshot-create/
Create a snapshot from XML. See also:qemu-img
andqemu-img info
/virsh snapshot-create-as/
Create a snapshot from a set of args./virsh snapshot-current/
Get or set the current snapshot/virsh snapshot-delete/
Delete a domain snapshot/virsh snapshot-dumpxml/ VM_MACHINE_NAME SNAPSHOT_NAME
Dump XML for a domain snapshot/virsh snapshot-edit/
edit XML for a snapshot/virsh snapshot-info/
snapshot information. (virsh snapshot-info --domain DOMAIN_NAME --snapshotname SNAPSHOT_NAME)/virsh snapshot-list/ VM_MACHINE_NAME
List snapshots for a domain/virsh snapshot-parent/
Get the name of the parent of a snapshot/virsh snapshot-revert/
Revert a domain to a snapshot
/Virsh CPU Commands/
/virsh cpu-models/ x86_64
/Virsh Memory Commands/
/virsh memtune/
Get or set memory parameters/virsh setmaxmem/
change maximum memory limitvirsh setmem
change memory allocation/virsh dommemstat/
get memory statistics for a domain/virsh freecell/
NUMA free memory/virsh node-memory-tune/
Get or set node memory parameters/virsh nodememstats/
Prints memory stats of the node.
QEMU
virsh qemu-attach
QEMU Attachvirsh qemu-monitor-command
QEMU Monitor Commandvirsh qemu-monitor-event
QEMU Monitor Eventsvirsh qemu-monitor-event VM_MACHINE_NAME
virsh qemu-agent-command
QEMU Guest Agent Command
Networking
virsh net-autostart
autostart a networkvirsh net-create
create a network from an XML filevirsh net-define
define an inactive persistent virtual network or modify an existing persistent one from an XML filevirsh net-destroy
destroy (stop) a networkvirsh /net-dhcp-leases/
print lease info for a given network/virsh net-dumpxml/
NET_NAME network information in XMLvirsh net-edit
edit XML configuration for a networkvirsh net-event
Network Eventsvirsh /net-info/
network informationvirsh net-list
list networksvirsh net-name
convert a network UUID to network namevirsh net-start
start a (previously defined) inactive networkvirsh net-undefine
undefine a persistent networkvirsh net-update
update parts of an existing network's configurationvirsh net-uuid
convert a network name to network UUID
Activities
- Review virsh command cheatsheet https://computingforgeeks.com/virsh-commands-cheatsheet/
- Read https://github.com/libvirt/libvirt/blob/master/tools/virsh.c source code.
- Enable access to your VM Machines via Virsh/virsh console command
- Learn difference between
/virsh define/
and/virsh create/
- /Create Live backups/ with active virsh blockcommit[20]
- KVM/Offline Migrate or move a virtual machine between two KVM servers without shared storage[21]:
virsh dumpxml
andvirsh define
See also
virtinst
package[22], includes following python binaries:virt-clone
,virt-convert
,virt-install
[23]- virt-top 'top'-like utility for virtualization stats
- DevOps/Ansible/ovirt-RHV module
- KVM and libvirt
- virt-admin
References
- ↑ http://manpages.ubuntu.com/manpages/xenial/man1/virsh.1.html
- ↑ https://github.com/libvirt/libvirt/blob/master/tools/virsh.c
- ↑ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh
- ↑ https://github.com/libvirt/libvirt/commit/689beaa47c51fb49fafa992dd468116b8f6b0782#diff-f41fa7374ab97c527387ea4ce48fd04e
- ↑ https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
- ↑ 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
- ↑ 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
- ↑ https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm
- ↑ 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
- ↑ 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
- ↑ https://libvirt.org/news.html
- ↑ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/virtualization/chap-virtualization-managing_guests_with_virsh
- ↑ https://help.ubuntu.com/community/KVM/Managing
- ↑ 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
- ↑ https://fossies.org/linux/libvirt/NEWS
- ↑ https://libvirt.org/news.html
- ↑ https://libvirt.org/migration.html#offline
- ↑ 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
- ↑ 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
- ↑ https://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit
- ↑ https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm
- ↑ https://github.com/virt-manager/virt-manager/tree/master/virtinst
- ↑ 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: