Casa / Instrucciones / Gestión de kvm qemu vía web. Documentación en ruso sobre Ubuntu. Las soluciones recopilan formularios web para "KVM: ¿qué administración basada en web debo usar?"

Gestión de kvm qemu vía web. Documentación en ruso sobre Ubuntu. Las soluciones recopilan formularios web para "KVM: ¿qué administración basada en web debo usar?"

Con los conmutadores KVM ordinarios, creo, muchos se han encontrado. La abreviatura "KVM" significa "Keyboard Video Mouse". Un dispositivo KVM permite, teniendo un solo juego de teclado + monitor + ratón (K.M.M.), controlar varios ordenadores ( bloques del sistema). En otras palabras, tomamos N bloques del sistema, conectamos sus salidas desde K.M.M. al dispositivo KVM, y ya al propio dispositivo conectamos un monitor, teclado y mouse reales. Cambiando entre computadoras usando KVM, podemos ver lo que está sucediendo en la pantalla de la computadora seleccionada, así como controlarlo como si estuviéramos conectados a él directamente.

Esto es conveniente si necesitamos varias máquinas para trabajar, pero no es necesario acceder a ellas al mismo tiempo. Además, se ahorra mucho espacio: los monitores, incluso los de cristal líquido, ocupan bastante espacio en la mesa. Sí, y no cuestan mucho. Y en un montón de teclados y ratones sobre la mesa, puede confundirse rápidamente...

Los lectores avanzados se opondrán: ¿por qué tales dificultades si las computadoras probablemente están conectadas a una? red local y puede usar los programas integrados del sistema operativo (o externos) acceso remoto, como Terminal Services o Radmin en Windows, VNC, ssh en sistemas operativos tipo *nix. Todo es correcto, pero ¿qué debemos hacer si, por ejemplo, necesitamos ingresar al BIOS de la computadora o el sistema operativo ha dejado de cargar porque instalamos algún controlador o programa incorrecto? ¿O tenemos varios sistemas operativos instalados en la computadora y necesitamos elegir el incorrecto que se inicia por defecto? En general, todos estos programas son realmente buenos, pero hasta ciertos límites, siempre que el sistema operativo de la computadora esté operativo y solo necesitemos acceder a la computadora después de que se inicie este sistema operativo.

Por ejemplo, veamos algunos conmutadores KVM típicos utilizando el ejemplo de los dispositivos fabricados por la empresa.

Especificaciones del dispositivo

El CN-6000 admite la separación de poderes entre usuarios y permite crear hasta 64 cuentas administrativas o de usuario, de las cuales hasta 16 cuentas pueden trabajar simultáneamente con el dispositivo. El dispositivo tiene una interfaz WEB integrada para la administración y su pequeño tamaño permite colocarlo sobre una mesa o montarlo (utilizando un soporte especial incluido en el kit) en un armazón lateral de un bastidor (montable en bastidor 0U). CN-6000 admite la actualización del firmware a través de una conexión Ethernet (interfaz web o utilidad nativa). La resolución de video máxima admitida por el dispositivo es de 1600x1200 píxeles.

Cuadro resumen de especificaciones:

Requisito de hardware (cliente remoto)Pentium III 1Ghz
Interfacesconsola localTeclado1 × Mini-DIN-6 F (púrpura)
Video1 × HDB-15 F (Azul)
Ratón1 × HDB-15 F (verde)
Sistema (KVM)1 × SPHD-15F (amarillo)
Puerto LAN1 x RJ-45 (F)
Poder en la red (reservado)1 × DB9 (M)
Interfaz de alimentación1
Botones/interruptoresRestablecimiento de KVM1 × semioculto, frontal
Indicadorescomida1 × naranja
conexión de usuario remoto1 verde
LAN 10/100 Mbps1 × verde/naranja
Protocolos compatibles10baseT Ethernet y 100baseTX Fast Ethernet. TCP/IP
Permisos de vídeoHasta 1600×1200 60Hz
Marcometal
Dimensiones (largo × ancho × alto)200×80×25mm

Pasemos a las pruebas.

Hay cuatro utilidades en el CD que viene con el kit:

  • CN6000 Client es un programa cliente de Windows que le permite conectarse a una computadora remota
  • un programa de cliente similar escrito en Java (en formato jar)
  • Herramienta de administración CN6000: administrador de configuración de dispositivos (bajo Windows)
  • servidor de registro: un programa que se puede configurar para recibir y almacenar archivos de registro del CN-6000

Además, un servidor WEB está integrado en el conmutador KVM, por lo que se puede acceder al dispositivo a través de un navegador WEB. Pero volveremos a la interfaz web un poco más tarde, primero consideraremos las utilidades individuales.

Configuración del CN-6000 a través de la herramienta de administración.

El programa está diseñado para configurar el dispositivo, establecer contraseñas de acceso, seguridad, etc.

Cuando se lanzó, no fue sin curiosidad:

La primera vez que ejecute todas las utilidades del disco incluido, deberá ingresar un número de serie. En la documentación (incluso ultima versión, que se encuentra en el sitio web del fabricante) se dice que el número de serie está impreso en la parte inferior de la caja del CN-6000. Y de hecho hay algún tipo de número de serie impreso allí, solo que es mucho más corto de lo que requieren los programas. En general, habiendo sufrido un poco, ingresando el número de serie encontrado de esta manera, añadiéndole ceros o espacios y no llegando a nada más que a la ventana de "Número de serie no válido", ya tenía ganas de terminar de probar el dispositivo ese día. Al sacar el CD del CD-ROM (en primer lugar, lo inserté en la unidad de CD; tuve que instalar el software), encontré una etiqueta extraña en el disco; resultó ser el codiciado número de serie.

Por supuesto, en teoría, una persona puede prestar atención a lo que está escrito o pegado en el CD cuando lo inserta en la unidad. Pero, ¿cuántos inmediatamente prestan atención a esto? :) Y, uno se pregunta, ¿por qué fue necesario escribir información deliberadamente falsa en la documentación? Repito: el sitio contiene más una nueva version Documentación y ahí no se corrige este "error tipográfico". Observo que esta no es la última inexactitud que se cuela en la documentación, por lo que en ocasiones hay que actuar según el dicho "no creas en tus ojos".

La utilidad de administración del CN-6000 es útil porque permite encontrar un dispositivo en la red, aunque su dirección IP no pertenezca a la subred en la que estamos, basta con que nosotros (el equipo desde el que intentamos acceder al CN-6000) estaban en el mismo segmento LAN que el conmutador KVM.

Después de ingresar el nombre de usuario y la contraseña, accedemos al menú de configuración del dispositivo:

ATEN ha adoptado un buen enfoque en el tema de la seguridad de los dispositivos. Cuando ingresa por primera vez a la configuración del dispositivo, se nos advierte que sería bueno cambiar el inicio de sesión y la contraseña estándar ...

En la sección la red Se configura el direccionamiento IP del dispositivo, se configuran los puertos para el acceso remoto a las computadoras controladas por CN-6000. Y también aquí puede especificar la dirección MAC de la máquina en la que se encuentra el programa "Log Server", que almacena los archivos de registro (eventos) enviados desde el conmutador KVM (si no está configurado, los registros se almacenarán en el KVM y puede verlos desde la interfaz web). Esta máquina (para el servidor de registro) puede ser cualquier computadora en la que esté instalado Windows y se esté ejecutando el programa en cuestión. El único problema es que la computadora debe estar en el mismo segmento de red (en términos generales, conectada al mismo conmutador) que el KVM CN-6000, por lo que la utilidad de esta "característica" es cuestionable.

marcado seguridad Se configuran filtros (por direcciones MAC y/o IP) para el acceso a la pantalla remota de los equipos administrados, así como un filtro para la administración del propio CN-6000.

En la siguiente pestaña se configuran los nombres de usuario y contraseñas, así como sus derechos. Cabe destacar que puede restringir los inicios de sesión para configurar el CN-6000 y usar el cliente JAVA. La longitud mínima de la contraseña que acepta la utilidad de configuración es de ocho caracteres. Es una lástima, por supuesto, que no se verifique la "simplicidad" de la contraseña, pero incluso verificar la longitud de la contraseña indica que ATEN presta atención a la seguridad.

La última pestaña le permite actualizar el firmware del dispositivo, habilitar la posibilidad de conexión simultánea a una computadora remota para varias personas (aunque el mouse y el teclado siguen siendo los mismos, desde el punto de vista de la computadora controlada, por lo que uno controla , el resto miran... o se interfieren arrastrando el ratón para lados diferentes). Se configura inmediatamente la reacción ante un proceso de autenticación incorrecto, así como la inclusión de varios modos "ocultos" del CN-6000 (sin respuesta al ping y prohibición de mostrarse cuando búsqueda automática dispositivos en la red local a través de la utilidad de cliente o la utilidad de administración).

En la misma pestaña hay otro elemento: Restablecer al salir. Asumiría que esto es un restablecimiento a la configuración predeterminada, pero en este caso esto implica reiniciar el dispositivo al salir de la utilidad de configuración. En caso contrario (si no se reinicia), los nuevos ajustes, aunque se recordarán, no se aplicarán (hasta el reinicio).

En este punto, la consideración de la utilidad de configuración puede considerarse completa (otro aspecto se discutirá en la sección sobre el cliente Java).

Vamos a la interfaz web.

Configuración a través de la interfaz WEB

Para ingresar a la interfaz web del dispositivo, basta con escribir la dirección IP que está configurada en el CN-6000 en cualquier navegador.

Cabe destacar que el navegador redirige inmediatamente al cliente a una conexión a través de HTTPS://, es decir todo el trabajo posterior se realiza a través de una conexión SSL segura.

Después de ingresar el nombre de usuario y la contraseña, los íconos a la izquierda y en la parte superior de la interfaz web se activan (puede hacer clic en ellos).

Los iconos superiores abren secciones relacionadas con la configuración del CN-6000. En su mayor parte, todas las opciones allí repiten las opciones de la interfaz de la utilidad de Windows. Herramienta de administración, Pero hay algunas diferencias. Por ejemplo, en esta ventana (configuración de direcciones de red), solo podemos configurar la dirección IP del dispositivo, pero no podemos especificar la máscara de subred y la puerta de enlace. Además, configurar la dirección IP funciona de alguna manera torcida: no pude cambiar la dirección IP del dispositivo desde la interfaz web (usando la utilidad Herramientas de administración, cambió sin problemas).

Esto es lo que puede ver en la utilidad Herramienta de administración cuando intenta cambiar la dirección a través de la interfaz web de 10.0.0.9 a 192.168.0.1. Por alguna razón, la máscara de subred cambió del estándar 255.255.255.0 a 10.0.0.9, y el dispositivo (después de reiniciar) responde en 192.168.0.1 durante 5 segundos y luego comienza a responder en 10.0.0.9 (se olvida por completo de 192.168 .0.1). Esto puede ser un error en la versión de firmware actual (1.5.141), pero esta versión, en el momento de la prueba, era la última que se podía encontrar en el sitio web de la empresa.

No se encontraron más errores relacionados con la interfaz web durante las pruebas.

Capítulo seguridad repite la misma sección en la herramienta de administración.

Una situación similar con la sección Administrador de usuarios

... y sección personalización.

Icono Tronco, ubicado en el lado izquierdo de la interfaz web, le permite ver los eventos que ocurrieron durante el funcionamiento del dispositivo. En este caso, la captura de pantalla refleja los registros que aparecieron en el momento en que Nessus probó el dispositivo.

Como se mencionó anteriormente, los registros se pueden volcar a un servidor de registros externo (pero con ciertas restricciones en su ubicación).

Hoy en día, muchas tareas que tradicionalmente se asignaban a varios servidores físicos se están trasladando a entornos virtuales. Las tecnologías de virtualización también son demandadas por los desarrolladores de software, ya que permiten realizar pruebas exhaustivas de las aplicaciones en varios sistemas operativos. Al mismo tiempo, simplificando muchos problemas, los propios sistemas de virtualización deben administrarse y no se puede prescindir de soluciones especiales.

Vagabundo

La máquina virtual VirtualBox es merecidamente popular entre los administradores y desarrolladores, lo que le permite crear rápidamente los entornos necesarios mediante una interfaz gráfica o una interfaz de línea de comandos. Si el número de VM no supera las tres, no hay dificultades en el despliegue y la gestión, pero los proyectos modernos tienden a adquirir configuraciones y, como resultado, se obtiene una infraestructura muy compleja, que se vuelve difícil de manejar. Este es el problema que el administrador de entornos virtuales Vagrant está diseñado para resolver, lo que le permite crear copias de máquinas virtuales con una configuración predefinida y reasignar dinámicamente los recursos de VM (Aprovisionamiento) según sea necesario. En la distribución básica, Vagrant funciona con VirtualBox, pero el sistema de complementos permite conectar otro sistema de virtualización. Hoy, el código del complemento para AWS y Rackspace Cloud está abierto, y hay un complemento disponible para suscripción comercial para admitir VMware Fusion/Workstation.

Vagrant no crea una máquina virtual desde cero. Para mayor comodidad, el proyecto ofrece varias imágenes base (cajas), que se importan y posteriormente se utilizan para la implementación rápida del sistema, ya sobre la base de cajas, se ensambla un sistema operativo invitado con la configuración deseada.

Chef y Puppet están preinstalados en cajas para simplificar la implementación de aplicaciones. Además, la configuración deseada se puede especificar mediante el shell. Los entornos incluyen un conjunto completo para ejecutar y desarrollar aplicaciones en Ruby. SSH se utiliza para acceder a la VM, es posible intercambiar archivos a través de un directorio compartido.

Escrito por Vagrant usando Ruby, se puede instalar en cualquier plataforma para la que existan componentes VirtualBox y Ruby. Los paquetes para Windows, Linux (deb y rpm) y OS X están disponibles en la página de descarga.

El proceso de instalación y uso de Ubuntu es simple. Descargue los paquetes VirtualBox y Vagrant e instale:

$ sudo dpkg -i virtualbox-4.2.10_amd64.deb $ sudo dpkg -i vagabundo_1.2.2_x86_64.deb

Al momento de escribir este artículo, con la última versión actualizada de VirtualBox 4.2.14, hubo problemas al iniciar Vagrant, por lo que por ahora es mejor usar 4.2.12 o probar 4.2.15. Alternativamente, puedes hacer:

$ cd ~/.vagrant.d/boxes/BoxName/virtualbox $ openssl sha1 *.vmdk *.ovf > box.mf

Aquí hay una forma alternativa de instalar Vagrant, usando Ruby:

$ sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 $ sudo gem install vagabundo

Todos los ajustes del proyecto se realizan en un Vagrantfile especial. Para no crear una plantilla manualmente, se puede generar de la siguiente manera:

$ mkdir proyecto $ cd proyecto $ vagrant init

Ahora puede buscar en el archivo de configuración creado y completar: Configuración de VM (config.vm. ), opciones de conexión SSH (config.ssh.), los parámetros del propio Vagrant (config.vagrant). Todos ellos están bien documentados, el significado de algunos es claro y sin explicación.

De hecho, varios de estos archivos se usan al inicio, cada uno subsiguiente anula al anterior: integrado en Vagrant (no se puede cambiar), provisto de cajas (empaquetado con el interruptor "--vagrantfile"), ubicado en ~/.vagrant .d y el archivo del proyecto . Este enfoque le permite usar la configuración predeterminada, anulando solo lo que es necesario en un proyecto en particular.


Todas las instalaciones se realizan con el comando vagabundo, la lista de claves disponibles se puede ver con "-h". Después de la instalación, no tenemos una sola imagen, al ejecutar la lista de cuadro vagabundo se mostrará una lista vacía. El cuadro terminado se puede ubicar en un sistema de archivos local o en un servidor remoto, su nombre se establece como parámetro, que se utilizará en los proyectos. Por ejemplo, usamos el Box Ubuntu 12.04 LTS oficial ofrecido por los desarrolladores de Vagrant.

$ cuadro vagabundo agregar precision64 http://files.vagrantup.com/precise64.box

Ahora se puede acceder desde Vagrantfile:

config.vm.box = "preciso64"

Aunque es más fácil especificarlo de inmediato al inicializar el proyecto:

$ vagabundo inicio preciso64

La forma más fácil, que no requiere aprender Chef y Puppet, es usar comandos de shell estándar para configurar la VM, que se pueden escribir directamente en el Vagrantfile o, mejor aún, combinarlos en un script que se conecta así:

Vagrant.configure("2") hacer |config| config.vm.provision:shell, :inline => final "script.sh"

Ahora todos los comandos especificados en script.sh se ejecutarán cuando se inicie la máquina virtual. Al iniciar el proyecto, se crea un archivo ovf, su configuración se puede ver usando la GUI de VirtualBox o el comando VBoxManage:

$ VBoxManage import /home/user/.vagrant.d/boxes/precise64/virtualbox/box.ovf Sistema virtual 0: 0: Tipo de SO sugerido: "Ubuntu_64" (cambiar con "--vsys 0 --ostype "; use "list ostypes" para enumerar todos los valores posibles) 1: Nombre de máquina virtual sugerido "precise64" (cambie con "--vsys 0 --vmname ") 2: Número de CPU: 2 (cambiar con "--vsys 0 --cpus ") 3: Memoria de invitado: 384 MB (cambie con "--vsys 0 --memory ")

No siempre cumplen las condiciones especificadas, pero al usar la configuración del proveedor, puede cambiar fácilmente la configuración de una máquina virtual en particular (consulte los consejos "cambiar con..."):

Config.vm.proveedor:virtualbox do |vb| vb.personalizar ["modifyvm", :id, "--memory", "1024"] fin

Inicie y conéctese al sistema a través de SSH:

$ vagabundo arriba $ vagabundo ssh

Para detener la VM, use la opción detener o destruir (la segunda borrará todos los archivos, la próxima vez que se realicen todas las operaciones desde el principio), si necesita enviarla a hibernación: suspensión vagabunda, retorno: reanudación vagabunda. Para ver un ejemplo de cómo trabajar con Chef, puede usar una receta preparada con la que configurar APT y Apache2:

Config.vm.provision:chef_solo do |chef| chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz" chef.add_recipe("vagrant_main") fin

Para acceder a la máquina virtual "desde el exterior", deberá configurar el reenvío de puertos. De forma predeterminada, se realiza el reenvío 22 -> 2222, lo que le permite conectarse a través de SSH. Añadir a Vagrantfile:

Vagrant::Config.ejecutar |config| config.vm.forward_port 80, 1111 fin

Ahora se puede acceder al servidor web navegando a http://127.0.0.1:1111/. Para no configurar el entorno cada vez, es mejor crear un paquete listo para usar basado en él.

$ paquete vagabundo --vagrantfile Vagrantfile --output project.box

Ahora el archivo project.box se puede distribuir a otros administradores, desarrolladores o usuarios comunes que lo incluirán usando el comando vagrant box add project.box.

convertir

Los sistemas de virtualización Xen/KVM lanzados bajo licencias libres no tienen una interfaz fácil de usar, lo que a menudo se interpreta en contra de ellos. Sin embargo, esta deficiencia se soluciona fácilmente. ConVirt le permite implementar máquinas virtuales en múltiples servidores Xen y KVM con solo un clic, utilizando una interfaz fácil de usar. Todas las operaciones necesarias con máquinas virtuales están disponibles: iniciar, detener, crear instantáneas, controlar y redistribuir recursos, conectarse a una VM a través de VNC, automatizar tareas de administración. La tecnología Ajax hace que la interfaz sea interactiva y similar a una aplicación de escritorio. Por ejemplo, una VM puede simplemente arrastrarse de un servidor a otro. La interfaz no está localizada, pero los controles son intuitivos.


La agrupación de servidores le permite configurar y controlar máquinas virtuales y recursos a nivel de grupo de servidores, en lugar de servidor separado. Los agentes no se instalan en los sistemas virtuales, solo se necesita el paquete convirt-tool en el servidor físico. Esto simplifica la administración y la implementación.

Una vez que se agrega un nuevo servidor, ConVirt recopilará automáticamente su configuración y datos de rendimiento, brindando información resumida en varios niveles, desde una sola máquina virtual, un servidor físico, hasta el grupo completo. Los datos recopilados se utilizan para alojar automáticamente nuevos sistemas invitados. Esta información también se muestra en forma de gráficos visuales.

Para crear máquinas virtuales, se utilizan plantillas: descripciones de la configuración de la máquina virtual, que contienen datos sobre los recursos asignados, la ruta a los archivos del sistema operativo y ajustes adicionales. Después de la instalación, hay disponibles varias plantillas listas para usar, pero si es necesario, es fácil crearlas usted mismo.

Se admiten todas las tecnologías: equilibrio de carga, migración en caliente, discos virtuales con una capacidad creciente, lo que le permite utilizar los recursos según sea necesario, y muchas otras funciones implementadas en Xen y KVM. No necesita detener la máquina virtual para reasignar recursos.

Implementé la capacidad de administrar un entorno virtual para varios administradores con la capacidad de auditar y controlar sus acciones.

ConVirt es desarrollado por la empresa Convirture, utilizando el concepto de núcleo abierto (base abierta), cuando solo un conjunto básico de funciones se distribuye libremente con los textos fuente, el resto está disponible en la versión comercial. La versión de código abierto carece de soporte de alta disponibilidad, integración de VLAN, redundancia y recuperación, gestión de línea de comandos, notificaciones y soporte oficial.

Durante el desarrollo, se utilizó el marco TurboGears2, las bibliotecas ExtJs y FLOT, MySQL se utilizó para almacenar información, dnsmasq se utilizó como servidor DHCP y DNS. El paquete requerido se puede encontrar en los repositorios de distribuciones populares de Linux.

Karesansui

Se implementan todas las posibilidades para administrar entornos virtuales: instalación de SO, creación de subsistemas de disco y configuraciones de entornos virtuales. tarjetas de red, administración de cuotas, replicación, congelación de VM, creación de instantáneas, visualización de estadísticas detalladas y datos de registro, monitoreo de carga. Desde una consola, puede administrar varios servidores físicos y las máquinas virtuales alojadas en ellos. Es posible el trabajo multiusuario con separación de derechos. Como resultado, los desarrolladores lograron implementar un entorno virtual en el navegador que le permite administrar completamente los sistemas.

Escrito por Karesansui en Python, SQLite se usa como DBMS para un sistema de un solo nodo. Si planea administrar instalaciones de Karesansui alojadas en múltiples servidores físicos, debe usar MySQL o PostgreSQL.

Puede implementar Karesansui en cualquier Linux. Los propios desarrolladores prefieren CentOS (para el cual el sitio tiene instrucciones detalladas), aunque Karesansui también funciona bien en Debian y Ubuntu. Antes de la instalación, debe cumplir con todas las dependencias indicadas en la documentación. A continuación, se inicia el script de instalación y se inicializa la base de datos. Si se utiliza una configuración de varios servidores, solo necesita especificar una base de datos externa.

El trabajo posterior compensa completamente los inconvenientes de la instalación. Todas las configuraciones se dividen en siete pestañas, cuyo propósito queda claro por el nombre: Invitado, Configuración, Trabajo, Red, Almacenamiento, Informe y Registro. Dependiendo del rol del usuario, no todos estarán disponibles para él.

Puede crear una nueva máquina virtual desde un archivo ISO local o especificando un recurso HTTP/FTP con imágenes de instalación. También deberá configurar otros atributos: el nombre del sistema que se mostrará en la lista, el nombre de la red (nombre de host), la tecnología de virtualización (Xen o KVM), el tamaño de RAM y disco duro(Tamaño de la memoria y Tamaño del disco), y elija una imagen que coincida con el sistema operativo virtual, lo que facilita la selección visual rápida en la consola.

WebVirtMgr

Las capacidades de las soluciones descritas suelen ser redundantes y su instalación no siempre es clara para un administrador con poca experiencia. Pero aquí también hay una salida. El servicio de administración centralizada de máquinas virtuales WebVirtMgr se creó como un reemplazo simple de virt-manager, que proporcionará un trabajo cómodo con una máquina virtual que usa un navegador con un complemento de Java instalado. Se admite la gestión de la configuración de KVM: creación, instalación, configuración, inicio de una VM, instantáneas y copia de seguridad de máquinas virtuales. Brinda administración del grupo de red y el grupo de almacenamiento, trabajando con ISO, clonando imágenes, viendo la carga de CPU y RAM. Se accede a la máquina virtual a través de VNC. Todas las transacciones se registran en registros. Con una sola instalación de WebVirtMgr, puede administrar varios servidores KVM. Se utiliza RPC libvirt (TCP/16509) o SSH para conectarse a ellos.


La interfaz está escrita en Python/Django. Necesitará un servidor Linux para instalar. Distribuido en paquetes fuente y RPM para CentOS, RHEL, Fedora y Oracle Linux 6. El proceso de implementación en sí es simple y está bien descrito en la documentación del proyecto (en ruso), solo necesita configurar libvirt e instalar webvirtmgr. Todo el proceso dura cinco minutos. Después de conectarse al panel, seleccione Agregar conexión y especifique los parámetros del nodo, luego podemos configurar la VM.

Creación de scripts para la creación de una máquina virtual

El script más simple para crear y ejecutar una máquina virtual usando VirtualBox:

#!/bin/bash vmname="debian01" VBoxManage createvm --name $(vmname) --ostype "Debian" --register VBoxManage modifyvm $(vmname) --memory 512 --acpi on --boot1 dvd VBoxManage createhd - -filename "$(vmname).vdi" --size 10000 --variant Fixed VBoxManage storagectl $(vmname) --name "IDE Controller" --add ide --controller PIIX4 VBoxManage storageattach $(vmname) --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "$(vmname).vdi" VBoxManage storageattach $(vmname) --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /iso/debian-7.1.0-i386-netinst.iso VBoxManage modifyvm $(vmname) --nic1 puenteado --bridgeadapter1 eth0 --cableconnected1 en VBoxManage modifyvm $(vmname) --vrde en pantalla VBoxHeadless --startvm $(nombre de máquina virtual)

Proxmox VE

Las soluciones anteriores son buenas para aquellas situaciones en las que ya existe alguna infraestructura. Pero si solo tiene que implementarlo, debe pensar en plataformas especializadas que le permitan obtener rápidamente el resultado deseado. Un ejemplo aquí es Proxmox Virtual Environment, que es una distribución de Linux (basada en Debian 7.0 Wheezy) que te permite construir rápidamente una infraestructura de servidor virtual usando OpenVZ y KVM y está prácticamente a la par con productos como VMware vSphere, MS Hyper-V y Citrix XenServer.


De hecho, el sistema solo debe instalarse (un par de pasos simples), todo lo demás ya funciona de inmediato. Luego, usando la interfaz web, puede crear una VM. Para este propósito, la forma más fácil es usar plantillas y contenedores de OpenVZ, que se cargan desde recursos externos directamente desde la interfaz con un solo clic (si es manual, luego copie en el directorio /var/lib/vz/template). Pero las plantillas también se pueden crear mediante la clonación de sistemas ya creados en el modo de vinculación. Esta opción ahorra espacio en disco porque todos los entornos vinculados usan solo una copia compartida de los datos de la plantilla de referencia sin duplicar la información. La interfaz está localizada y es comprensible, no experimenta ningún inconveniente particular al trabajar con ella.

Hay soporte para clústeres, herramientas para Copia de reserva entornos virtuales, es posible migrar VM entre nodos sin detener el trabajo. El control de acceso a los objetos existentes (VM, almacenamiento, nodos) se implementa sobre la base de roles, se admiten varios mecanismos de autenticación (AD, LDAP, Linux PAM, Proxmox VE integrado). La interfaz web brinda la capacidad de acceder a la VM mediante consolas VNC y SSH, puede ver el estado de los trabajos, registros, datos de monitoreo y mucho más. Cierto, algunas operaciones específicas de los sistemas HA aún deberán realizarse a la antigua usanza en la consola, como la creación de una conexión iSCSI autorizada, la configuración de un clúster, la creación de rutas múltiples y algunas otras operaciones.

Los requisitos del sistema son bajos: CPU x64 (preferiblemente con Intel VT/AMD-V), más de 1 GB de RAM. El proyecto ofrece una imagen ISO lista para usar y un repositorio para Debian.

Conclusión

Todas las soluciones descritas son buenas a su manera y hacen un excelente trabajo con las tareas. Solo necesita elegir el más adecuado para una situación particular.

En Ubuntu, se recomienda utilizar el hipervisor KVM (administrador de máquinas virtuales) y la biblioteca libvirt como herramienta para administrarlo. Libvirt incluye un conjunto de API de software y aplicaciones de administración de máquinas virtuales (VM) personalizadas virt-manager (interfaz gráfica, GUI) o virsh ( línea de comando, CLI). Como administradores alternativos, puede usar convirt (GUI) o convirt2 (interfaz WEB).

Actualmente, solo el hipervisor KVM es oficialmente compatible con Ubuntu. Este hipervisor es parte del código del kernel. Sistema operativo linux A diferencia de Xen, KVM no admite la paravirtualización, lo que significa que para poder usarlo, su CPU debe admitir tecnologías VT. Puede verificar si su procesador es compatible con esta tecnología ejecutando el comando en la terminal:

Si el resultado es un mensaje:

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

por lo que KVM funcionará sin problemas.

Si la salida es un mensaje:

Su CPU no es compatible con las extensiones de KVM NO se puede utilizar la aceleración de KVM

entonces aún puede usar la máquina virtual, pero será mucho más lento.

    Instalar como sistemas invitados de 64 bits

    Asigne más de 2 GB de RAM a los invitados

Instalación

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

Esta es una instalación en un servidor sin X, es decir, no incluye una interfaz gráfica. Puedes instalarlo con el comando

sudo apt-get install virt-manager

Después de eso, aparecerá el elemento "Administrador de máquinas virtuales" en el menú y, con un alto grado de probabilidad, todo funcionará. Si aún surge algún problema, deberá leer las instrucciones en el wiki en inglés.

Crear un sistema de invitados

El procedimiento para crear un sistema invitado usando la interfaz gráfica es bastante simple.

Pero el modo de texto se puede describir.

qvaca2

Al crear un sistema mediante la interfaz gráfica, se le solicita que seleccione un archivo de imagen existente o que bloquee el dispositivo como disco duro, o que cree un nuevo archivo con datos sin procesar (RAW). Sin embargo, este está lejos de ser el único formato de archivo disponible. De todos los tipos de discos enumerados en man qemu-img, qcow2 es el más flexible y actualizado. Admite instantáneas, cifrado y compresión. Debe crearse antes de crear un nuevo sistema invitado.

Qemu-img crear -o asignación previa = metadatos -f qcow2 qcow2.img 20G

Según el mismo man qemu-img , la preasignación de metadatos (-o preallocation=metadata) hace que el disco sea un poco más grande inicialmente, pero proporciona un mejor rendimiento cuando la imagen necesita crecer. De hecho, en este caso, esta opción evita un error desagradable. La imagen creada inicialmente ocupa menos de un megabyte de espacio y crece hasta el tamaño especificado según sea necesario. El sistema invitado debería ver inmediatamente este tamaño final especificado; sin embargo, durante la fase de instalación, puede ver el tamaño real del archivo. Naturalmente, se negará a instalarse en un disco duro de 200 kb. El error no es específico de Ubuntu, también aparece en RHEL, al menos.

Además del tipo de imagen, luego puede elegir cómo conectarla: IDE, SCSI o Virtio Disk. El rendimiento del subsistema de disco dependerá de esta elección. No hay una respuesta correcta sin ambigüedades, debe elegir según la tarea que se asignará al sistema invitado. Si el sistema invitado se crea "para ver", cualquier método servirá. En general, las E/S suelen ser el cuello de botella de una máquina virtual, por lo tanto, al crear un sistema altamente cargado, este problema debe tomarse con la mayor responsabilidad posible.

Kimchi es una interfaz web basada en HTML5 para KVM. Proporciona una interfaz fácil y flexible para crear y administrar una máquina virtual invitada. Kimchi se instala y se ejecuta como un demonio en el host KVM. Administra invitados KVM con la ayuda de libvirt. La interfaz de Kimchi es compatible con todas las versiones más recientes de los navegadores con la versión -1, también es compatible con los navegadores móviles.

Kimchi se puede instalar en la última versión de RHEL, Fedora, openSUSE y Ubuntu. En esta guía, utilicé Ubuntu 14.10 como host KVM.

Antes de configurar kimchi, debe instalar los siguientes paquetes dependientes.

$ sudo apt-get install gcc make autoconf automake gettext git python-cherrypy3 python-cheetah python-libvirt libvirt-bin python-imaging python-pam python-m2crypto python-jsonschema qemu-kvm libtool python-psutil python-ethtool sosreport python-ipaddr python-ldap python-lxml nfs-common open-iscsi lvm2 xsltproc python-parted nginx firewalld python-guestfs libguestfs-tools python-requests websockify novnc especias-html5 wget

El sistema le pedirá los siguientes detalles durante la instalación de los paquetes.

1. Aceptar en la configuración de Postfix.

2. Seleccione Sitio de Internet en el tipo general de configuración de correo.

3. Escriba su FQDN y luego seleccione Aceptar.

Una vez instalado, descargue la última versión de kimchi de github.

$ wget https://github.com/kimchi-project/kimchi/archive/master.zip

Descomprima el archivo descargado.

$ descomprimir master.zip $ cd kimchi-master/

Construye kimchi usando el siguiente comando.

$ ./autogen.sh --sistema

$ make $ sudo make install # Opcional si se ejecuta desde el árbol de fuentes

$ sudo kimchid --host=0.0.0.0

Acceda a kimchi usando el navegador web, https://localhost:8001. Se le pedirá que inicie sesión, use su credencial del sistema que normalmente usa para iniciar sesión en el sistema.


Una vez que haya iniciado sesión, obtendrá una página como la siguiente. Esto muestra la lista de máquinas virtuales invitadas en ejecución en el host actual, tiene botones para apagar, reiniciar y conectarse a la consola haciendo clic en acción.


Para crear una nueva máquina invitada, haga clic en el signo + en la esquina derecha. Si usa esta opción para crear una máquina, se hará a través de plantillas.


Puede administrar las plantillas visitando el menú de plantillas. Para crear una nueva plantilla, haga clic en el signo + en la esquina derecha. Puede crear una plantilla usando imágenes ISO, puede colocar imágenes iso en /var/lib/kimchi/isos o usar una remota.


Puede administrar el grupo de almacenamiento yendo al menú de almacenamiento, allí puede agregar un nuevo almacenamiento haciendo clic en el signo +. Admite agregar almacenamiento de canal de fibra NFS, iSCSI y SCSI.


La red se puede administrar yendo al menú de red, puede crear una nueva red con redes aisladas, NAT y puenteadas.


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 funciona a nivel de kernel y admite tecnologías de aceleración de hardware como Intel VT y AMD SVM.

Por sí mismo 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 la máquina invitada en el kernel. Cada máquina invitada tendrá su propia tarjeta de video, red y tarjeta 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 usar kvm tanto en un sistema GUI como en servidores. En este artículo, lo guiaremos a través de la instalación de 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 es 0, entonces su procesador no es compatible con la virtualización de hardware, si es 1 o más, entonces puede usar KVM en su máquina.

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

sudo apt install 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 completada la instalación, debe agregar su usuario al grupo libvirtd, ya que solo los usuarios raíz y 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 usar este entorno de virtualización, pero aún debe configurarse. A continuación, veremos cómo se realiza la configuración de kvm de Ubuntu. Primero necesitas configurar la red. Necesitamos crear un puente con el cual la máquina virtual se conectará a la red de la computadora.

Configuración de puente en NetworkManager

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

Haga clic en el ícono 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 presiona Crear:

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

Seleccionar de la lista ethernet y presiona Crear:

En la siguiente ventana, seleccione en el campo dispositivo, interfaz de red, con el que nuestro puente debe estar conectado:

Ahora verá su puente en la lista de conexiones de red. Queda por reiniciar la red para aplicar completamente los cambios, para hacer esto, ejecute:

Configuración manual del puente

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

sudo apt install bridge-utils

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

sudo brctl addbr bridge0
$ sudo mostrar dirección IP
$ sudo addif puente0 eth0

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

Ahora debe agregar algunas líneas a la configuración de red para que todo se eleve 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/red/interfaces

bucle invertido
auto lo puente0
bucle invertido iface lo inet
iface bridge0 inet dhcp
puente_puertos eth0

Cuando se agreguen las configuraciones, reinicie la red:

sudo systemctl reiniciar redes

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

Creación de máquinas virtuales KVM

La configuración de Ubuntu KVM está completa y ahora podemos pasar a usarla. Primero, veamos la lista de máquinas virtuales ya existentes:

virsh -c qemu:///lista del sistema

Esta vacio. Puede crear una máquina virtual a través de la terminal o en la interfaz gráfica. Para compilar desde 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\
--carnero 2048\
--vcpus=2 \
--os-variant=rhel7 \
--hvm\
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1511.iso \
--network=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 carro nuevo;
  • RAM- cantidad de memoria en megabytes;
  • vcpus- número de núcleos de procesador;
  • os-variante- tipo de sistema operativo;
  • CD ROM- imagen de instalación del sistema;
  • puente de red - puente de red, que configuramos anteriormente;
  • gráficos- cómo acceder a la interfaz gráfica;
  • ruta de disco- dirección del nuevo disco duro para esta máquina virtual;

Una vez completada la instalación de la máquina virtual, puede encontrar la configuración de conexión a través de 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:

Ir 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 vamos a crear una máquina virtual:

sudo virt-instalar \
--virt-tipo=kvm \
--nombre=debina8 \
--ram=2048 \
--vcpus=2 \
--os-variant=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 veamos de nuevo la lista de máquinas disponibles:

virsh -c qemu:///lista del sistema

Para iniciar la máquina virtual, puede usar el comando:

sudo virsh iniciar nombre de host

Para detener:

nombre de host de apagado de sudo virsh

Para ponerlo en modo de suspensión:

sudo virsh suspender nombre de host

Reiniciar:

sudo virsh reiniciar nombre de host

sudo virsh restablecer nombre de host

Para eliminar completamente una máquina virtual:

sudo virsh destruir nombre de host

Creación de máquinas virtuales en la GUI\

Si tiene acceso a una interfaz gráfica, entonces no es necesario usar una terminal, puede usar la interfaz gráfica completa del administrador de máquinas virtuales de 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 una imagen ISO de su sistema. También puede 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, debe verificar la corrección de la configuración de la máquina, así como 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 eso, 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, analizamos cómo se realiza la instalación de Ubuntu 16.04 KVM, cómo preparar completamente este entorno para el trabajo, así como también cómo crear máquinas virtuales y usarlas. Si tienes alguna duda, pregunta en los comentarios!

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