Contactos

Instalación de Linux Mint KVM Ubuntu. Hipervisor de goma. Utilizamos grupos lógicos para virtualizar QMU-KVM en Linux. Configuración manual del puente

En Ubuntu, se recomienda usar una biblioteca de Hypervisor (Administrador de máquinas virtuales) y Libvirt como un kit de herramientas de administración. Libvirt incluye un conjunto de aplicaciones de API de software y administración de usuarios. maquinas virtuales (VM) VirT-Manager (Interfaz gráfica, GUI) o VIRSH ( línea de comando, Cli). Gestores alternativos, puede usar Convcrird (GUI) o Convierte (Interfaz Web).

Actualmente, solo KVM Hypervisor está oficialmente respaldado en Ubuntu. Este hipervisor forma parte del código principal de operación. sistemas de linux. A diferencia de Xen, KVM no es compatible con la hemitualización, es decir, para usarla, su CPU debe mantener la tecnología VT. Puede verificar si su procesador admite esta tecnología ejecutando el comando en el terminal:

Si el resultado fue un mensaje:

Información: / dev / kvm existe la aceleración de KVM se puede utilizar

así que KVM trabajará sin problemas.

Si recibió un mensaje en la salida:

Su CPU no admite las extensiones KVM, la aceleración KVM no se puede utilizar

todavía puede usar una máquina virtual, pero funcionará mucho más lento.

    Instalar como sistemas invitados de 64 bits.

    Asignar a los sistemas de invitados más de 2 GB de RAM

Instalación

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Esta es una instalación en el servidor sin XS, es decir, no incluye una interfaz gráfica. Instalarlo se puede mandar

Sudo apt-get install vtr-manager

Después de eso, el menú aparecerá "Administrador de máquinas virtuales" y, con mucha probabilidad, todo funcionará. Si aún surge algún problema, deberá leer las instrucciones en Wiki de habla inglesa.

Creando un sistema de invitados

El procedimiento para crear un sistema de invitados con interfaz gráfica bastante sencillo.

Pero el modo de texto se puede describir.

qcow2.

Al crear un sistema utilizando una interfaz gráfica como disco duro Se propone seleccionar una imagen de archivos o dispositivo de bloques existente, o crear un nuevo archivo con datos RAW (RAW). Sin embargo, este no es el único formato de archivo disponible. De todos los tipos de discos enumerados en el hombre QMU-IMG, QCow2 es el más flexible y moderno. Admite instantáneas, cifrado y compresión. Debe crearse antes de crear un nuevo sistema de invitados.

QEMU-IMG cree -o prealización \u003d metadatos -f qcow2 qcow2.img 20g

Según el mismo hombre QMU-IMG, los metadatos de pre-colocación (-ory \u003d metadatos) hacen que el disco inicialmente sea un poco más, pero proporciona mejor interpretación En esos momentos en que la imagen necesita crecer. De hecho, en este caso, esta opción evita un error desagradable. La imagen creada inicialmente toma menos de megabytes del lugar y aumenta al tamaño especificado según sea necesario. El sistema de invitados debe ver inmediatamente esta final especificadoSin embargo, en la etapa de instalación, puede ver el tamaño del archivo real. Naturalmente, instalado en hdd Se rechazará 200 KB. El error no es específico para Ubuntu, se manifiesta en RHEL, como mínimo.

Además del tipo de imagen, posteriormente puede seleccionar el método para conectarlo, IDE, SCSI o Virtio Disk. Esta elección dependerá del rendimiento del subsistema de disco. No existe definitivamente la respuesta correcta, debe elegir entre la tarea que se le asignará al sistema de invitados. Si un sistema de invitados Creado "para ver", entonces de cualquier manera bajará. En general, generalmente es la E / S es un cuello de botella de una máquina virtual, por lo que al crear un sistema de alta carga a esta pregunta, debe tomar lo más responsable posible.

Estoy escribiendo esta nota para demostrar instalación paso a paso y configurando una máquina virtual en Linux basada en KVM. Anteriormente, ya escribí sobre la virtualización, donde usé maravilloso.

Ahora delante de mí el tema del alquiler de un buen servidor con un gran volumen. memoria de acceso aleatorio y un disco duro voluminoso. Pero no quiero proyectos directamente en la máquina host, por lo que los distinguiré en algunos servidores virtuales pequeños con Linux OS o Docker-contenedores (le diré sobre otro artículo).

Todos los trabajos de alojamiento de la nube moderna en el mismo principio, es decir,. Escunte en buena glándula plantea un grupo servidores virtualesQue solíamos llamar a VPS / VDS, y los distribuye a los usuarios, o automatiza este proceso (Hello, DIGITALOCEAN).

Kvm (máquina virtual basada en el kernel) es software Para Linux, utilizando el hardware del procesador compatible con X86 para trabajar con la tecnología de virtualización Intel VT / AMD SVM.

Instalación de KVM

Todas las maquinaciones para crear una máquina virtual gastaré en Ubuntu OS 16.04.1 LTS. Para verificar si sus procesos son virtualización de hardware en base de datos Intel VT / AMD SVM, realice:

GREP -E "(VMX | SVM)" / proc / cpuinfo

Si el terminal no está vacío, entonces todo está en orden y KVM se puede instalar. Ubuntu apoya oficialmente solo a KVM Hypervisor (incluido en el kernel de Linux) y aconseja usar la biblioteca de Libvirt como una herramienta para administrarlos, lo que haremos a continuación.

También puede verificar el soporte para la virtualización de hardware en Ubuntu también a través del comando:

En caso de éxito, verás algo como esto:

Información: / dev / kvm existe la aceleración de KVM se puede utilizar

Instale paquetes para trabajar con KVM:

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Si tiene acceso a la carcasa de gráficos del sistema, puede instalar el administrador de GUI LIBVVIRT:

Sudo apt-get install vtr-manager

Simplemente puede usar Virt-Manager (no más difícil que VirtualBox), por lo que esta nota se discutirá sobre la versión de la consola de la instalación y configuración del servidor virtual.

Instalación y configuración de un servidor virtual.

En la versión de la consola de la instalación, la configuración y el control del sistema, una herramienta indispensable es la utilidad virsh la utilidad (complemento anterior de Libvirt Library). Ella tiene un gran número de Opciones y parámetros, descripción detallada Puedes conseguir así:

Hombre virsh

o llame a la "ayuda" estándar:

Ayuda de Virsh.

Siempre me adherí las siguientes reglas al trabajar con servidores virtuales:

  1. Stranu imágenes de ISO OS en el catálogo / var / lib / libvirt / boot
  2. Tienda de imágenes de máquinas virtuales en catálogo / var / lib / libvirt / imágenes
  3. Claramente, le pregunto a cada nueva máquina virtual su dirección IP estática a través del servidor DHCP del hipervisor.

Continuaremos para instalar el primer arte virtual (64 bits Server Ubunt 16.04 LTS):

CD / VAR / LIB / libvirt / bootudo sudo wget http://releseses.ubuntu.com/16.04/ubuntu-16.04.1-desktop-amd64.iso

Al descargar la imagen Ejecutar la instalación:

Sudo virt-install \\ --virt-type \u003d kvm \\ --name ubuntu1604 \\ --ram 1024 \\ --vcpus \u003d 1 \\ --os-variant \u003d ubuntu16.04 \\ --hvm \\ --cdrom \u003d / var / Lib / libvirt / boot / Ubuntu-16.04.1-Server-AMD64.ISO \\ --Network Network \u003d Predeterminado, Modelo \u003d Virtio \\ - / Preaquial VNC \\ --DISK \u003d / VAR / LIB / LIBVIRT / IMÁGENES / UBUNTU1604. Img, tamaño \u003d 20, bus \u003d virtio

Transfiriendo todos estos parámetros al "lenguaje humano", resulta que creamos una máquina virtual con Ubuntu OS 16.04, 1024 MB de RAM, 1 procesador, tarjeta de red estándar (la máquina virtual irá a Internet como debido a NAT) , 20 HDD GB.

Vale la pena prestar atención al parámetro. --os-variante, indica un hipervisor a qué sistema operativo debe adaptar la configuración.
La lista de opciones de OS disponibles se puede obtener ejecutando el comando:

Osinfo-Query OS

Si esta utilidad no está en su sistema, configuró:

Sudo apt-get install libosinfo-bin

Después de iniciar la instalación, esta inscripción aparecerá en la consola:

Instalación de dominio aún en progreso. Puede volver a conectarse a la consola para completar el proceso de instalación.

Esta es una situación normal, continuaremos instalando a través de VNC.
Miramos qué puerto se levantó de nuestro arte virtual (en la siguiente terminal, por ejemplo):

Virsh dumpxml ubuntu1604 ... ...

Port 5900, en la dirección local 127.0.0.1. Para conectarse a VNC, debe usar el reenvío de puertos a través de SSH. Antes de hacer esto, asegúrese de que se permita el reenvío de TCP del demonio SSH. Para hacer esto, vamos a la configuración de SSHD:

Gato / etc / ssh / sshd_config | Grep permitidotcpforwarding

Si nada ha encontrado o ves:

No.

Luego los derechos de configuración en

Permitirtcpforwarding sí

y reiniciar SSHD.

Configuración del reenvío de puertos

Llevamos a cabo el comando en la máquina local:

Ssh -fn -l login -l 127.0.0.1:5900:Localhost :900 Server_IP

Aquí configuramos el reenvío de puertos SSH desde el puerto local de 5900 al puerto de 5900 Server. Ahora ya puede conectarse a la VNC utilizando cualquier cliente VNC. Prefiero UltraVNC debido a la simplicidad y la conveniencia.

Después de una conexión exitosa, aparecerá la ventana Estándar Ubuntu Inicie bienvenida en la pantalla:

Después de completar la instalación y el reinicio habitual, aparecerá la ventana de inicio de sesión. Autorizado, definí la dirección IP de los virtuales recién prominentes para luego hacerlo estático:

Ifconfig

Recordamos y vamos al auto anfitrión. Tire de la dirección MAC "red" tarjetas virtuales:

Virsh dumpxml ubuntu1604 | Grep "Mac Dirección"

Recordamos nuestra dirección MAC:

Editar configuración de red Hipervisor:

Sudo virsh net-edit predeterminado

Estamos buscando DHCP, y lo agregamos:

Debería resultar algo como esto:

Para que la configuración tenga efecto, debe reiniciar el servidor DHCP del hipervisor:

Sudo virsh net-destruir predeterminado sudo virsh net-start predeterminado sudo servicio libvirt-bin reiniciar

Después de eso, sobrecargue la máquina virtual, ahora siempre tendrá la dirección IP que se le proporcionó: 192.168.122.131.

Hay otras formas de establecer una IP estática virtual, por ejemplo, editar directamente la configuración de la red dentro del sistema de invitados, pero aquí ya que su alma estará satisfecha. Solo mostré una opción que yo mismo prefiero usar.

Para conectarse al terminal de la máquina virtual, realice:

Ssh 192.168.122.131

El coche está listo para la batalla.

Virsh: lista de equipos

Para ver la lanzamiento hosts virtuales (Todos los disponibles se pueden obtener agregando -Todos):

Lista de sudo virsh.

Recargar El host puede ser:

Sudo virsh reinicio $ vm_name

Detener la máquina virtual:

Sudo Virsh Stop $ VM_NAME

Correr detener:

Sudo virsh destroy $ vm_name

Sudo virsh comienza $ vm_name

Desconexión:

Sudo Virsh apagado $ VM_NAME

Añadir a Autorun:

Sudo virsh autostart $ vm_name

A menudo es necesario bloquear el sistema que lo use en el futuro como marco para otro sistema operativo virtual, para este uso la utilidad de Virt-Clone.

Virt-Clone --Help

Clones del virtual existente y cambia los datos sensibles al huésped, por ejemplo, la dirección MAC. Las contraseñas, archivos y otra información específica del usuario en el clon siguen siendo los mismos. Si la dirección IP se ha registrado en la virtual de IP clonada, entonces los problemas pueden surgir con el acceso a SSH a un clon debido al conflicto (2 hosts con la misma IP).

Además de instalar virtuales a través de VNC, también es posible una opción con X11Fordening a través de la utilidad de VirT-Manager. En Windows, por ejemplo, puedes usar Xming and Putty.

En este artículo introductorio, diré brevemente sobre todos. softwareUtilizado en el proceso de desarrollo. En más detalle se dirán a ellos en los siguientes artículos.

¿Por qué? Esto sistema operativo Estoy cerca y comprensible, por lo que al elegir un flib de tormento, tormentos y miniaturas no fueron probados. No tiene ventajas especiales para Red Hat Enterprise Linux, pero se decidió trabajar con un sistema familiar.

Si planea implementar de forma independiente la infraestructura utilizando tecnologías similares, le aconsejaría que tome RHEL: Gracias a la buena documentación y bien escrito programas aplicados Será, si no es un orden de magnitud, entonces exactamente dos veces más fácilmente, y gracias al sistema de certificación desarrollado sin mucha dificultad, será posible encontrar un cierto número de especialistas, en el nivel adecuado de conocidos en este sistema operativo.

Nosotros, yo repito, decidimos usar. Apriete con un conjunto de paquetes de Sid / experimental y algunos paquetes, jalados y recogidos con nuestros parches.
Los planes tienen un repositorio de publicación con paquetes.

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

Además, el hecho de la presencia de una gran cantidad de desarrolladores, hosters, soluciones comerciales se realizó sobre la base de Xen, más interesante fue tomar una decisión con precisión en la base de datos KVM.

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

Para gestionar las máquinas virtuales, resultó ser extremadamente conveniente y productos usando su API: virsh, gerente virtual., virt-Install, etc.

Este es un sistema que almacena la configuración de las máquinas virtuales, las controla, las estadísticas de los cables en ellas garantiza que al iniciar la máquina virtual, la interfaz aumenta, conecta los dispositivos a la máquina, en general, realiza un montón de trabajo útil y un poco más.

Por supuesto, la solución no es perfecta. De las minusas deben ser llamadas:

  • Mensajes de error absolutamente invalables.
  • La incapacidad de cambiar la parte de la configuración de la máquina virtual sobre la marcha, aunque QMP (Protocolo de monitor de QMU) está bastante permitido.
  • A veces es imposible conectarse a Libvirtd para una razón incomprensible, deja de responder a eventos externos.

El principal problema en la implementación del servicio al principio fue la limitación de los recursos para máquinas virtuales. En Xen, este problema se resolvió con la ayuda de un charleter interno que distribuye recursos entre máquinas virtuales, y lo que es la más bella, la oportunidad de limitar y operaciones de disco incluso.

En KVM, nada ha sucedido antes de que aparezca el mecanismo de distribución de recursos nucleares. Como de costumbre en Linux, se implementó el acceso a estas funciones a través de un sistema de archivos especial. cgroup.en el que podría agregar el proceso al grupo utilizando llamadas de sistema convencionales al grupo, asigne su peso en loros, especifique el kernel en el que funcionará, especifique rendimiento El disco que este proceso puede usar, o, nuevamente, asignarle el peso.

El beneficio es que todo esto se implementa dentro del kernel, y es posible usar esto no solo para el servidor, sino también para el escritorio (como se usa en 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 su # 12309 favorito, en lugar de agrupar el siguiente sistema de archivos. Bueno, excepto Pohmelfs (pero puramente debido al nombre).

La actitud hacia esta biblioteca-utilidad que tengo bastante ambigua.

Por un lado se ve así:

Y esta cosa es maldita sea difícil recolectar de la fuente y cuanto más en el paquete: a veces me parece que Linux desde cero se acumula desde cero algo más fácil.

Por otro lado, una cosa muy poderosa que le permite crear imágenes para máquinas virtuales, modificarlas, escalar, para colocar a GRUB, modificar la tabla de particiones, administrar archivos de configuración, transferir las máquinas de "hierro" al entorno virtual, transferir virtual Máquinas de una imagen a otra para transferir máquinas virtuales de una imagen a la plancha y, honestamente, aquí falla la fantasía. Oh, sí: todavía puedes correr el demonio dentro de la virtual linux Cars Y el acceso a los datos de la máquina virtual está en vivo, y hágalo todo en Shell, Python, Perl, Java, Ocaml. Esta es una lista breve y no completa de lo que se puede hacer.

Curiosamente, la mayor parte del Código B se genera en el momento del ensamblaje, así como la documentación del proyecto. OCAML, PERL es muy utilizado. El código en sí está escrito en C, que luego se convierte en OCAML, y se genera piezas de código repetidas. Trabajar con imágenes se lleva a cabo ejecutando una imagen de servicio especial (Supliance Supermin), en el que se envían los comandos a través del canal dentro de él. Dentro de esta imagen contiene algunos rescates un conjunto de servicios públicos, como separados, MKF y otro administrador de sistemas útiles.

Con recientemente, incluso comencé a usarlo en casa cuando me fundí de la imagen de Nandroid, necesitaba los datos. Pero esto requiere el kernel con soporte para las yffs.

Otro

A continuación se muestran algunas referencias más interesantes a la descripción de las tarjetas usadas, lea y discute, si es interesante. Por ejemplo,

Anteriormente ya escribí sobre la instalación. Qemu-kvm. en Debian.. Pero, en mi opinión, la información resultó ser incompleta. Además, no consideré algunos matices. Por lo tanto, llamo a su atención un artículo actualizado sobre la instalación de la máquina virtual QEMU-KVM. Antiguo artículo, naturalmente, eliminado.

Creo que explicar lo que es máquina virtual, no vale la pena. Probablemente lo sepa (si lees este artículo). Si no - . Partimizaremos directamente en Sabget. Qemu-kvm. - Este es un proyecto para combinar dos tecnologías de virtualización notables (en mi opinión). QEMU. - Este es un tipo de emulador informático, que admite las grandes arquitecturas de hardware. Puede ejecutar casi cualquier sistema operativo para cualquier dispositivo (por ejemplo, lanzé versiones anteriores. Mac OS X.que para PowerPC.). La desventaja de QEMU es su lentitud debido a la falta de una aceleración de enfoque. Y luego otro proyecto llega al rescate Kvm. . O máquina virtual kernel. KVM es una tecnología de kernel de Linux que le permite proporcionar una aceleración de hardware con una virtualización completa. La desventaja de KVM es el apoyo de solo la arquitectura X86.

¿Por qué QMU-KVM? Para Linux, este es el proyecto de virtualización más recomendado. Funciona más rápido que Virtualbox. y VMware Player. (De acuerdo con mis pruebas), KVM es una tecnología nativa de Linux. Además, si eres un buen dueño. equipo de juegos Con dos tarjetas de video, puedes instalar en Qemu-KVM. Ventanas, nos dividimos en una de las tarjetas de video y nos olvidamos del reinicio a otro sistema operativo. Quería jugar: lanzó un virtual con Windows and Play. El rendimiento será del 95% del rendimiento instalado en la "hierro" de Windows. Pero es simplemente magnífico, en mi opinión. Voy a escribir un artículo separado al respecto. Será interesante:)

Ahora describiré el plan de nuestras acciones. Primero, llevaré a cabo la instalación en el ejemplo. Debian 8.2 Gnome 64 bitAunque no habrá diferencias especiales en otros entornos gráficos. En segundo lugar, describiré el trabajo con KVM solo en modo gráfico (no lo pondremos en el servidor). Por lo tanto, no hay terminales, scripts, etc., como generalmente vienen en caso de virtualización del servidor. En tercer lugar, le aconsejo que lea además la documentación de QEMU y KVM (Link Link al final del artículo). Es muy útil para usted si desea un máximo de usar todo el potencial de este paquete. Bueno, bueno, el plan de nuestras acciones es claro. Ahora las acciones de los pasos:

  • instalación QEMU-KVM;
  • instalación de un gerente de gráficos y utilidades adicionales;
  • configurando el puente de la red;
  • creando un almacenamiento para máquinas virtuales;
  • instalación de un sistema de invitados.
Para empezar, verifique si su computadora admite la virtualización de hardware. Para hacer esto, en el terminal realiza el comando:

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

En la salida del equipo debe estar presente, ya sea vmxya sea svm.. Si no hay, si la virtualización está habilitada en el BIOS (busque artículos Intel vt-i o similar para AMD.). Si no hay nada, significa que no es suerte.

Instale los componentes requeridos:

sUDO APT Instale Qemu-KVM Bridge-Utils Libvirt-bin Virt-Manager

Nos agregamos al Grupo Libvirt:

sudo adduser $ usuario libvirt

Ahora establezca la red. Para que todos los automóviles vértice vayan a la red y se comuniquen entre sí, debe crear un puente de red y tarjetas de red virtuales para cada virtual ( toque Dispositivos). Dado que instalaremos máquinas virtuales de la interfaz gráfica, entonces no necesita crear un toque manualmente. Virt Manager. Hazlo para nosotros cada vez que empieces. Solo necesitamos configurar el puente. Para empezar, encienda el enrutamiento en el kernel:

sudo nano /etc/sysctl.conf.

Estamos buscando una cadena net.ipv4_forward \u003d 0 y cambie su valor para 1 . Guarda y:

sudo sysctl -p.

A continuación, asumiré lo siguiente: 1) En su computadora hay una tarjeta de red que recibe la dirección IP del enrutador. 2) Usted va en línea a través de un módem 3G, y su tarjeta de red es gratuita. Esta opción sugiere más hecha a mano, pero se ha comprobado repetidamente (en uno de los autos en sí). Entonces, abre el archivo de las interfaces:

sudo nano / etc / red / interfaces

El contenido predeterminado es:



auto lo.
ifeace lo inet loopback

Cambia sus contenidos. Para la primera opción:

fuente /etc/network/interfaces.d/*

# La interfaz de red loopback
auto lo.
ifeace lo inet loopback

Auto eth0.
iFace eth0 inet manual

AUTO BR0.
iFACE BR0 INET estático
dirección 192.168.0.2.
gateway 192.168.0.1
netmask 255.255.255.0.
red 192.168.0.0.
transmisión de 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
auto lo.
ifeace lo inet loopback

Auto PPP0.
iFACE PPP0 INET WVDIAL

Auto eth0.
iFace eth0 inet manual

AUTO BR0.
iFACE BR0 INET estático
dirección 192.168.0.2.
gateway 192.168.0.1
netmask 255.255.255.0.
red 192.168.0.0.
transmisión de 192.168.0.255
Puente_ports eth0.
puente_stp apagado.
Puente_maxwait 0.
Puente_fd 0.
up Route del Predeterminado BR0

Nota: Si no necesita conectar automáticamente el Internet a través del módem después del inicio del sistema, retire la línea AUTO PPP0 de la configuración
iFACE PPP0 INET WVDIAL. De lo contrario, asegúrese de que al iniciar el sistema, el módem se inserta en el puerto USB.

Nosotros salvamos. Ahora, para una opción con un módem, debe instalar el programa de marcación wvdial:

sudo apt instalar wvdial

CONFIG CORRECT (NOTA: El módem 3G se usa como ejemplo Línea recta.. Ejemplos de configs para otros módems que puede encontrar fácilmente en Internet):

sudo nano /etc/wvdial.conf.


Init1 \u003d atz.
Init2 \u003d atq0 v1 e1 s0 \u003d 0 & c1 & d2 + fclass \u003d 0
Init3 \u003d at + cgdcont \u003d 1, "ip", "home.beeline.ru"
Modo estúpido \u003d 1
Isdn \u003d 0.
Tipo de módem \u003d Módem USB
Nuevo pppd \u003d si
Teléfono \u003d * 99 #
Módem \u003d / dev / ttyacm0
Nombre de usuario \u003d Beeline.
Contraseña \u003d beeline
Baud \u003d 9600.
País \u003d Rusia.
Auto reconectado \u003d en
Auto DNS \u003d OFF
Segundos de espera \u003d 0

Nosotros salvamos. Ahora, el módem se encenderá inmediatamente después de cargar el sistema. La cadena BR0 ROUTE UP UP ROUTE elimina la ruta predeterminada a través del puente. Si esto no se hace, no podrá conectarse con Internet, ya que el tráfico irá al puente, y no a través de un módem 3G.

Última etapa tenemos que decir pared lejosPara que se perdió el tráfico de nuestro virtual y de regreso a la red. Para hacer esto, puede ir de dos maneras: escriba un script con múltiples reglas para iptablesque se ejecutará junto con el sistema, o ingresará estas reglas manualmente y guardarlas. Aproveché la primera opción. Para el segundo necesitará instalar el paquete. iptables-persistente Y simplemente ingrese alternativamente las reglas (usando sudo). Entonces. Cree un script (en cualquier editor de texto). Inserte los siguientes contenidos allí:

#! / bin / sh

# Defina la interfaz de salida para la cual se aplicará el reemplazo de la dirección (NAT)
iPTables -v -t NAT -A POSTROUTING -O PPP0 -J MASQUERADE

# Enviamos todos los paquetes que vinieron al módem de la red global (0.0.0.0/0) a la red de área local (192.168.0.0/24)
iPTables -v -A Forward -I PPP0 -O BR0 -s 0.0.0.0/0 -D 192.168.0.0/24 -J Aceptar

# Enviamos todos los paquetes que vienen de red local (192.168.0.0/24) al global (0.0.0.0/0)
iPTables -v -A Forward -I BR0 -O PPP0 -S 192.168.0.0/224 -D 0.0.0.0/0 -J Aceptar

Mantenerlo como gateway.Sh. y dar derechos para ejecutar (o en las propiedades del archivo, o en el comando terminal chmod + x gateway.sh). Ahora puede ejecutarlo manualmente, después de que el sistema haya sido cargado, o agregue a AutoLoad. Para hacer esto, mueva el script en ~ / .config / autostart (en administrador de archivos Encender el show archivos ocultosy verás el catálogo .config en el directorio de inicio).

Ahora todo está listo para instalar una máquina virtual. En el menú de la aplicación, ejecute VirT Manager (Administrador de máquinas virtuales):

Haga clic derecho en la línea localhost. y elige Detalles. Ir a la pestaña Almacenamiento. Necesitamos especificar un directorio (o sección de disco / disco) para almacenar máquinas virtuales.

En la esquina inferior izquierda, haga clic en el signo más ( Agregar pulido), Especifico el tipo de repositorio y la ruta a ella.

En la pestaña Interfaces de redPuedes comprobar si todo funciona.

Ahora haz clic Archivo - nueva máquina virtual. Especifique la ruta a la imagen del disco, el tipo de máquina virtual. A continuación, especifique el número de RAM para ella y el número de núcleos de procesador. A continuación, especifique nuestro almacenamiento y haga clic en Nuevo volumen . Indique el nombre, el tipo se deja. qcow2.y tamaño. Será un disco duro virtual. Si planea instalar un sistema con una cáscara gráfica y un montón de programas, dar más lugares (GIGS 50). En la última pestaña, ponga una garrapata en Cambiar la configuración antes de comenzarCompruebe que como dispositivo de red Nuestro puente está seleccionado, escriba cualquier nombre para virtuales y haga clic en Completo. Abrirá la ventana Parámetros de esta máquina virtual.





Ir a la pestaña UPCy poner una garrapata en Copie la configuración del procesador del sistema Host.

Junto a la pestaña Neto (Siguiente), y también especifique vitio.. En la pestaña Monitor Especificar Especia.y en la pestaña Video - Qxl.. Por lo general, este paquete proporciona productividad máxima Recluta gráficos, pero si lo desea, puede experimentar. Tenga en cuenta que para los huéspedes sistemas de WindowsSe requieren los controladores QXL (en Windows en sí).


Ahora, cuando todo esté listo, a la izquierda. esquina superior Hacer clic Iniciar instalación. Y ponemos el sistema como de costumbre, con una excepción: tan pronto como el instalador comience automáticamente a ajustar la red, haga clic en Cancelary seleccione Configurar una red manualmente. Especifique la dirección IP deseada para virtuales (en nuestro caso 192.168.0.3 ), máscara de subred ( 255.255.255.0 ), la puerta de enlace (la puerta de enlace será la dirección del host, como 192.168.0.2 ) y el servidor DNS (aquí solo ingresa a Google 8.8.8.8 ). Y eso es. A continuación no hagas nada. Ponga el sistema y configure. En general, todo. Las acciones descritas son la forma de reemplazar, digamos, VirtualBox en más mejor alternativa. Después de leer la documentación, entenderá lo amplia de las posibilidades de QEMU-KVM. Intencionalmente no describí aquí los parámetros y métodos de consola adicionales para iniciar máquinas virtuales a través del terminal, ya que no siempre se necesita en una máquina para el hogar. Escribiré sobre este artículo separado, al configurar un servidor multifuncional en el hogar (que también puede actuar como un servidor de máquinas virtuales). Para aquellos que, por alguna razón, no entendieron lo que se escribió, o se mantuvo en momentos incomprensibles, propongo ver el video, en el que no lo describiré, pero le mostraré cómo todo es bueno y sintonizar. Si tiene alguna sugerencia o adiciones al artículo, escriba en los comentarios.

Comprobando el soporte para el hipervisor

Compruebe que el servidor admite tecnologías de virtualización:

cAT / PROC / CPUINFO | EGREP "(VMX | SVM)"

En respuesta, deberías conseguir algo así:

banderas: FPU VME DE PSE TSC MSR MTRR PGE MCA CMOV PAT PSE36 CLFLUSH DTS ACPI MMX FXSR SSE SSE2 SS HT TM PBE SSCALL NX PDPE1GB RDTSCP LM CONSTANT_TSC ARCH_PERFMON PEBS BTS REP_TOOD NOPL XTOPOLOGY NONSTOP_TSC APERFMPERF PNI PCLMULQUQ DTES64 MONITOR DS_CPL VMX SMX EST TM2 SSSE3 CX16 XTPR PDCM PCID DCA SSE4_1 SSE4_2 POMCNT AES LAHF_LM EPB TPR_SHADOW VNMI FLEXPRIORITY EPT VPID DTHERM IDA ARAT

De lo contrario, vamos al BIOS, encontramos la opción de habilitar la tecnología de virtualización (tiene nombres diferentes, por ejemplo, la tecnología de virtualización de Intel o la virtualización) y enciéndalo: configure el valor Permitir.

También comprobar la compatibilidad por el comando:

* Si el comando devuelve el error "KVM-OK comando no encontrado"Instale el paquete apropiado: apt-Get Instale CPU-Checker.

Si vemos:

Información: / dev / kvm existe
Se puede utilizar la aceleración de KVM.

así que el apoyo del hardware está ahí.

Preparando servidor

Para nuestra conveniencia, cree un directorio en el que almacenaremos datos para KVM:

mKDIR -P / KVM / (VHDD, ISO)

* Se creará dos catálogos: / Kvm / vhdd (para discos duros virtuales) y / Kvm / iso (para imágenes ISO).

Personalizar tiempo:

\\ CP / USR / Compartir / ZoneInfo / Europa / Moscú / etc / Localtime

* Este comando establece la zona según la hora de Moscú.

ntpdate ru.pool.nttp.org.

* Realizar la sincronización del tiempo.

Instalación y inicio

Instale KVM y las utilidades de administración necesarias.

a) ubuntu a la versión 18.10

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

b) Ubuntu después de 18.10:

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

* dónde qemu-kvm. - hipervisor; libvirt-bin. - Biblioteca de gestión de hipervisor; virtinst. - Utilidad virtual de gestión de máquinas; libosinfo-bin. - Utilidad para ver la lista de opciones para sistemas operativos que pueden ser como invitado.

Personalizar arranque automático Servicio:

systemCTL Habilitar libvirtd.

Iniciar Libvirtd:

systemctl iniciar libvirtd.

Configuración de la red

Las máquinas virtuales pueden funcionar para NAT (que sirve como servidor KVM) o recibir direcciones IP de la red local, para esto, debe configurar el Puente de la red. Estableceremos el último.

Utilizando conección remotaCompruebe la configuración con cuidado. En caso de error, la conexión será interrumpida.

Instale Bridge-Utils:

apt-get install bridge-utils

a) Configuración de la red en las versiones anteriores de Ubuntu (/ etc / red / interfaces).

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

vI / etc / red / interfaces

Y lo damos a la mente:

#ETIACE ETH0 INET estático
# Dirección 192.168.1.24
# Netmask 255.255.255.0.
# Gateway 192.168.1.1
# DNS-NAMEservers 192.168.1.1 192.168.1.2

AUTO BR0.
IFACE BR0 INET estático
Dirección 192.168.1.24
Netmask 255.255.255.0.
Gateway 192.168.1.1
DNS-Nameservers 192.168.1.1 192.168.1.2
Puente_ports eth0.
Puente_fd 9.
Bridge_Hello 2.
Puente_maxage 12.
puente_stp apagado.

* Donde todo lo que comentó es la configuración antigua de mi red; bR0. - el nombre de la interfaz del puente generado; eth0. - Una interfaz de red existente a través del cual trabajará el puente.

Reinicie el servicio de red:

systemctl Reinicie la red.

b) Configuración de la 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 otro nombre.

Lo traemos a la mente:

la red:
Versión 2.
Render: NetworkD.
Etherferrets:
Eth0:
DHCP4: Falso.
Dhcp6: falso
WAKONONLAN: VERDADERO.

PAZADORES:
BR0:
MACAddress: 2C: 6D: 45: C3: 55: A7
Interfaces:
- eth0.
Direcciones:
- 192.168.1.24/24
Gateway4: 192.168.1.1
MTU: 1500.
Servidores de nombres:
Direcciones:
- 192.168.1.1
- 192.168.1.2
Parámetros:
STP: VERDADERO.
Retraso delantero: 4
DHCP4: Falso.
Dhcp6: falso

* en este ejemplo Creamos una interfaz de puente virtual. bR0.; Utilizamos como una interfaz física. eth0..

Aplique la configuración de red:

Insistimos en las redirecciones del tráfico de la red (para que las máquinas virtuales con la interfaz de la red NAT puedan conectarse en línea):

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

Añadir una cadena:

net.ipv4.ip_forward \u003d 1.

Aplicar configuraciones:

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

Creando una máquina virtual

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

vtr-install -n vm1 \\
--Autoencendido \\
--NoOutoconsole \\
--Network \u003d Bridge: Br0 \\
--ram 2048 -arch \u003d x86_64 \\
--Vcpus \u003d 2 - CPPU Host --Check-CPU \\
- Ruta de disco \u003d / KVM / VHDD / VM1-DISK1.IMG, TAMAÑO \u003d 16 \\
--cdrom /kvm/iso/ubuntu-18.04.3-server-amd64.iso \\
--graphics vnc, escuchar \u003d 0.0.0.0, contraseña \u003d vnc_password \\
--S-TIPO LINUX --OS-VARIANT \u003d UBUNTU18.04 --BOOT CDROM, HD, MENU \u003d ON

  • Vm1 - el nombre de la máquina que se está creando;
  • autoencendido - Permita que la máquina virtual se inicie automáticamente con el servidor KVM;
  • nOAUTOCONSOLE - no se conecta a la consola de la máquina virtual;
  • la red - Tipo de red. En este ejemplo, creamos una máquina virtual con una interfaz de tipo de puente de red. Para crear una interfaz interna con el tipo NAT introduce --Network \u003d Predeterminado, modelo \u003d virtio;
  • rAM - La cantidad de RAM;
  • vcpus - número de procesadores virtuales;
  • disco - disco virtual: camino - camino a disco; tamaño - su volumen;
  • cD ROM - Sistema de accionamiento virtual;
  • gráficos - Parámetros de conexión a una máquina virtual usando una consola gráfica (en este ejemplo, usamos VNC); escuchar - ¿Qué dirección acepta las solicitudes de VNC (en nuestro ejemplo en todos); contraseña - Contraseña para conectar con VNC;
  • variante OS - Sistema operativo invitado (toda la lista, recibimos un equipo. osinfo-Query OSEn este ejemplo, instale Ubuntu 18.04).

Conectar a una máquina virtual

En la computadora desde la cual planeamos trabajar con máquinas virtuales, descargue un cliente VNC, por ejemplo, TightVnc e instalelo.

Entramos en el servidor:

virsh vncdisplay vm1

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

*: 1 Entonces, debe agregar 1 - 5900 + 1 \u003d 5901 a 5900.

Ejecute el visor de TightVnc, que instalamos e ingresamos los datos para la conectividad:

Clic de PO Conectar.. Presentamos el nombre en la solicitud de contraseña al crear una VM, ( vnc_password.). Nos conectaremos a la consola remota de la máquina virtual.

Si no recordamos la contraseña, abra la configuración de la máquina virtual como un comando:

Y encuentra la cadena:



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

Gestión de la máquina virtual de la línea de comandos.

Ejemplos de comandos que pueden ser útiles cuando se trabaja con máquinas virtuales.

1. Obtenga una lista de máquinas creadas:

lista de virsh

2. Habilitar una máquina virtual:

virsh comienza a vmname.

* dónde Vmname - El nombre de la máquina que se está creando.

3. Apague la máquina virtual:

ubuntu-VM-Builder es un paquete desarrollado por Canonical para simplificar la creación de nuevas máquinas virtuales.

Para instalarlo, entramos:

apt-Get Instale Ubuntu-VM-Builder



¿Te gustó el artículo? Compártelo