virsh es la interfaz o comando para administrar las máquinas virtuales basadas en el hipervisor KVM. En la interfaz de virsh, las máquinas virtuales se identifican por sus nombres de dominio, por lo que virsh generalmente se usa para enumerar los dominios actuales, para crear, pausar y apagar dominios. Virsh viene bajo la licencia pública general menor de GNU y es compatible con Xen, QEmu, KVM, LXC, OpenVZ, VirtualBox y VMware ESX.
En este tutorial, discutimos los ejemplos prácticos del comando virsh:
Ejemplo 1 :obtenga la versión KVM instalada en la máquina host.
# virsh version Compiled against library: libvir 0.9.4 Using library: libvir 0.9.4 Using API: QEMU 0.9.4 Running hypervisor: QEMU 0.12.1
Ejemplo 2 :Obtener información de la memoria del hipervisor KVM (Host).
# virsh nodememstats total : 65979984 kB free : 44783040 kB buffers: 604388 kB cached : 16473328 kB
Ejemplo 3 :Obtener información de la CPU del hipervisor KVM.
# virsh nodecpustats user: 122779270000000 system: 1304262720000000 idle: 470011564690000000 iowait: 110371800000000
Ejemplo 4 :obtenga una cantidad de máquinas virtuales invitadas independientemente del estado, como en ejecución, guardado, apagado, etc.
# virsh list --all Id Name State ---------------------------------- 3 test running
Ejemplo 5 :Obtenga todas las redes disponibles para el hipervisor KVM.
# virsh net-list Name State Autostart ----------------------------------------- default active yes
Ejemplo 6 :Obtener información de hardware de una máquina invitada KVM.
Sintaxis:
# virsh dominfo BaseMachine
Ejemplo:
# virsh dominfo test Id: 3 Name: test UUID: 9ae96029-6c3d-8bd1-6e19-926183f89074 OS Type: hvm State: running CPU(s): 4 CPU time: 26862.0s Max memory: 4194304 kB Used memory: 4194304 kB Persistent: yes Autostart: disable Managed save: no
Ejemplo 7 :Apague la Máquina Virtual.
# virsh shutdown machine_name
Ejemplo 8 :reinicie la máquina virtual.
# virsh reboot machine_name
Ejemplo 9 :Forzar apagado o destrucción de la máquina.
# virsh destroy machine_name
Ejemplo 10 :Inicie la Máquina Virtual.
# virsh start machine_name
Ejemplo 11 :Conéctese a una máquina virtual específica usando virt-viewer.
sintaxis:
# virt-viewer -c qemu:///system machine_name
Ejemplo:
# virt-viewer -c qemu:///system test
Ejemplo 12 :Crear nueva máquina virtual usando virt-install.
Supongamos que quiero instalar Centos 6.X en un espacio de 10 GB y luego crear un archivo img usando el siguiente comando:
# dd if=/dev/zero of=/var/lib/libvirt/images/centos-linux.img bs=1M count=10240
luego ejecute el comando virt-install:
# virt-install --virt-type kvm --name CentOS-Linux --ram 2048 --vcpus=2 --disk path=/var/lib/libvirt/images/centos-linux.img --network bridge=br0 --graphics vnc --cdrom /root/CentOS-6.2-x86_64-bin-DVD1.iso --os-variant=RHEL6
Aparecerá la siguiente pantalla cuando ejecutemos el comando anterior:
Ejemplo 13 :Migración en vivo de una máquina virtual de un hipervisor a otro usando el comando virsh.
Requisitos básicos de la migración en vivo:
- La imagen del invitado debe estar ubicada en un almacenamiento compartido y debe ser accesible mediante iSCSI, NFS, GFS2 o Fibre Channel.
- El almacenamiento compartido debe montarse en la misma ruta en ambos hosts.
- Ambos invitados deben ejecutar la misma versión de KVM.
- Ambos invitados deben tener la misma configuración de red y configuración de puente (sus direcciones IP deben ser diferentes)
# virsh migrate --live machine_name qemu+ssh://destination_server/system