Cómo usar KVM desde la línea de comandos en Debian o Ubuntu
Paso 1: Confirmar que el host admite la virtualización de hardware
El primer paso es confirmar que el procesador del host está equipado con un mecanismo de extensión de virtualización de hardware (como Intel VT o AMD- V). Esto es necesario para KVM. El siguiente comando puede confirmar esto.
$ egrep '(vmx|svm)' --color /proc/cpuinfo flags:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constante_tsc up arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdqvmx ssse3 cx16 pcid sse4 _1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hipervisor lahf_lm ida arat epb t pln pts therm tpr_shadow vnmi ept vpid fsgsbase smep
Si la salida no contiene el indicador vmx o svm, esto significa que el procesador host no admite la virtualización de hardware.
Paso 2: Instalar KVM
Usando apt-get, instale KVM y las herramientas de espacio de usuario relacionadas.
$ sudo apt-get install qemu-kvm libvirt-bin
A continuación, agregue su ID de usuario al grupo libvirt para que pueda ejecutar como usuario no root Administrar máquinas virtuales. El grupo libvirt debe crearse como parte de la instalación de KVM anterior.
$ sudo adduser [youruserID] libvirt
Vuelva a cargar la información actualizada de membresía del grupo como se muestra a continuación. Cuando se le solicite su contraseña, ingrese su contraseña de inicio de sesión.
$ exec su -l $USER
En este punto, deberías poder ejecutar virsh como un usuario normal. Para probar, intente ejecutar el siguiente comando, que enumerará las máquinas virtuales disponibles (actualmente no hay ninguna disponible). Si no hay errores de permisos, todo está bien.
$ virsh --connect qemu:///system list Id Nombre Estado
Paso 3: Configurar la red puenteada
Deje que la máquina virtual acceda a la red externa red Un método es configurar un puente de Linux en el host de Linux. Esta tecnología se llama red puenteada. A continuación se explica cómo crear y configurar el puente Linux br0 para el puente de red con KVM.
Primero, instale los paquetes necesarios y luego cree el puente Linux desde la línea de comandos.
$ sudo apt-get install bridge-utils $ sudo brctl addbr br0
El siguiente paso es configurar el puente de Linux en /etc/network/interfaces para que se configure automáticamente después del inicio. Para usar /etc/network/interfaces, debe deshabilitar el administrador de red en su sistema (si está en uso).
Siga las instrucciones que se proporcionan aquí (/2014/02/disable-network-manager-linux.html) para desactivar el administrador de red.
Después de deshabilitar el administrador de red, configure Linux bridge br0 en /etc/network/interfaces como se muestra a continuación.
#auto eth0 #iface eth0 inet dhcp auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
Aquí supongo que eth0 es la interfaz de red principal para acceder al externo red. Además, supongo que eth0 obtiene su dirección IP a través de DHCP. Tenga en cuenta que no hay ninguna configuración etho en /etc/network/interface. Cuando el puente Linux br0 asume la configuración de eth0, el puente etho obedecerá a br0.
Reinicie el servicio de red y confirme que el puente Linux esté configurado correctamente. Si la configuración es exitosa, a br0 se le debe proporcionar la dirección IP DHCP de eth0 y a eth0 no se le debe proporcionar ninguna dirección IP.
$ sudo /etc/init.d/networking restart $ ifconfig
Paso 4: Crear una máquina virtual desde la línea de comandos
En KVM, la máquina virtual máquina La configuración se almacena en el archivo XML del dominio. Por tanto, el primer paso para crear una máquina virtual es preparar el archivo XML del dominio.
El siguiente es un ejemplo de un archivo XML de dominio para una máquina virtual. Puede utilizar y personalizar este archivo XML de dominio si es necesario.
El archivo XML de dominio anterior define las siguientes máquinas virtuales.
1GB de RAM, un procesador virtual y un disco duro.
Imagen de disco: /home/dev/images/alice.img
Desde la unidad de CD-ROM (/home/dev/iso/ubuntu-13.10-server-amd64.iso) puesta en marcha.
Red: red puenteada vía br0.
$ sudo apt-get install uuid $ uuid
Otra forma de crear un archivo XML de dominio es volcar la información del dominio para una máquina virtual existente, como se muestra a continuación.
$ virsh --connect qemu:///system dumpxml alice > bob.xml
Paso 5: Iniciar la máquina virtual desde la línea de comandos
Después creación Antes de crear una máquina virtual, debe crear una imagen de disco inicial de la máquina virtual. Para hacer esto, puede usar el comando qemu-img, que se proporciona con el paquete qemu-kvm previamente instalado.
$ qemu-img create -f qcow2 /home/dev/images/alice.img 5G
La ventaja de utilizar qcow2 como formato de imagen de disco es que el valor de creación inicial de la imagen del disco no es máxima (5 GB), pero puede crecer lentamente a medida que el disco carga datos en lotes.
Ahora puede iniciar la máquina virtual utilizando el archivo XML de dominio que creó anteriormente. El siguiente comando iniciará la máquina virtual.
$ virsh --connect qemu:///system create alice.xml Crear dominio alice desde alice.xml
Confirma que el nuevo dominio se ha creado correctamente.
$ virsh --connect qemu:///lista del sistema Id. Nombre Estado ---------------------------- ---------------------------------- 3 alice corriendo
Además, confirma que el máquina virtual La interfaz virtual (como vnet0) se ha agregado correctamente al puente Linux br0 creado anteriormente.
$ sudo brctl show
Paso 6: Acceder remotamente a la máquina virtual
Para acceder remotamente a la consola de una máquina virtual en ejecución, puede utilizar cualquier cliente VNC programa.
Primero, busque el número de puerto VNC de la máquina virtual como se muestra a continuación.
$ sudo netstat -nap | grep kvm
En este ejemplo, el número de puerto VNC de la máquina virtual alice es 5900.
Luego inicie el cliente VNC y conéctese al servidor VNC que se ejecuta en
Administrar máquinas virtuales con virsh
A continuación se enumeran algunos usos comunes del comando virsh.
Para crear un nuevo dominio invitado e iniciar la máquina virtual:
$ virsh --connect qemu:///system create alice.xml
Para finalizar la máquina virtual y destruir el dominio invitado:
$ virsh --connect qemu:/// system destroy alice
Para apagar la máquina virtual (sin destruir el dominio):
$ virsh --connect qemu:///sistema apagado alice
Para suspender la máquina virtual:
$ virsh --connect qemu:/// system suspend alice
$ virsh --connect qemu:///system suspend alice ///system suspend alice
Para reanudar la ejecución de una máquina virtual suspendida:
$ virsh --connect qemu: ///system resume alice
Quiere iniciar automáticamente la máquina virtual inmediatamente después de que se inicie el host:
$ virsh -- connect qemu:// /system resume alice
$ virsh -- connect qemu:///system autostart alice
Quiere obtener la información del dominio de la máquina virtual:
$ virsh --connect qemu:///system dominfo alice
También puedes administrar máquinas virtuales en una sesión virsh. Para crear e ingresar una nueva sesión virsh, simplemente ejecute:
$ virsh --connect qemu:///system
Después de que aparezca el mensaje de virsh, puede usar cualquier orden de virsh.