Virtualización en Debian: Introducción – Redes de Computadoras para las PYMES
Lo más simple es lo mejor
En la imagen de cabecera de la página principal de XtratuM, Hipervisor diseñado especialmente para Sistemas Empotrados o Embebidos en Tiempo Real, encontramos la siguiente imagen:
“Nuestro Principio Fundamental para la instalación, configuración, y administración de servicios, incluyendo por supuesto a la Virtualización, concuerda plenamente con el mensaje “The simpler, the better“, o sea, Lo más simple es lo mejor.”
Introducción
La Virtualización es un tema amplio y complejo. No escribiremos mucho sobre él. Expondremos solamente algunas definiciones y enlaces a páginas que sugerimos se deban leer y/o estudiar, según el interés que tenga cada lector. Sugerimos lean páginas de la Wikipedia en inglés, y de otras fuentes.
- No queremos adentrarnos en la entrega de un Cómo Hacer típico con varios comandos, etcétera, sin antes dar como mínimo, una guía de introducción al tema. Conocemos que algunos Lectores Impacientes no leen las introducciones y van directo al cómo se hace. Acción lamentable pues, después vienen las preguntas conceptuales a las que muchas veces no podemos responder adecuadamente, ya que es imposible que lo sepamos todo.
Esperamos que, después de leer aunque sea un poco detenidamente este artículo, el lector tenga una idea sobre qué es La Virtualización y de su situación actual. También, que disponga de una serie de enlaces que le permita ampliar mas sobre esta tarea del día a día de prácticamente cualquiera que utilice una computadora en éstos momentos.
Definiciones y enlaces según Wikipedia y de otras fuentes
Virtualización
En Informática, la Virtualización se refiere al acto de creación de la versión de algo virtual en vez del algo real, que incluye el hardware virtual de computadoras, sistemas operativos, dispositivos de almacenamiento, y recursos de redes de computadoras. La virtualización comenzó en la década de los 60, como un método que dividió a los recursos del sistema de una computadora mainframe, entre diferentes aplicaciones. Desde entonces, el significado del término Virtualización está en constante expansión.
La Virtualización o Plataforma de Virtualización se refiere a la creación de una máquina virtual, que actúe como una real, con un sistema operativo. El software que se ejecuta en las máquinas virtuales está separado de los recursos del hardware subyacente o físico. Ejemplo: una máquina física sobre la que se ejecuta Debian 8 “Jessie”, puede albergar a una máquina virtual con el sistema operativo Ubuntu Trusty 14.04.
En la Virtualización se denomina “Anfitrión – Host” a la computadora real o física donde tiene lugar la propia virtualización. A la máquina virtual se le denomina “Invitada – Guest“. Los términos Host y Guest se utilizan para distinguir el software que se ejecuta en la máquina real, de los que se ejecuten en las máquinas virtuales. Al software o firmware que crea las máquinas virtuales sobre el hardware del Host, se le denomina Hipervisor – Hypervisor.
Diferentes tipos de Virtualización:
- Virtualización Total – Full Virtualization: se refiere a la Casi Total Simulación del Hardware Real, lo que permite al software virtualizado -típicamente consistente en un sistema operativo- ejecutarse sin modificación alguna.
- Virtualización Parcial – Partial Virtualization: el ambiente de destino No se simula totalmente, sino parcialmente. Como resultado, puede ser necesaria la modificación de algunos programas que se ejecuten en el Guest.
- Paravirtualización – Paravirtualization: No se simula ningún ambiente de hardware. Cada programa Invitado – Guest se ejecuta en un Dominio Aislado, como si se ejecutaran en sistemas separados. Es necesaria una modificación específica de cada programa Guest para su ejecución en éste tipo de ambiente.
La virtualización asistida del hardware es una vía para mejorar la eficiencia global del proceso de virtualización. Implica que, los procesadores o CPUs, deban tener el soporte necesario para la virtualización, así como también otros componentes del propio hardware.
La Virtualización del Hardware No es lo mismo que la Emulación del Hardware. En la Emulación, una parte del hardware imita a otra, mientras que en la Virtualización, el Hipervisor -que es un software- imita a una pieza particular del hardware o a su totalidad.
Máquina Virtual
En informática, una máquina virtual es un software que simula a un ordenador y puede ejecutar programas como si fuese un ordenador real. Este software en un principio fue definido como “un duplicado eficiente y aislado de una máquina física”. Actualmente, la acepción del término incluye a maquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.
Hipervisor
Un Hipervisor – Hypervisor o Monitor de Máquina Virtual – Virtual Machine Monitor VMM es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar, o modificados como en el caso de la paravirtualización) en una misma computadora.
Open Virtualization Alliance (OVA)
La Open Virtualization Alliance, respetando su título en inglés, es un Proyecto Colaborativo de la Fundación Linux. Este Consorcio está comprometido con la adopción de Software Libre y Software de Código Abierto – Open Source para las soluciones de virtualización que incluye al KVM, y también para el software necesario para su Administración, como por ejemplo el oVirt. El Consorcio promociona los ejemplos de éxitos de diferentes clientes, alienta la interoperatividad, y acelera la expansión del ecosistema de soluciones de Terceros, alrededor del KVM.
Software Libre promocionado por la OVA:
- KVM es un Hipervisor. Fue creado por Qumranet, Inc, una compañía israelí dedicada al software que en su momento llamó mucho la atención por la rápida aceptación del módulo de KVM insertado en el núcleo Linux. Ofrecía la “Solid ICE desktop virtualization platform” basada en su Kernel-based Virtual Desktop Machines, y enlazadas mediante su protocolo SPICE. El 4 de septiembre del 2008 la compañía Red Hat, Inc. adquirió a Qumranet por el valor de $107 millones de dólares.
- libvirt es una API “Aplication Program Interface” de Código Abierto, demonio – daemon, y herramienta para la administración de plataformas de virtualización. Puede gestionar el KVM, Xen, VMware ESX, QEMU y otras tecnologías de virtualización. Sus diferentes APIs se utilizan ampliamente en la orquestación de la capa de los hipervisores. libvirt es una librería escrita en el lenguaje C, y se puede enlazar con otros lenguajes como Python, Perl, OCaml, Ruby, Java, JavaScript (vía Node.js) y PHP.
- oVirt es un software para la administración de plataformas de virtualización. Es software libre y de código abierto. Fue fundada por la Red Hat como un proyecto comunitario sobre el cual está basada la Red Hat Enterprise Virtualization. oVirt permite la administración centralizada de máquinas virtuales, recursos de redes, almacenamiento y cómputo, desde una interfaz web fácil de utilizar, con una plataforma independiente para acceder a ella. El único Hypervisor oficialmente soportado sobre una arquitectura X86 64, es el KVM, aunque se hacen esfuerzos por el soporte de las arquitecturas PPC y ARM en sus próximas versiones.
- libguestfs es una librería escrita en lenguaje C y un juego de herramientas para acceder y modificar las imágenes de discos virtuales en una plataforma de virtualización. Las herramientas se pueden utilizar para la visualización y edición de las máquinas virtuales gestionadas por libvirt y los archivos residentes dentro de ellas. También se puede utilizar para la escritura de guiones –scripting– que modifiquen o creen máquinas virtuales.
- Gestor de Máquinas Virtuales – Virtual Machine Manager es un software de la Red Hat conocido también por virt-manager, nombre que además tiene el paquete en los repositorios de Debian. Es una aplicación de Escritorio para la administración de máquinas virtuales. Se utiliza para la creación, configuración y ajuste de nuevos dominios. Posee un cliente VNC mediante el cual tenemos acceso a una consola gráfica del dominio invitado. En el paquete virt-manager que trae Debian Jessie, se incluye además el protocolo SPICE para acceder a la consola gráfica de las máquinas virtuales.
Xen
Xen es un Hypervisor que utiliza el diseño de un micro núcleo, y provee los servicios necesarios para que múltiples sistemas operativos se ejecuten simultáneamente en el mismo hardware de una computadora. El Laboratorio de Computación de la Universidad de Cambridge, desarrolló las primeras versiones de Xen, el cual también es software libre. Debian 8 “Jessie” tiene en sus repositorios el paquete xen-hypervisor-4.4-amd64.
OpenVZ
OpenVZ es una solución de virtualización en el nivel del sistema operativo para Linux. Permite crear servidores virtuales aislados, seguros y privados, en un mismo servidor físico, lo que ofrece un mejor aprovechamiento de los recursos de hardware. También asegura que las aplicaciones que se ejecuten en cada uno de los servidores no entren en conflicto. Cada Servidor Privado Virtual – Virtual Private Server (VPS), se ejecuta exactamente como un servidor independiente. Se pueden reiniciar, y permiten el acceso del usuario root y de otros usuarios normales. Tienen direcciones IP, memoria, procesos, archivos, aplicaciones, librerías del sistema y archivos de configuración propios.
Debian eliminó de sus repositorios a los núcleos modificados para el soporte de OpenVZ a partir del Debian 7 “Wheezy”.
Linux Containers LXC
Los Contenedores son áreas aisladas dentro de un sistema operativo. Cada área tiene su propio espacio de nombres para el sistema de archivos, red, PID, CPU y asignación de memoria. Pueden crearse por medio de las características Control de Grupos y Espacios de Nombre incluidas en el núcleo Linux. LXC es una tecnología similar a otras basadas en la virtualización en el nivel del núcleo como OpenVZ y Linux-VServer.
Archipel
Archipel es una solución para la gestión y supervisión de máquinas virtuales ejecutadas sobre KVM, Xen, OpenVZ o VMware. Debian Jessie lo incluye en sus repositorios mediante varios paquetes que apuntan a sus agentes o al núcleo de Archipel. Para más información, busque “archipel” mediante el Synaptic o mediante aptitude search archipel.
Otros enlaces de interés
- Open vSwitch: software de código abierto que permite la creación de un switch virtual.
- OpenStack:
- Open QRM: plataforma de código abierto de nueva generación para la administración de Centro de datos – Data Center.
- Docker: proyecto de código abierto capaz de automatizar el despliegue de aplicaciones dentro de contenedores de software.
- Proxmox: servidor de código abierto para ambientes de virtualización.
- VMware: filial de EMC Corporation (propiedad a su vez de Dell Inc) que proporciona software de virtualización disponible para ordenadores compatibles X86
- Virtualbox: software libre para la creación de máquinas virtuales. Debian trasladó los paquetes relacionados con éste software a su rama “contrib“.
- OpenNebula: ONE extiende los beneficios de las plataformas de virtualización desde un solo recurso físico hasta un banco de recursos, al desacoplar al servidor, no solamente de su infraestructura física, sino también de su localización física.
Los lectores que hayan tenido la amabilidad de leer detenidamente el artículo hasta esta línea, se habrán dado cuenta de lo amplio y complejo que es el universo actual de la Virtualización. Deseamos le sirva de guía en su viaje.
¿Próxima entrega?
¡Ahora sí va Qemu-KVM en Debian!
Recuerden que esta será una serie de artículos de Redes de Computadoras para las PYMES. ¡Los estaremos esperando!.
El artículo Virtualización en Debian: Introducción – Redes de Computadoras para las PYMES aparece primero en Virtualización en Debian: Introducción – Redes de Computadoras para las PYMES.