Usamos KVM para crear máquinas virtuales en el servidor. Documentación en ruso para Ubuntu Creación de máquinas virtuales KVM

Probé muchas interfaces de administración web y ninguna era lo suficientemente buena como virt-manager.

Sabes, soy uno de esos tipos que solían tener VMware, donde se puede hacer clic en el 90% del control.

Mis preguntas:

1) ¿Existe alguna utilidad CLI "interactiva" como mc (midnight Commander) o algo así como controlar KVM? (ENCENDER/APAGAR VM, aumentar la memoria, reiniciar máquinas virtuales, agregar hardware virtual, agregar nuevos discos, etc.)

2) ¿Podría recomendarme alguna interfaz de administración de interfaz web para KVM en Debian Squeeze? ¿Has visto VMware Server 2? Hay control web. Sé que fue lento, pero eso es normal cuando estás en algún lugar sin terminal. (por ejemplo en Android con un navegador web) Probé muchos de ellos, pero nada de lo que probé funcionó.

5) ¿Cómo mejorar la seguridad de KVM? ¿Alguna interfaz web podría solucionar este problema? (por ejemplo, contabilidad, gestión de usuarios?)

Sé que existe google, wiki, hay una larga lista de UI para kvm, pero necesito opiniones, experiencias de expertos o usuarios que usan KVM. Espero que esta no sea una pregunta estúpida. Gracias a todos por responder mis preguntas.

5 soluciones recopilan formulario web para "KVM: ¿qué administración web debo usar?"

Para un administrador KVM basado en web, puede probar Proxmox. Las instrucciones para Debian Squeeze están aquí.

Tiene herramientas de línea de comandos pero no un menú basado en texto.

Deberías configurar un entorno pequeño y probarlo. Luego establezca el objetivo e impleméntelo.

No hay una respuesta/tutorial exacto para esto. Qué tan configurable es un servidor/cliente KVM realmente depende de cuántos recursos (cpu/ram/almacenamiento) están disponibles.

Nuevamente, depende de su entorno y, por ejemplo, se trata de dispositivos/capas múltiples. enrutadores, firewall, tablas de IP, política de contraseñas, política de acceso, etc. No conozco ninguna interfaz gráfica de usuario, base web o no, que pueda manejar todo esto, incluido KVM. (Está bien, hay una nube, pero no tengo ninguna experiencia con ella)

¿Has probado? kimchi? es el KVM de código abierto más fácil de usar y está patrocinado por IBM.

Descargo de responsabilidad: no estoy afiliado en absoluto a Kimchi. Me encanta su amabilidad.

Los expertos utilizan la CLI. No GUI. Esto es válido incluso para administradores de Windows experimentados.

No, las GUI todavía están mejorando, pero los scripts de registro automático son más rápidos y hacen lo que usted desea.

¿Mejorar el rendimiento en KVM? Tíralo.

Esto es sólo una pista del experto en XEN-PV. Sólo LXC (u otros contenedores) o las soluciones basadas en chroot son más rápidas.

Puede que la guía de instalación de KVM no sea muy detallada, pero al menos da o aporta ideas sobre el proceso de instalación y configuración.

Existe un nuevo sistema de gestión de sistemas KVM y AV/IT de nivel empresarial llamado Boxilla, que cuenta con un centro de comando integral y centralizado que ofrece el máximo rendimiento, facilidad de uso y seguridad.

Proporciona la capacidad de gestionar KVM de alto rendimiento, KVM sobre IP, puntos finales virtualizados y varios dispositivos AV/IT en un centro de comando centralizado, lo que permite a los administradores gestionar implementaciones KVM y AV/IT de varios niveles mediante un potente sistema compartido y basado en web. interfaz de usuario. Puede encontrar información sobre esto aquí: https://www.blackbox.co.uk/gb-gb/page/37929/Solutions-Industries/Technology-Products/KVM-Switching-and-Extension/Centralised-KVM-AV-Manager -Boxilla

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.

El software KVM en sí no virtualiza nada en el espacio del usuario. 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, pero aún debe configurarlo. A continuación, veremos cómo está configurado 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

Está vacío. 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 parar:

sudo virsh cerrar nombre de máquina

Para cambiar al modo de suspensión:

sudo virsh suspender nombre de máquina

Para 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 comprobar que la configuración de la máquina es correcta y también introducir 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:

Hoy en día, muchas tareas que tradicionalmente requerían múltiples servidores físicos se están trasladando a entornos virtuales. Los desarrolladores de software también demandan tecnologías de virtualización, ya que permiten realizar pruebas exhaustivas de aplicaciones en varios sistemas operativos. Al mismo tiempo, si bien se simplifican muchas cuestiones, es necesario gestionar los propios sistemas de virtualización, y esto no se puede hacer sin soluciones especiales.

Vagabundo

La máquina virtual VirtualBox es merecidamente popular entre administradores y desarrolladores, ya que le permite crear rápidamente los entornos deseados utilizando una interfaz gráfica o una interfaz de línea de comandos. Si el número de máquinas virtuales no supera las tres, no surgen dificultades en la implementación y la gestión, pero los proyectos modernos tienden a llenarse de configuraciones y el resultado es una infraestructura muy compleja, que resulta difícil de manejar. Este es el problema para el que está diseñado el administrador de entorno virtual Vagrant, permitiéndole crear copias de máquinas virtuales con una configuración predeterminada y redistribuir dinámicamente los recursos de la VM (aprovisionamiento) según sea necesario. En el paquete básico, Vagrant funciona con VirtualBox, pero el sistema de complementos le permite conectar otro sistema de virtualización. Hoy, el código del complemento para AWS y Rackspace Cloud está abierto; un complemento compatible con VMware Fusion/Workstation está disponible para una suscripción comercial.

Vagrant no crea una máquina virtual desde cero. Para mayor comodidad, el proyecto ofrece varias imágenes básicas (cuadros), que se importan y posteriormente se utilizan para una implementación rápida del sistema y se ensambla un sistema operativo invitado con la configuración requerida en base a los cuadros.

Para simplificar la implementación de la aplicación, las cajas vienen preinstaladas con Chef y Puppet. Además, las configuraciones necesarias se pueden especificar usando 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 el intercambio de archivos a través de un directorio compartido.

Vagrant está escrito en Ruby y se puede instalar en cualquier plataforma que tenga 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 en Ubuntu es sencillo. Descargue los paquetes VirtualBox y Vagrant e instálelos:

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

Al momento de escribir este artículo, la última versión actual de VirtualBox 4.2.14 tenía problemas al ejecutar 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 opción alternativa para instalar Vagrant, usando Ruby:

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

Todas las configuraciones del proyecto se realizan en un Vagrantfile especial. Para evitar crear la plantilla manualmente, puedes generarla 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.), parámetros del propio Vagrant (config.vagrant). Todos ellos están bien documentados, el significado de algunos es claro sin explicación.

De hecho, varios de estos archivos se utilizan al inicio, cada uno de los cuales reemplaza al anterior: integrado en Vagrant (no se puede cambiar), suministrado con cajas (empaquetado usando el modificador "--vagrantfile"), ubicado en ~/.vagrant .d y el archivo del proyecto . Este enfoque le permite utilizar la configuración predeterminada, anulando sólo lo que es necesario en un proyecto específico.


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

$ caja vagabunda agregar precision64 http://files.vagrantup.com/precise64.box

Ahora se puede acceder desde Vagrantfile:

Config.vm.box = "precise64"

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

$vagrant init preciso64

La forma más sencilla, que no requiere aprender Chef y Puppet, es utilizar comandos de shell estándar para configurar la VM, que pueden escribirse directamente en Vagrantfile o, mejor aún, combinarse en un script que se conecta de esta manera:

Vagrant.configure("2") hacer |config|

config.vm.provision:shell, :inline => fin de "script.sh"

Ahora todos los comandos especificados en script.sh se ejecutarán cuando se inicie la VM. Cuando se inicia el proyecto, se crea un archivo ovf; su configuración se puede ver usando la interfaz gráfica de VirtualBox o el comando VBoxManage: $ VBoxManage import /home/user/.vagrant.d/boxes/precise64/virtualbox/box.ovf Sistema virtual 0: 0: Tipo de sistema operativo sugerido: "Ubuntu_64" (cambiar con "--vsys 0 --ostype "; use "list ostypes" para enumerar todos los valores posibles) 1: Nombre de VM sugerido "precise64" (cambiar con "--vsys 0 --vmname ") 2: Número de CPU: 2 (cambiar con "--vsys 0 --cpus ")

No siempre cumplen con las condiciones especificadas, pero utilizando la configuración del proveedor, puede cambiar fácilmente la configuración de una VM específica (consulte los consejos "cambiar con ..."):

Config.vm.provider:virtualbox hacer |vb|

vb.customize ["modifyvm", :id, "--memory", "1024"] fin

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

$vagrant arriba $vagrant ssh

Para detener la VM, use el parámetro detener o destruir (el segundo, para borrar todos los archivos, la próxima vez todas las operaciones se realizarán desde el principio), si necesita enviarlo a hibernación: suspensión vagabunda, regreso: reanudación vagabunda. Como ejemplo de cómo trabajar con Chef, puede utilizar una receta ya preparada para configurar APT y Apache2:

Config.vm.provision:chef_solo hacer |chef|

chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz" chef.add_recipe("vagrant_main") fin

Para acceder a la VM “desde el exterior”, deberá configurar el reenvío de puertos. De forma predeterminada, el reenvío es 22 -> 2222, lo que le permite conectarse a través de SSH. Agregar a Vagrantfile:

Vagrant::Config.run hacer |config|

config.vm.forward_port 80, 1111 final

Ahora se puede acceder al servidor web yendo a http://127.0.0.1:1111/. Para no configurar el entorno cada vez, es mejor ensamblar un paquete ya preparado basado en él.

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


La agrupación de servidores permite configurar y controlar máquinas virtuales y recursos a nivel del grupo de servidores, en lugar de a nivel de servidor individual. No se instalan agentes en sistemas virtuales; solo necesita el paquete convert-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 sus datos de configuración y rendimiento, proporcionando información resumida en múltiples niveles: desde la máquina virtual individual, el servidor físico y todo el grupo. Los datos recopilados se utilizan para recibir automáticamente a nuevos huéspedes. 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 configuraciones adicionales. Después de la instalación, hay varias plantillas listas para usar, pero si es necesario, puede crearlas usted mismo fácilmente.

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

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

ConVirt está siendo desarrollado por la empresa Convirture y utiliza el concepto de núcleo abierto, donde sólo un conjunto básico de funciones se distribuye gratuitamente junto con el código fuente, el resto está disponible en una versión comercial. La versión de código abierto carece de soporte de alta disponibilidad, integración de VLAN, respaldo y recuperación, administración de línea de comandos, notificaciones y soporte oficial.

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

karesansu

Se implementan todas las funciones para administrar entornos virtuales: instalar el sistema operativo, crear configuraciones del subsistema de disco y tarjetas de red virtuales, administrar cuotas, replicación, congelar máquinas virtuales, crear instantáneas, ver estadísticas detalladas y datos de registro, monitorear descargas. Desde una consola puedes gestionar varios servidores físicos y máquinas virtuales alojadas en ellos. Es posible el trabajo multiusuario con derechos compartidos. Como resultado, los desarrolladores lograron implementar un entorno virtual en el navegador que les permite administrar completamente los sistemas.

Escrito por Karesansui en Python, SQLite se utiliza 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 hay instrucciones detalladas en el sitio web), aunque Karesansui funciona bien en Debian y Ubuntu. Antes de la instalación, debe completar todas las dependencias especificadas 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 múltiples servidores, solo necesita especificar la base de datos externa.

El trabajo posterior compensará completamente las molestias de la instalación. Todas las configuraciones están divididas en siete pestañas, cuyo propósito se desprende del 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 a partir de 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 la RAM y el disco duro (tamaño de la memoria y tamaño del disco). y seleccione una imagen que corresponda al sistema operativo virtual, lo que facilitará 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 resulta clara para un administrador con poca experiencia. Pero aquí también hay una salida. El servicio de gestión centralizada de máquinas virtuales WebVirtMgr se creó como un simple reemplazo de virt-manager, que permitirá trabajar cómodamente con máquinas virtuales utilizando un navegador con un complemento Java instalado. Se admite la gestión de la configuración de KVM: creación, instalación, configuración, lanzamiento de VM, instantáneas y copia de seguridad de máquinas virtuales. Proporciona gestión del grupo de redes y del grupo de almacenamiento, trabajo con ISO, clonación de imágenes, visualización de 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. Puede administrar varios servidores KVM con una única instalación de WebVirtMgr. Para conectarse a ellos, utilice RPC libvirt (TCP/16509) o SSH.


La interfaz está escrita en Python/Django. Para la instalación necesitará un servidor que ejecute Linux. Distribuido en código fuente y paquetes 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 podremos configurar la VM.

Scriptemos la creación de una VM

El script más simple para crear e iniciar una máquina virtual usando VirtualBox:

#!/bin/bash vmname="debian01" VBoxManage createvm --name $(vmname) --ostype "Debian" --register VBoxManage modifiquevm $(vmname) --memory 512 --acpi on --boot1 dvd VBoxManage createhd - -filename "$(vmname).vdi" --size 10000 --variant Fijo VBoxManage Storagectl $(vmname) --name "Controlador IDE" --add ide --controller PIIX4 VBoxManage Storageattach $(vmname) --storagectl "IDE Controlador" --puerto 0 --dispositivo 0 --tipo disco duro --medio "$(vmname).vdi" VBoxManage Storageattach $(vmname) --storagectl "Controlador IDE" --puerto 0 --dispositivo 1 --tipo unidad de DVD --medium /iso/debian-7.1.0-i386-netinst.iso VBoxManage modificarvm $(vmname) --nic1 puenteado --bridgeadapter1 eth0 --cableconnected1 en VBoxManage modificarvm $(vmname) --vrde en pantalla VBoxHeadless --startvm $(nombrevm)

Proxmox VE

Las soluciones anteriores son buenas para situaciones en las que ya existe alguna infraestructura. Pero si sólo necesita implementarlo, vale la pena 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 le permite construir rápidamente una infraestructura de servidor virtual utilizando OpenVZ y KVM y prácticamente no es inferior a productos como VMware vSphere, MS Hyper- V y Citrix XenServer.


De hecho, sólo es necesario instalar el sistema (un par de sencillos pasos), todo lo demás ya funciona de inmediato. Luego puede crear una VM usando la interfaz web. Para ello, la forma más sencilla es utilizar plantillas y contenedores OpenVZ, que se cargan desde recursos externos directamente desde la interfaz con un solo clic (si es manual, cópielos en el directorio /var/lib/vz/template). Pero las plantillas también se pueden crear clonando sistemas ya creados en modo de vinculación. Esta opción ahorra espacio en disco porque todos los entornos vinculados utilizan solo una copia común de los datos de la plantilla de referencia sin duplicar 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 realizar copias de seguridad de entornos virtuales y es posible migrar máquinas virtuales entre nodos sin detener el trabajo. El control de acceso a los objetos existentes (VM, almacenamiento, nodos) se implementa en función de roles, se admiten varios mecanismos de autenticación (AD, LDAP, Linux PAM, Proxmox VE integrado). La interfaz web le permite acceder a la VM mediante consolas VNC y SSH, puede ver el estado del trabajo, registros, datos de monitoreo y mucho más. Es cierto que algunas operaciones específicas de los sistemas HA aún deberán realizarse a la antigua usanza en la consola, por ejemplo, crear una conexión iSCSI autorizada, configurar un clúster, crear una ruta múltiple y algunas otras operaciones.

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

Conclusión

Todas las soluciones descritas son buenas a su manera y hacen frente bien a las tareas asignadas. Sólo hace falta elegir el más adecuado a una situación concreta.

Creo que muchas personas se han encontrado con conmutadores KVM normales. La abreviatura "KVM" significa "Keyboard Video Mouse". Un dispositivo KVM le permite, teniendo solo un conjunto de teclado+monitor+ratón (K.M.M.), controlar varios ordenadores (unidades de sistema). En otras palabras, tomamos N unidades del sistema, conectamos sus salidas del K.M.M. en un dispositivo KVM y conecte un monitor, teclado y mouse reales al dispositivo. Al cambiar entre ordenadores mediante KVM podremos ver lo que ocurre en la pantalla del ordenador seleccionado, 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, ahorra mucho espacio: los monitores, incluso los LCD, ocupan bastante espacio en la mesa. Sí, y cuestan bastante. Y entre un montón de teclados y ratones sobre la mesa uno puede confundirse rápidamente...

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

Por ejemplo, veamos varios conmutadores KVM típicos que utilizan dispositivos fabricados por la empresa como ejemplo.

Especificaciones del dispositivo

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

Tabla 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-15 F (amarillo)
Puerto LAN1 × RJ-45(H)
Encendido de la red (reservado)1 DB9(M)
Interfaz de energía1
Botones/interruptoresRestablecimiento de KVM1 × semioculto, frontal
Indicadoresnutrición1 naranja
conexión de usuario remoto1 verde
LAN 10/100 Mbps1 verde/naranja
Protocolos soportadosEthernet 10baseT y Ethernet rápido 100baseTX. TCP/IP
Resoluciones de vídeoHasta 1600×1200 60Hz
Marcometal
Dimensiones (largo × ancho × alto)200 × 80 × 25 mm

Pasemos a las pruebas.

En el CD incluido puedes encontrar cuatro utilidades:

  • Cliente CN6000: programa cliente para Windows, con el que puede conectarse a una computadora remota
  • un programa cliente similar escrito en Java (en formato jar)
  • Herramienta de administración CN6000: administrador de configuración de dispositivos (para Windows)
  • servidor de registro: un programa que se puede configurar para recibir y almacenar archivos de registro desde el CN-6000

Además, el conmutador KVM tiene un servidor WEB incorporado, 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 veremos las utilidades individuales.

Configuración del CN-6000 a través de la utilidad Admin Tool.

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

Cuando se lanzó, hubo algo curioso:

La primera vez que inicie todas las utilidades desde el disco suministrado, deberá ingresar el número de serie. La documentación (incluso la última versión, que se encuentra en el sitio web del fabricante) dice que el número de serie está impreso en la parte inferior de la carcasa del CN-6000. Y realmente hay una especie de número de serie impreso allí, sólo que es mucho más corto de lo que requieren los programas. En general, después de sufrir un poco, ingresando el número de serie encontrado de esta manera, agregando ceros o espacios y sin lograr nada más que la ventana "Número de serie no válido", ya quería terminar de probar el dispositivo ese día. Después de sacar el CD del CD-ROM (primero lo inserté en la unidad de CD; tuve que instalar el software), descubrí una etiqueta extraña en el disco; resultó ser el preciado número de serie.

Por supuesto, en teoría, una persona puede prestar atención a lo que está escrito o pegado en un CD al insertarlo en la unidad. Pero, ¿cuántas personas prestan atención inmediatamente a esto? :) Y uno podría preguntarse, ¿por qué fue necesario escribir información deliberadamente falsa en la documentación? Repito: hay una versión más nueva de la documentación en el sitio y este "error tipográfico" no se corrige allí. Observo que esta no es la última inexactitud que aparece en la documentación, por lo que a veces hay que actuar según el dicho "no creas lo que ves".

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

Tras introducir el usuario y contraseña accedemos al menú de configuración del dispositivo:

ATEN ha adoptado un buen enfoque en la cuestión de la seguridad de los dispositivos. Cuando ingresamos por primera vez a la configuración del dispositivo, se nos advierte que sería una buena idea cambiar el nombre de usuario y la contraseña estándar...

en la sección Red Se configura la dirección IP del dispositivo, se configuran los puertos para el acceso remoto a las computadoras controladas por el CN-6000. Y aquí también 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 lo especifica, los registros se almacenarán en el KVM y puedes verlos desde la interfaz web). Esta máquina (para el servidor de registro) puede ser cualquier computadora que ejecute Windows y ejecute el programa en discusió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 propio KVM CN-6000, por lo que la utilidad de esta "función" es cuestionable.

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

La siguiente pestaña especifica los nombres de usuario y las contraseñas, así como sus derechos. Lo que es digno de mención es que puede limitar los inicios de sesión para configurar el CN-6000 y utilizar 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 compruebe la “simplicidad” de la contraseña, pero incluso comprobar 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 que varias personas se conecten simultáneamente a una computadora remota (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 descansar reloj... o interferir entre sí arrastrando el ratón en diferentes direcciones) . También se configura la reacción ante un proceso de autenticación incorrecto, así como la inclusión de varios modos de “ocultamiento” del CN-6000 (sin respuesta al ping y prohibición de mostrarse al buscar automáticamente dispositivos en la red local a través del cliente utilidad o utilidad de administración).

En la misma pestaña hay otro elemento: Restablecer al salir. Supongo que esto es restablecer la configuración predeterminada, pero en este caso implica reiniciar el dispositivo al salir de la utilidad de configuración. De lo contrario (si no lo reinicia), aunque se recordarán las nuevas configuraciones, no se aplicarán (hasta que reinicie).

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

Pasemos a la interfaz web.

Configuración a través de interfaz WEB

Para acceder a la interfaz web del dispositivo, simplemente ingrese la dirección IP que está instalada en el CN-6000 en cualquier navegador.

Cabe destacar que el navegador redirige inmediatamente al cliente a la 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 su nombre de usuario y contraseña, los íconos en la parte superior izquierda y 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 manera algo torcida: nunca pude cambiar la dirección IP del dispositivo desde la interfaz web (se cambió sin problemas usando la utilidad Herramientas de administración).

Esto es lo que puede observar 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 a la dirección 192.168.0.1 durante 5 segundos y luego comienza a responder a 10.0.0.9 (se olvida por completo). aproximadamente 192.168.0.1). Esto puede ser un error en la versión actual del firmware (1.5.141), pero esta versión, en el momento de la prueba, era la más nueva que se podía encontrar en el sitio web de la empresa.

Durante las pruebas no se encontraron más errores relacionados con la interfaz web.

Capítulo Seguridad repite una sección similar en la utilidad Herramienta de administración.

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

...y sección Personalización.

Icono Registro, 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 cuando el programa Nessus probó el dispositivo.

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

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

Actualmente, sólo el hipervisor KVM es oficialmente compatible con Ubuntu. Este hipervisor es parte del código del kernel del sistema operativo Linux. A diferencia de Xen, KVM no admite la paravirtualización, lo que significa que para poder utilizarlo, su CPU debe admitir tecnologías VT. Puedes comprobar si tu procesador soporta esta tecnología ejecutando el comando en la terminal:

Si recibe el siguiente mensaje como resultado:

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

Esto significa que KVM funcionará sin problemas.

Si recibió el siguiente mensaje a la salida:

Su CPU no admite extensiones KVM. NO se puede utilizar la aceleración KVM.

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

    Instalar sistemas de 64 bits como invitados

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

Instalación

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

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

Sudo apt-get install virt-manager

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

Creando un sistema de invitados

El procedimiento para crear un sistema invitado utilizando la GUI es bastante sencillo.

Pero el modo texto se puede describir.

qcow2

Al crear un sistema utilizando la interfaz gráfica como disco duro, se le solicita que seleccione un archivo de imagen existente o un dispositivo de bloque, 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, el más flexible y moderno es qcow2. Admite instantáneas, cifrado y compresión. Debe crearse antes de crear un nuevo invitado.

Qemu-img crear -o preallocation=metadatos -f qcow2 qcow2.img 20G

Según el mismo 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 te permite evitar 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 instalarlo en un disco duro de 200 KB. El error no es específico de Ubuntu; aparece al menos en RHEL.

Además del tipo de imagen, posteriormente puede elegir el método para conectarla: IDE, SCSI o Virtio Disk. El rendimiento del subsistema de disco dependerá de esta elección. No existe una respuesta correcta definitiva; debe elegir según la tarea que se asignará al sistema de invitados. Si el sistema invitado se crea "para mirar", entonces cualquier método servirá. En general, la E/S suele ser el cuello de botella de una máquina virtual, por lo que al crear un sistema muy cargado, este problema debe tratarse de la manera más responsable posible.




Arriba