Red de conocimiento informático - Material del sitio web - Cómo usar KVM desde la línea de comandos en Debian o Ubuntu

Cómo usar KVM desde la línea de comandos en Debian o Ubuntu

Hola.

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.

alice f5b8c05b-9c7a-3211-49b9-2bd635f7e2aa <.memory>1048576 1048576 1 < clock offset='utc'/> < on_ poweroff>destruir reiniciar destruir <.devices> /usr/bin/kvm destruir

</disk>
<tipo de controlador="ide" index="0"> < /devices>

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.

La cadena UUID contenida se puede generar aleatoriamente. Para obtener un UUID aleatorio, puede utilizar la herramienta de línea de comando uuid.

$ 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 :5900.

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.