Abierto
Cerca

Instalación y configuración de kvm ubuntu 18.04. Hipervisor de goma. Usamos grupos lógicos para virtualizar QEMU-KVM en Linux. Conexión a una máquina virtual

En este artículo introductorio, presentaré brevemente todas las herramientas de software utilizadas en el proceso de desarrollo del servicio. Se discutirán con más detalle en los siguientes artículos.

Por qué ? Este sistema operativo me resulta cercano y comprensible, por lo que no hubo tormento, tormento ni sacudidas a la hora de elegir una distribución. No tiene ninguna ventaja particular sobre Red Hat Enterprise Linux, pero se decidió trabajar con un sistema familiar.

Si planea implementar de forma independiente una infraestructura utilizando tecnologías similares, le aconsejaría que elija RHEL: gracias a una buena documentación y programas de aplicación bien escritos, será, si no en un orden de magnitud, al menos dos veces más simple, y Gracias al sistema de certificación desarrollado, podrá encontrar fácilmente varios especialistas que estén familiarizados con este sistema operativo en el nivel adecuado.

Nosotros, nuevamente, decidimos usar Expresión de Debian con un conjunto de paquetes de Sid/Experimental y algunos paquetes respaldados y compilados con nuestros parches.
Hay planes para publicar un repositorio con paquetes.

Al elegir la tecnología de virtualización, se consideraron dos opciones: Xen y KVM.

Además, se tuvo en cuenta el hecho de que había una gran cantidad de desarrolladores, proveedores de alojamiento y soluciones comerciales basadas en Xen, por lo que era más interesante implementar una solución basada en KVM.

La razón principal por la que decidimos utilizar KVM es la necesidad de ejecutar máquinas virtuales con FreeBSD y, en el futuro, MS Windows.

Para administrar máquinas virtuales resultó sumamente conveniente utilizar productos que utilicen su API: virsh, administrador-virtual, instalación virt, etc.

Este es un sistema que almacena la configuración de las máquinas virtuales, las administra, mantiene estadísticas sobre ellas, se asegura de que la interfaz de la máquina virtual esté activa al iniciarse, conecta dispositivos a la máquina; en general, hace un gran trabajo útil. y un poco más que eso.

Por supuesto, la solución no es perfecta. Las desventajas incluyen:

  • Mensajes de error absolutamente locos.
  • Incapacidad para cambiar parte de la configuración de la máquina virtual sobre la marcha, aunque QMP (QEMU Monitor Protocol) lo permite.
  • A veces, por alguna razón desconocida, es imposible conectarse a libvirtd: deja de responder a eventos externos.

El principal problema al implementar el servicio desde el principio fue la limitación de recursos para las máquinas virtuales. En Xen, este problema se resolvió con la ayuda de un programador interno que distribuye recursos entre máquinas virtuales, y lo mejor es que también se implementó la capacidad de limitar las operaciones del disco.

No existía nada parecido en KVM hasta la llegada del mecanismo de asignación de recursos del kernel. Como es habitual en Linux, el acceso a estas funciones se implementó a través de un sistema de archivos especial. grupo c, en el que, utilizando las llamadas normales al sistema write(), se podría agregar un proceso a un grupo, asignarle su peso de loro, especificar el núcleo en el que se ejecutará, especificar el ancho de banda del disco que puede usar el proceso o, nuevamente , asígnale un peso.

El beneficio es que todo esto se implementa dentro del kernel y se puede usar no solo para el servidor, sino también para el escritorio (que se usó en el famoso "El parche del kernel de Linux de ~200 líneas que hace maravillas"). Y en mi opinión, este es uno de los cambios más significativos en la rama 2.6, sin contar mi favorito #12309, ni el archivo de otro sistema de archivos. Bueno, excepto quizás por POHMELFS (pero simplemente por el nombre).

Mi actitud hacia esta biblioteca de utilidades es muy ambigua.

Por un lado se parece a esto:

Y esto también es muy difícil de ensamblar desde el código fuente, y mucho menos en un paquete: a veces me parece que Linux From Scratch es un poco más fácil de construir desde cero.

Por otro lado, es algo muy poderoso que le permite crear imágenes para máquinas virtuales, modificarlas, comprimirlas, instalar grub, modificar la tabla de particiones, administrar archivos de configuración, transferir máquinas de hardware a un entorno virtual, transferir máquinas virtuales. de una imagen a otra, transferir máquinas virtuales de la imagen al hardware y, para ser honesto, aquí mi imaginación me decepciona un poco. Ah, sí: también puedes ejecutar un demonio dentro de una máquina virtual Linux y acceder a los datos de la máquina virtual en vivo, y hacer todo esto en shell, python, perl, java, ocaml. Esta es una lista breve y de ninguna manera exhaustiva de lo que puede hacer con .

Curiosamente, la mayor parte del código se genera en el momento del ensamblaje, así como la documentación del proyecto. Ocaml y perl se utilizan ampliamente. El código en sí está escrito en C, que luego se empaqueta en OCaml, y las piezas repetidas de código se generan por sí mismas. El trabajo con imágenes se realiza lanzando una imagen de servicio especial (aparato supermin), a la que se envían comandos a través de un canal. Esta imagen de rescate contiene un determinado conjunto de utilidades, como parted, mkfs y otras útiles para un administrador del sistema.

Recientemente incluso comencé a usarlo en casa, cuando extraje los datos que necesitaba de la imagen de nandroid. Pero esto requiere un kernel habilitado para yaffs.

Otro

A continuación se muestran algunos enlaces más interesantes a una descripción del software utilizado; léalo y estúdielo usted mismo si está interesado. Por ejemplo,

KVM o Kernel Virtual Module es un módulo de virtualización para el kernel de Linux que le permite convertir su computadora en un hipervisor para administrar máquinas virtuales. Este módulo opera a nivel de kernel y admite tecnologías de aceleración de hardware como Intel VT y AMD SVM.

Por sí solo, el software KVM en el espacio del usuario no virtualiza nada. En su lugar, utiliza el archivo /dev/kvm para configurar espacios de direcciones virtuales para el invitado en el kernel. Cada máquina invitada tendrá su propia tarjeta de video, tarjeta de red y de sonido, disco duro y otros equipos.

Además, el sistema invitado no tendrá acceso a los componentes del sistema operativo real. La máquina virtual se ejecuta en un espacio completamente aislado. Puede utilizar kvm tanto en un sistema GUI como en servidores. En este artículo veremos cómo instalar kvm Ubuntu 16.04.

Antes de continuar con la instalación de KVM, debe verificar si su procesador admite la aceleración de virtualización de hardware de Intel-VT o AMD-V. Para hacer esto, ejecute el siguiente comando:

egrep -c "(vmx|svm)" /proc/cpuinfo

Si el resultado devuelve 0, entonces su procesador no admite la virtualización de hardware; si es 1 o más, entonces puede usar KVM en su máquina.

Ahora podemos proceder a instalar KVM, se puede obtener un conjunto de programas directamente desde los repositorios oficiales:

sudo apt instalar qemu-kvm libvirt-bin bridge-utils virt-manager cpu-checker

Instalamos no solo la utilidad kvm, sino también la biblioteca libvirt, así como el administrador de máquinas virtuales. Una vez que se completa la instalación, debe agregar su usuario al grupo libvirtd, porque solo el root y los usuarios de este grupo pueden usar máquinas virtuales KVM:

sudo gpasswd -a USUARIO libvirtd

Después de ejecutar este comando, cierre sesión y vuelva a iniciar sesión. A continuación, verifiquemos si todo se instaló correctamente. Para hacer esto, use el comando kvm-ok:

INFORMACIÓN: /dev/kvm existe
Se puede utilizar la aceleración KVM

Si todo se hizo correctamente, verá el mismo mensaje.

Usando KVM en Ubuntu 16.04

Ha completado la tarea de instalar kvm en Ubuntu, pero aún no puede utilizar este entorno de virtualización y aún debe configurarlo. A continuación, veremos cómo configurar kvm Ubuntu. Primero necesitas configurar tu red. Necesitamos crear un puente con el que la máquina virtual se conectará a la red de la computadora.

Configurar un puente en NetworkManager

Esto se puede hacer de varias maneras, por ejemplo, puede utilizar el programa de configuración de red NetworkManager.

Haga clic en el icono de NetworkManager en el panel, luego seleccione cambiar conexiones, luego haga clic en el botón Agregar:

Luego seleccione el tipo de conexión Puente y presione Crear:

En la ventana que se abre, haga clic en el botón Agregar, para vincular nuestro puente a la conexión a internet:

De la lista, seleccione Ethernet y presione Crear:

En la siguiente ventana, seleccione en el campo dispositivo, Interfaz de red a la que debe estar asociado nuestro puente:

Ahora verá su puente en la lista de conexiones de red. Ya solo queda reiniciar la red para aplicar completamente los cambios, para ello ejecuta:

Configuración manual del puente

Primero necesita instalar el conjunto de utilidades bridge-utils si aún no lo ha hecho:

sudo apt instalar bridge-utils

Luego, usando el programa brctl, podemos crear el puente que necesitamos. Para hacer esto, use los siguientes comandos:

sudo brctl addbr puente0
$ sudo dirección ip mostrar
$ sudo addif puente0 eth0

El primer comando agrega el dispositivo puente br0, con el segundo necesitas determinar qué interfaz de red es la conexión principal a la red externa, en mi caso es eth0. Y con el último comando conectamos el puente br0 a eth0.

Ahora necesita agregar algunas líneas a la configuración de red para que todo se inicie automáticamente después de que se inicie el sistema. Para hacer esto, abra el archivo /etc/network/interfaces y agregue las siguientes líneas allí:

sudo gedit /etc/network/interfaces

bucle invertido
puente auto lo0
bucle invertido iface lo inet
puente iface0 inet dhcp
puente_ports eth0

Cuando se agreguen las configuraciones, reinicie la red:

sudo systemctl reiniciar la red

Ahora la instalación y configuración de KVM está completamente completa y puede crear su primera máquina virtual. Después de esto, puedes ver los puentes disponibles usando el comando:

Creando máquinas virtuales KVM

La configuración de Ubuntu KVM está completa y ahora podemos continuar usándola. Primero, veamos la lista de máquinas virtuales existentes:

virsh -c qemu:///lista del sistema

Esta vacio. Puedes crear una máquina virtual a través del terminal o en la interfaz gráfica. Para crear a través de la terminal, use el comando virt-install. Primero vayamos a la carpeta libvirt:

CD /var/lib/libvirt/boot/

Para instalar CentOS el comando se verá así:

sudo virt-instalar\
--virt-tipo=kvm \
--nombre centos7\
--ram 2048\
--vcpus=2\
--os-variante=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--red=puente=br0,modelo=virtio \
--gráficos vnc\
--ruta del disco=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Echemos un vistazo más de cerca a lo que significan los parámetros de este comando:

  • tipo virt- tipo de virtualización, en nuestro caso kvm;
  • nombre- nombre del coche nuevo;
  • RAM- cantidad de memoria en megabytes;
  • vcpu- número de núcleos de procesador;
  • variante del sistema operativo- tipo de sistema operativo;
  • CD ROM- imagen de instalación del sistema;
  • puente de red- el puente de red que configuramos anteriormente;
  • gráficos- una forma de acceder a la interfaz gráfica;
  • ruta de disco- dirección del nuevo disco duro de esta máquina virtual;

Una vez completada la instalación de la máquina virtual, puede conocer los parámetros de conexión VNC usando el comando:

sudo virsh vncdisplay centos7

Ahora puede ingresar los datos recibidos en su cliente VNC y conectarse a la máquina virtual incluso de forma remota. Para Debian el comando será ligeramente diferente, pero todo parece similar:

Vaya a la carpeta de imágenes:

CD /var/lib/libvirt/boot/

Puede descargar la imagen de instalación de Internet si es necesario:

sudo wget https://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-8.5.0-amd64-DVD-1.iso

Entonces creemos una máquina virtual:

sudo virt-instalar\
--virt-tipo=kvm \
--nombre=debina8\
--ram=2048\
--vcpus=2\
--os-variante=debian8 \
--hvm\
--cdrom=/var/lib/libvirt/boot/debian-8.5.0-amd64-DVD-1.iso \
--red=puente=puente0,modelo=virtio \
--gráficos vnc\
--ruta del disco=/var/lib/libvirt/images/debian8.qcow2,size=40,bus=virtio,format=qcow2

Ahora volvamos a ver la lista de máquinas disponibles:

virsh -c qemu:///lista del sistema

Para iniciar la máquina virtual puedes usar el comando:

sudo virsh iniciar nombre de máquina

Para detener:

sudo virsh cerrar nombre de máquina

Para cambiar al modo de suspensión:

sudo virsh suspender nombre de máquina

Reiniciar:

sudo virsh reiniciar nombre de máquina

sudo virsh restablecer nombre de máquina

Para eliminar completamente una máquina virtual:

sudo virsh destruir nombre de máquina

Creando máquinas virtuales en GUI\

Si tiene acceso a una interfaz gráfica, no es necesario utilizar una terminal; puede utilizar la interfaz gráfica completa del administrador de máquinas virtuales Virtual Manager. El programa se puede iniciar desde el menú principal:

Para crear una nueva máquina, haga clic en el icono con el icono del monitor. A continuación, deberá seleccionar la imagen ISO de su sistema. También puedes utilizar una unidad de CD/DVD real:

En la siguiente pantalla, seleccione la cantidad de memoria que estará disponible para la máquina virtual, así como la cantidad de núcleos de procesador:

En esta pantalla, debe seleccionar el tamaño del disco duro que estará disponible en su máquina:

En el último paso del asistente, debes verificar que la configuración de la máquina sea correcta y también ingresar su nombre. También debe especificar el puente de red a través del cual la máquina se conectará a la red:

Después de esto, la máquina estará lista para usar y aparecerá en la lista. Puede iniciarlo usando el triángulo verde en la barra de herramientas del administrador.

conclusiones

En este artículo, vimos cómo instalar KVM Ubuntu 16.04, vimos cómo preparar completamente este entorno para el trabajo, así como cómo crear máquinas virtuales y usarlas. Si tienes alguna duda, ¡pregunta en los comentarios!

Para concluir, una conferencia de Yandex sobre qué es la virtualización en Linux:

Anteriormente escribí sobre la instalación. Qemu-KVM V Debian. Pero, en mi opinión, la información resultó incompleta. Además, no tuve en cuenta algunos matices. Por lo tanto, les traigo un artículo actualizado sobre la instalación de la máquina virtual Qemu-KVM. Naturalmente, eliminaré el artículo anterior.

Creo que debería explicar qué es. máquina virtual, no vale la pena. Probablemente lo sepas (ya que estás leyendo este artículo). Si no - . Nos centraremos directamente en el tema. Qemu-KVM es un proyecto que combina dos de las tecnologías de virtualización completa más soñadoras (en mi opinión). Qemu es una especie de “emulador de computadora” que admite una gran variedad de arquitecturas de hardware. Puede ejecutar casi cualquier sistema operativo para cualquier dispositivo (por ejemplo, ejecuté versiones antiguas Mac OS X, que es para PowerPC). La desventaja de Qemu es su lentitud debido a la falta de aceleración por hardware. Y luego llega otro proyecto al rescate: KVM. O máquina virtual del kernel. KVM es una tecnología del kernel de Linux que permite la aceleración del hardware con virtualización completa. La desventaja de KVM es que solo admite arquitectura x86.

¿Por qué Qemu-KVM? Para Linux, este es el proyecto de virtualización más recomendado. Funciona más rápido que VirtualBox Y Reproductor VMware(según mis pruebas), KVM es una tecnología nativa para Linux. Además, si tienes una buena computadora para juegos con dos tarjetas de video, puedes instalarla en Qemu-KVM. ventanas, coloque una de las tarjetas de video y olvídese de reiniciar en otro sistema operativo. Si querías jugar, lanzabas una máquina virtual con Windows y jugabas. El rendimiento será el 95% del rendimiento de Windows instalado en el hardware. Pero en mi opinión es sencillamente precioso. Escribiré un artículo aparte sobre esto. Será interesante:)

Ahora describiré nuestro plan de acción. En primer lugar, realizaré la instalación usando un ejemplo. Debian 8.2 GNOME de 64 bits, aunque no habrá diferencias significativas en otros entornos gráficos. En segundo lugar, describiré cómo trabajar con KVM solo en modo gráfico (después de todo, no lo instalaremos en un servidor). Por tanto, nada de terminales, scripts, etc., como se suele hacer en el caso de la virtualización de servidores. En tercer lugar, le aconsejo que lea adicionalmente la documentación de Qemu y KVM (proporcionaré enlaces al final del artículo). Esto le resultará muy útil si desea aprovechar al máximo todo el potencial de este paquete. Bueno, nuestro plan de acción es claro. Ahora los pasos de acción:

  • instalar qemu-kvm;
  • instalación de un administrador gráfico y utilidades adicionales;
  • configurar un puente de red;
  • crear almacenamiento para máquinas virtuales;
  • instalar un sistema de invitados.
Primero, verifiquemos si su computadora admite la virtualización de hardware. Para hacer esto, ejecute el comando en la terminal:

egrep "(vmx|svm)" /proc/cpuinfo

La salida del comando debe contener vmx, o svm. Si no están allí, verifique si la virtualización está habilitada en el BIOS (busque elementos Intel VT-i o similar para AMD). Si no hay nada, entonces no tienes suerte.

Instale los componentes necesarios:

sudo apto instalar qemu-kvm bridge-utils libvirt-bin virt-manager

Agréguese al grupo libvirt:

sudo adduser $ USUARIO libvirt

Ahora configuremos la red. Para que todas las máquinas virtuales puedan acceder a la red y comunicarse entre sí, debe crear un puente de red y tarjetas de red virtuales para cada máquina virtual ( dispositivos de toque). Dado que instalaremos máquinas virtuales desde la interfaz gráfica, no es necesario crear grifos manualmente. Gerente Virt hará esto por nosotros cada vez que empecemos. Sólo necesitamos configurar el puente. Primero, habilitemos el enrutamiento en el kernel:

sudo nano /etc/sysctl.conf

Buscamos la línea net.ipv4_forward=0 y cambiamos su valor a 1 . También ahorramos:

sudo sysctl -p

A continuación, asumiré lo siguiente: 1) en su computadora hay una tarjeta de red que recibe una dirección IP del enrutador. 2) accedes a Internet a través de un módem 3G y tu tarjeta de red es gratuita. Esta opción implica más trabajo manual, pero se ha probado varias veces (lo he hecho yo mismo en una de las máquinas). Entonces, abra el archivo de interfaces:

sudo nano /etc/network/interfaces

Su contenido predeterminado es:



baja automática
bucle invertido iface lo inet

Cambiamos su contenido. Para la primera opción:

fuente /etc/network/interfaces.d/*

# La interfaz de red loopback
baja automática
bucle invertido iface lo inet

auto eth0
manual de iface eth0 inet

auto br0
iface br0 inet estático
dirección 192.168.0.2
puerta de enlace 192.168.0.1
máscara de red 255.255.255.0
red 192.168.0.0
transmisión 192.168.0.255
puente_ports eth0
puente_stp apagado
puente_maxwait 0
puente_fd 0

Para la segunda opción:

fuente /etc/network/interfaces.d/*

# La interfaz de red loopback
baja automática
bucle invertido iface lo inet

ppp0 automático
iface ppp0 inet wvdial

auto eth0
manual de iface eth0 inet

auto br0
iface br0 inet estático
dirección 192.168.0.2
puerta de enlace 192.168.0.1
máscara de red 255.255.255.0
red 192.168.0.0
transmisión 192.168.0.255
puente_ports eth0
puente_stp apagado
puente_maxwait 0
puente_fd 0
ruta arriba del default br0

Nota: Si no necesita una conexión automática a Internet a través de un módem después de iniciar el sistema, elimine las líneas auto ppp0 y
iface ppp0 inet wvdial. De lo contrario, asegúrese de que cuando se inicie el sistema, el módem esté insertado en el puerto USB.

Ahorrar. Ahora, para la opción con un módem, necesita instalar un programa de marcador. wvdial:

sudo apto instalar wvdial

Editar la configuración (nota: se utiliza un módem 3G como ejemplo Línea recta. Puede encontrar fácilmente ejemplos de configuraciones para otros módems en Internet):

sudo nano /etc/wvdial.conf


Inicial1 = ZTA
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","home.beeline.ru"
Modo estúpido = 1
RDSI = 0
Tipo de módem = Módem USB
Nuevo PPPD = sí
Teléfono = *99#
Módem = /dev/ttyACM0
Nombre de usuario = línea recta
Contraseña = línea recta
Baudios = 9600
País = Rusia
Reconexión automática=activada
DNS automático = desactivado
Segundos inactivos = 0

Ahorrar. Ahora el módem se encenderá inmediatamente después de que se inicie el sistema. La alineación ruta del default br0 elimina la ruta predeterminada a través del puente. Si no lo haces, no podrás conectarte a Internet, ya que el tráfico irá por el puente y no por el módem 3G.

El último paso que debemos decir cortafuegos, para que pase el tráfico desde nuestras máquinas virtuales a la red y viceversa. Para hacer esto, puedes hacerlo de dos maneras: escribir un guión con varias reglas para iptables, que se ejecutará junto con el sistema, o ingrese estas reglas manualmente y guárdelas. Usaré la primera opción. Para el segundo necesitarás instalar el paquete. iptables-persistente y simplemente ingresa las reglas una por una (usando sudo). Entonces. crear un script (en cualquier editor de texto). Pegue el siguiente contenido allí:

#!/bin/sh

# Definir la interfaz de salida para la cual se utilizará el reemplazo de dirección (NAT)
iptables -v -t nat -A POSTROUTING -o ppp0 -j MASCARADA

# Reenviamos todos los paquetes recibidos por el módem desde la red global (0.0.0.0/0) a la red local (192.168.0.0/24)
iptables -v -A ADELANTE -i ppp0 -o br0 -s 0.0.0.0/0 -d 192.168.0.0/24 -j ACEPTAR

# Reenviar todos los paquetes provenientes de la red local (192.168.0.0/24) a la global (0.0.0.0/0)
iptables -v -A ADELANTE -i br0 -o ppp0 -s 192.168.0.0/24 -d 0.0.0.0/0 -j ACEPTAR

Guárdalo como puerta de enlace.sh y otorgar derechos de ejecución (ya sea en las propiedades del archivo o en la terminal con el comando chmod +x puerta de enlace.sh). Ahora puede iniciarlo manualmente después de que el sistema se haya iniciado o agregarlo al inicio. Para hacer esto, mueva el script a ~/.config/autostart(en el administrador de archivos, active mostrar archivos ocultos y verá el directorio .config en su directorio personal).

Ahora todo está listo para instalar la máquina virtual. Desde el menú de la aplicación, inicie Virt Manager (administrador de máquinas virtuales):

Haga clic derecho en la línea servidor local y elige Detalles. Ir a la pestaña Almacenamiento. Necesitamos especificar el directorio (o partición/disco) para almacenar las máquinas virtuales.

En la esquina inferior izquierda, haga clic en el signo más ( Agregar una piscina), indique el tipo de almacenamiento y la ruta al mismo.

en la pestaña Interfaces de red, puedes comprobar si todo funciona.

Ahora presionamos Archivo - Nueva máquina virtual. Especifique la ruta a la imagen del disco y el tipo de máquina virtual. A continuación, le indicamos la cantidad de RAM y el número de núcleos de procesador. A continuación indicamos nuestro almacenamiento y pulsamos Nuevo volumen. Especifique el nombre, deje el tipo qcow2 y tamaño. Este será un disco duro virtual. Si planea instalar un sistema con un shell gráfico y muchos programas, proporcione más espacio (50 gigabytes). En la última pestaña, marque la casilla Cambiar la configuración antes del lanzamiento, verifica que nuestro puente esté seleccionado como dispositivo de red, escribe cualquier nombre para la máquina virtual y haz clic Completo. La ventana de parámetros de esta máquina virtual se abrirá frente a usted.





Ir a la pestaña UPC y pon una marca en Copiar la configuración del procesador del sistema host.

Al lado de la pestaña Neto(siguiente), y también indicar vitio. en la pestaña Mostrar por favor indica especia, y en la pestaña Video - QXL. Por lo general, esta combinación proporciona el máximo rendimiento de representación de gráficos, pero si lo desea, puede experimentar. Tenga en cuenta que para los sistemas invitados de Windows, se requiere una instalación por separado del controlador QXL (en el propio Windows).


Ahora que todo está listo, haz clic en la esquina superior izquierda. Iniciar instalación. E instalamos el sistema como de costumbre, con una excepción: en cuanto el instalador comience a configurar automáticamente la red, pulsamos Cancelar y seleccione Configurar la red manualmente. Especifique la dirección IP deseada para la máquina virtual (en nuestro caso 192.168.0.3 ), máscara de subred ( 255.255.255.0 ), puerta de enlace (la puerta de enlace será la dirección del host, es decir 192.168.0.2 ) y servidor DNS (aquí solo especifique Google 8.8.8.8 ). Eso es todo. No hay necesidad de hacer nada más. Instale el sistema y configúrelo. En general, eso es todo. Los pasos descritos son una forma de reemplazar, digamos, VirtualBox con una alternativa mejor. Después de leer la documentación, comprenderá cuán amplias son las capacidades de Qemu-KVM. Deliberadamente no describí aquí parámetros y métodos de consola adicionales para iniciar máquinas virtuales a través del terminal, ya que esto no siempre es necesario en una máquina doméstica. Escribiré un artículo aparte sobre esto, sobre cómo configurar un servidor multifuncional doméstico (que también puede actuar como un servidor de máquina virtual). Para aquellos que, por alguna razón, no entendieron lo que estaba escrito, o todavía hay momentos incomprensibles, les sugiero que vean un video en el que no describiré, pero mostraré cómo instalar y configurar todo esto. Si tiene sugerencias o adiciones al artículo, escriba en los comentarios.

El lanzamiento de WordPress 5.3 mejora y amplía el editor de bloques introducido en WordPress 5.0 con un nuevo bloque, una interacción más intuitiva y una accesibilidad mejorada. Nuevas funciones en el editor […]

Después de nueve meses de desarrollo, está disponible el paquete multimedia FFmpeg 4.2, que incluye un conjunto de aplicaciones y una colección de bibliotecas para operaciones en varios formatos multimedia (grabación, conversión y […]

  • Nuevas características en Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 es una versión de soporte a largo plazo que será compatible hasta 2023. Viene con software actualizado y contiene mejoras y muchas novedades […]

  • Lanzada la distribución Linux Mint 19.2

    Se presenta el lanzamiento de la distribución Linux Mint 19.2, la segunda actualización de la rama Linux Mint 19.x, formada sobre la base del paquete Ubuntu 18.04 LTS y compatible hasta 2023. La distribución es totalmente compatible [...]

  • Hay nuevas versiones del servicio BIND disponibles que contienen correcciones de errores y mejoras de funciones. Las nuevas versiones se pueden descargar desde la página de descargas en el sitio web del desarrollador: […]

    Exim es un agente de transferencia de mensajes (MTA) desarrollado en la Universidad de Cambridge para su uso en sistemas Unix conectados a Internet. Está disponible gratuitamente de acuerdo con [...]

    Luego de casi dos años de desarrollo, se presenta el lanzamiento de ZFS en Linux 0.8.0, una implementación del sistema de archivos ZFS, diseñado como un módulo para el kernel de Linux. El módulo ha sido probado con kernels de Linux desde 2.6.32 hasta […]

  • WordPress 5.1.1 ha solucionado una vulnerabilidad que podría permitirle tomar el control de su sitio.
  • El IETF (Internet Engineering Task Force), que desarrolla protocolos y arquitectura de Internet, ha completado un RFC para el protocolo ACME (Automatic Certificate Management Environment) […]

    La autoridad de certificación sin fines de lucro Let's Encrypt, que está controlada por la comunidad y proporciona certificados de forma gratuita a todos, resumió los resultados del año pasado y habló sobre los planes para 2019. […]

  • Se ha lanzado una nueva versión de Libreoffice: Libreoffice 6.2
  • Comprobando el soporte del hipervisor

    Comprobamos que el servidor soporta tecnologías de virtualización:

    gato /proc/cpuinfo | egrep "(vmx|svm)"

    Deberías obtener algo como esto en respuesta:

    banderas: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constante_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfm perf pni monitor mulqdq dtes64 ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm epb tpr_shadow vnmi flexpriority ept vpid dtherm ida arat

    De lo contrario, vaya al BIOS, busque la opción para habilitar la tecnología de virtualización (tiene diferentes nombres, por ejemplo, Tecnología de virtualización Intel o Virtualización) y habilítela; establezca el valor Permitir.

    También puedes comprobar la compatibilidad con el comando:

    * si el comando devuelve un error "comando kvm-ok no encontrado", instale el paquete apropiado: apt-get instalar cpu-checker.

    Si vemos:

    INFORMACIÓN: /dev/kvm existe
    Se puede utilizar la aceleración KVM

    Esto significa que hay soporte de hardware.

    Preparando el servidor

    Para nuestra comodidad, crearemos un directorio en el que almacenaremos datos para KVM:

    mkdir -p /kvm/(vhdd,iso)

    * se crearán dos directorios: /kvm/vhdd(para discos duros virtuales) y /kvm/iso(para imágenes iso).

    Fijemos la hora:

    \cp /usr/share/zoneinfo/Europa/Moscú /etc/localtime

    * este comando establece la zona de acuerdo con la hora de Moscú.

    ntpdate es.pool.ntp.org

    *Sincronizamos con el servidor horario.

    Instalación y lanzamiento

    Instale KVM y las utilidades de administración necesarias.

    a) Ubuntu hasta la versión 18.10

    apt-get instalar qemu-kvm libvirt-bin virtinst libosinfo-bin

    b) Ubuntu después de 18.10:

    apt-get install qemu-kvm libvirt-daemon-system libvirt-bin virtinst libosinfo-bin

    * Dónde qemu-kvm- hipervisor; libvirt-bin— biblioteca de control del hipervisor; virtinst— utilidad de gestión de máquinas virtuales; libosinfo-bin— una utilidad para ver una lista de opciones del sistema operativo que se pueden utilizar como sistemas operativos invitados.

    Configuremos el servicio para que se inicie automáticamente:

    systemctl habilita libvirtd

    Iniciemos libvirtd:

    systemctl inicia libvirtd

    Configuración de la red

    Las máquinas virtuales pueden funcionar detrás de NAT (que es un servidor KVM) o recibir direcciones IP de la red local; para ello es necesario configurar un puente de red. Configuraremos este último.

    Cuando utilice una conexión remota, verifique su configuración cuidadosamente. Si ocurre un error, la conexión se cancelará.

    Instale bridge-utils:

    apt-get instalar bridge-utils

    a) configuración de red en versiones anteriores de Ubuntu (/etc/network/interfaces).

    Abra el archivo de configuración para configurar las interfaces de red:

    vi /etc/red/interfaces

    Y pongámoslo de esta forma:

    #iface eth0 inet estático
    # dirección 192.168.1.24
    # máscara de red 255.255.255.0
    #puerta de enlace 192.168.1.1
    # servidores de nombres dns 192.168.1.1 192.168.1.2

    Auto br0
    iface br0 inet estático
    dirección 192.168.1.24
    máscara de red 255.255.255.0
    puerta de enlace 192.168.1.1
    servidores de nombres dns 192.168.1.1 192.168.1.2
    puente_ports eth0
    puente_fd 9
    puente_hola 2
    puente_maxage 12
    puente_stp apagado

    * donde todo lo que está comentado es la configuración antigua de mi red; br0— nombre de la interfaz del puente creado; eth0— una interfaz de red existente a través de la cual funcionará el puente.

    Reinicie el servicio de red:

    systemctl reiniciar redes

    b) configurar una red en nuevas versiones de Ubuntu (netplan).

    vi /etc/netplan/01-netcfg.yaml

    * dependiendo de la versión del sistema, archivo de configuración yaml puede tener un nombre diferente.

    Vamos a darle forma:

    red:
    versión 2
    renderizador: en red
    Ethernet:
    eth0:
    dhcp4: falso
    dhcp6: falso
    wakeonlan: cierto

    Puentes:
    hermano0:
    dirección maca: 2c:6d:45:c3:55:a7
    interfaces:
    -eth0
    direcciones:
    - 192.168.1.24/24
    puerta de enlace 4: 192.168.1.1
    mtu: 1500
    servidores de nombres:
    direcciones:
    - 192.168.1.1
    - 192.168.1.2
    parámetros:
    paso: verdadero
    retardo de avance: 4
    dhcp4: falso
    dhcp6: falso

    * en este ejemplo estamos creando una interfaz de puente virtual br0; Usamos como interfaz física. eth0.

    Aplicar configuración de red:

    Insistimos en redirigir el tráfico de red (para que las máquinas virtuales con interfaz de red NAT puedan acceder a Internet):

    vi /etc/sysctl.d/99-sysctl.conf

    Añade la línea:

    net.ipv4.ip_forward=1

    Aplicar la configuración:

    sysctl -p /etc/sysctl.d/99-sysctl.conf

    Creando una máquina virtual

    Para crear la primera máquina virtual, ingrese el siguiente comando:

    virt-instalación -n VM1\
    --autoencendido\
    --noautoconsola\
    --red=puente:br0 \
    --ram 2048 --arch=x86_64 \
    --vcpus=2 --cpu host --check-cpu \
    --ruta del disco=/kvm/vhdd/VM1-disk1.img,tamaño=16 \
    --cdrom /kvm/iso/ubuntu-18.04.3-server-amd64.iso \
    --graphics vnc,escuchar=0.0.0.0,contraseña=vnc_contraseña\
    --os-type linux --os-variant=ubuntu18.04 --boot cdrom,hd,menu=on

    • VM1 - el nombre de la máquina que se está creando;
    • autoencendido - permitir que la máquina virtual se inicie automáticamente junto con el servidor KVM;
    • noautoconsola— no se conecta a la consola de la máquina virtual;
    • red - tipo de red. En este ejemplo, estamos creando una máquina virtual con una interfaz de "puente de red". Para crear una interfaz interna con tipo NAT, ingrese --red=predeterminado,modelo=virtio;
    • RAM - cantidad de RAM;
    • vcpus— número de procesadores virtuales;
    • disco - disco virtual: camino - ruta al disco; tamaño - su volumen;
    • CD ROM - unidad virtual con una imagen del sistema;
    • gráficos parámetros para conectarse a una máquina virtual usando una consola gráfica (en este ejemplo usamos vnc); escuchar - en qué dirección se reciben las solicitudes vnc (en nuestro ejemplo, todas); contraseña - contraseña para conectarse usando vnc;
    • variante os— sistema operativo invitado (recibimos la lista completa con el comando sistema operativo osinfo-query, en este ejemplo instalamos Ubuntu 18.04).

    Conexión a una máquina virtual

    En la computadora desde la que planeamos trabajar con máquinas virtuales, descargue un cliente VNC, por ejemplo, TightVNC e instálelo.

    En el servidor ingresamos:

    virsh vncdisplay VM1

    el comando mostrará en qué puerto se está ejecutando VNC para la máquina VM1. Yo he tenido:

    * :1 significa que necesitas sumar 1 a 5900 - 5900 + 1 = 5901.

    Inicie TightVNC Viewer, que instalamos e ingrese los datos de conexión:

    Haga clic en Conectar. Cuando se le solicite una contraseña, ingrese la que especificó al crear la VM ( contraseña_vnc). Nos conectaremos a la máquina virtual mediante una consola remota.

    Si no recordamos la contraseña, abrimos la configuración de la máquina virtual con el comando:

    Y encontramos la línea:



    * en este ejemplo, se utiliza una contraseña para acceder a la máquina virtual 12345678 .

    Administrar una máquina virtual desde la línea de comando

    Ejemplos de comandos que pueden resultar útiles al trabajar con máquinas virtuales.

    1. Obtenga una lista de máquinas creadas:

    lista virsh --todos

    2. Habilite la máquina virtual:

    virsh iniciar nombreVM

    * Dónde nombre de máquina virtual— el nombre de la máquina creada.

    3. Apague la máquina virtual:

    ubuntu-vm-builder es un paquete desarrollado por Canonical para facilitar la creación de nuevas máquinas virtuales.

    Para instalarlo ingresa:

    apt-get instalar ubuntu-vm-builder