# Opennebula

OpenNebula es una plataforma cloud computing para administrar infraestructuras centro de datos heterogéneas distribuidas. La plataforma OpenNebula gestiona la infraestructura virtual de un centro de datos para construir implementaciones privadas, públicas e híbridas de infraestructura como servicio. Los dos usos principales de la plataforma OpenNebula son las soluciones de virtualización de centros de datos y las soluciones de infraestructura en la nube. La plataforma también es capaz de ofrecer la infraestructura de nube necesaria para operar una nube sobre las soluciones de administración de infraestructura existentes. OpenNebula es software libre y de código abierto, sujeto a los requisitos de la Licencia Apache versión 2.

## Historia

El Proyecto OpenNebula se inició como una empresa de investigación en 2005 por Ignacio M. Llorente y Ruben S. Montero. La primera versión pública del software ocurrió en 2008. Los objetivos de la investigación fueron crear soluciones eficientes para la gestión de máquinas virtuales en infraestructuras distribuidas. También era importante que estas soluciones tuvieran la capacidad de escalar a niveles altos. El desarrollo de Código abierto y una comunidad activa de desarrolladores han ayudado a madurar el proyecto. A medida que el proyecto iba madurando, comenzó a ser cada vez más adoptado y, en marzo de 2010, los principales autores del proyecto fundaron C12G Labs, ahora conocido como OpenNebula Systems, que brinda servicios profesionales de valor agregado a empresas que adoptan o utilizan OpenNebula.

## Descripción

OpenNebula organiza el almacenamiento, la red, la virtualización, el monitoreo y la seguridad tecnologías para implementar servicios de múltiples niveles (por ejemplo, clústeres de cómputo) como máquinas virtuales en infraestructuras distribuidas, combinando los recursos del centro de datos y los recursos remotos de la nube, de acuerdo con las políticas de asignación. Según el informe de 2010 de la Comisión Europea "... solo se han iniciado pocos proyectos de investigación dedicados a la nube en el sentido más amplio, el más prominente entre ellos probablemente OpenNebula ...".
El kit de herramientas incluye funciones para integración, administración, escalabilidad, seguridad y contabilidad. También reclama estandarización, interoperabilidad y portabilidad, brindando a los usuarios y administradores de la nube la opción de varias interfaces de nube (Amazon EC2 Consulta, OGF Nube abierta Interfaz de computación y vCloud) e hipervisores (Xen, KVM y VMware), y pueden acomodar múltiples combinaciones de hardware y software en un centro de datos.
OpenNebula fue una organización de mentores en Google Summer of Code 2010.
OpenNebula está patrocinado por OpenNebula Systems (anteriormente C12G).
OpenNebula es ampliamente utilizado por diversas industrias, incluidos proveedores de Internet, telecomunicaciones, servicios de tecnología de la información, supercomputación, laboratorios de investigación y proyectos internacionales de investigación. El proyecto OpenNebula también es utilizado por algunas otras soluciones de nube como motor de nube. OpenNebula ha crecido significativamente desde que se hizo público y ahora tiene muchos usuarios notables de una variedad de industrias.
Entre los usuarios notables de la industria de las telecomunicaciones e Internet se incluyen Akamai, Blackberry, Fuze, Telefónica e Internet.
Los usuarios de la industria de la tecnología de la información incluyen CA Technologies, Hewlett Packard Enterprise, Hitachi, Informatica, CentOS, Netways, Ippon Technologies, Terradue 2.0, Unisys, MAV Technologies, Liberologico, Etnetera, EDS Systems, Inovex, Bosstek, Datera, Saldab, Hash Include , Blackpoint, Deloitte, Sharx dc, Server Storage Solutions y NTS. Las soluciones gubernamentales que utilizan el proyecto OpenNebula incluyen la Biblioteca Central Nacional de Florencia, bDigital, Deutsch E-Post, RedIRIS, GRNET, Instituto Geográfico Nacional, CSIC, Gobex, ASAC Communications, KNAW, Junta de Andalucía, Flanders Environmental Agency, red.es, CENATIC, Milieuinfo, SIGMA y Computaex.
Entre los usuarios notables del sector financiero se incluyen TransUnion, Produpan, Axcess Financial, Farm Credit Services of America y Nasdaq Dubai.
Los usuarios de medios y juegos incluyen BBC, Unity, R.U.R., Crytek, iSpot.tv y Nordeus.
Los proveedores de alojamiento incluyen ON VPS, NBSP, Orion VM, CITEC, LibreIT, Quobis, Virtion, OnGrid, Altus, DMEx, LMD, HostColor, Handy Networks, BIT, Good Hosting, Avalon, noosvps, Opulent Cloud, PTisp, Ungleich.ch, TAS France, TeleData, CipherSpace, Nuxit, Cyon, Tentacle Networks, Virtiso BV, METANET, e-tugra, lunacloud, todoencloud, Echelon, Knight Point Systems, 2 Twelve Solutions y flexyz. SaaS y usuarios empresariales incluyen Scytl, LeadMesh, OptimalPath, RJMetrics, Carismatel, Sigma, GLOBALRAP, Runtastic, MOZ, Rentalia, Vibes, Yuterra, Best Buy, Roke, Intuit, Securitas Direct, Trivago y Booking.com.
Las implementaciones científicas y académicas incluyen Informática de Investigación FAS en la Universidad de Harvard, FermiLab, NIKHEF, LAL CNRS, DESY, INFN, IPB Halle, CSIRO, fccn, AIST, KISTI, KIT, ASTI, Fatec Lins, MIMOS, SZTAKI, Ciemat, SurfSARA, ESA , NASA, ScanEX, NCHC, CESGA, CRS4, PDC, CSUC, Instituto de Tecnología de Tokio, CSC, HPCI, Cerit-SC, LRZ, PIC, Telecom SUD París, Universidad Federal de Ceará, Instituto Superiore Mario Barella, Academia Sinica, UNACHI , UCM, Université Catholique de Louvain, Université de Strasbourg, ECMWF, EWE Tel, INAFTNG, TeideHPC, Cujae y Kent State University.
Los productos de la nube que utilizan OpenNebula incluyen ClassCat, HexaGrid, NodeWeaver, Impetus y ZeroNines.
El proyecto OpenNebula también se utiliza internacionalmente con fines de investigación. Los equipos de investigación internacionales utilizan la plataforma para estudiar los problemas potenciales en el uso y la implementación de proyectos de gestión de centros de datos y nube empresarial a gran escala. En 2010, la Comisión Europea observó que se habían iniciado muy pocos proyectos de investigación a gran escala centrados en aplicaciones en la nube, y señalaron que el mejor ejemplo de tal proyecto era OpenNebula.

## Desarrollo

El proyecto OpenNebula sigue un ciclo de lanzamiento rápido con el objetivo de ofrecer a los usuarios un acceso rápido a nuevas características e innovaciones. Las actualizaciones importantes generalmente ocurren una vez al año y cada actualización generalmente tiene 3-4 actualizaciones. El proyecto OpenNebula es totalmente de código abierto y es posible debido a la comunidad activa de desarrolladores detrás del proyecto.

### Historial de versiones

'Versión 4.4' , lanzada en 2014, trajo una serie de innovaciones en Open Cloud, mejoró cloud bursting, e implementó el uso de múltiples almacenes de datos del sistema para Políticas de carga de almacenamiento.
'Versión 4.6' permitía a los usuarios tener diferentes instancias de OpenNebula en centros de datos geográficamente dispersos y diferentes, esto se conocía como la Federación de OpenNebula. También se introdujo un nuevo portal en la nube para consumidores de la nube y, en el mercado de aplicaciones, se proporcionó soporte para importar OVA.
'Versión 4.8' comenzó a ofrecer soporte para Microsoft Azure e IBM. Los desarrolladores también continuaron evolucionando y mejorando la plataforma al incorporar el soporte para OneFlow en la vista de la nube. Esto significaba que los usuarios finales ahora podían definir las aplicaciones y servicios de máquinas virtuales de manera elástica.
'Versión 4.10' integró el portal de soporte con la GUI de SunStone. El token de inicio de sesión también se desarrolló y se brindó soporte para VMS y vCenter.
'Versión 4.12' ofreció una nueva funcionalidad para implementar grupos de seguridad y mejorar la integración de vCenter. El modelo Show Back también se implementó para rastrear y analizar nubes debido a diferentes departamentos.
'La versión 4.14' introdujo un código de interfaz gráfica recientemente rediseñado y modularizado, Sunstone. El objetivo era mejorar la legibilidad del código y facilitar la tarea de agregar nuevos componentes.

### Hitos

'2005' - Ignacio M. Llorente y Ruben S. Montero establecen OpenNebula como un proyecto de investigación en España.
'2008' - Se crea la comunidad de código abierto OpenNebula y se lanza OpenNebula al público.
'Marzo de 2010' : C12G Labs se fundó para brindar servicios a empresas que utilizan la plataforma OpenNebula.
'Verano 2010' : Google Summer of Code 2010 presenta a OpenNebula como una organización de mentores.
'Septiembre 2013' - OpenNebula organiza su primera conferencia comunitaria.
'2013 - 2014' : se llevó a cabo una implementación de producción a gran escala y Softlayer y Microsoft Azure se convirtieron en socios de la nube híbrida de OpenNebula.

## Características

El proyecto OpenNebula se centra en proporcionar una plataforma de computación en la nube con todas las funciones de una manera simplificada y fácil de usar. Las siguientes características están disponibles en la plataforma.

### Interfaces para consumidores y administradores en la nube

* Hay varios API disponibles para la plataforma, incluidos AWS EC2, EBS y OGF OCCI.
* Una interfaz de línea de comandos potente, pero familiar basada en UNIX está disponible para los administradores.
* Más facilidad de uso está disponible a través del Portal SunStone, una interfaz gráfica para usuarios de la nube y administradores de centros de datos.

### Mercado de aplicaciones

* OpenNebula Marketplace ofrece una amplia variedad de aplicaciones capaces de ejecutarse en entornos OpenNebula.
* Se puede implementar un catálogo privado de aplicaciones en las instancias de OpenNebula.
* El mercado está completamente integrado con la interfaz gráfica de SunStone.

### Gestión de capacidad y rendimiento

* La asignación de recursos es posible a través de ACL de grano fino.
* La administración de cuotas de recursos permite a los usuarios realizar un seguimiento y limitar el uso de los recursos de computación, almacenamiento y redes.
* El equilibrio de carga, la alta disponibilidad y la computación de alto rendimiento son posibles a través de la creación dinámica de clústeres que comparten almacenes de datos y redes virtuales.
* La creación dinámica de centros de datos virtuales permite a un grupo de usuarios, bajo el control de un administrador central, la capacidad de crear y administrar la capacidad informática, de almacenamiento y de redes.
* Un potente componente de programación permite la administración de tareas basadas en la disponibilidad de recursos.

### Seguridad

* La ACL ajustada, las cuotas de usuario y la potente administración de usuarios, grupos y roles garantizan una seguridad sólida.
* La plataforma se integra completamente con los servicios de administración de usuarios como LDAP y Active Directory. También se admiten un nombre de usuario y una contraseña incorporados, SSH y X.509.
* La funcionalidad de token de inicio de sesión, la auditoría detallada y la capacidad de aislar varios niveles también proporcionan mayores niveles de seguridad.

### Integración con herramientas de terceros

* La plataforma cuenta con una arquitectura modular y extensible que permite que las herramientas de terceros se integren fácilmente.
* Los complementos personalizados están disponibles para la integración de cualquier servicio de centro de datos de terceros.
* Una serie de API permiten la integración de herramientas como la facturación y los portales de autoservicio.

## Arquitectura interna
### Componentes básicos

'Host:' Máquina física que ejecuta un hypervisor.
'Cluster:' Pool de hosts que comparten almacenes de datos y redes virtuales.
'Plantilla:' Definición de máquina virtual.
'Imagen:' Imagen de disco de la máquina virtual.
'Máquina virtual:' Plantilla instanciada. Una máquina virtual representa un ciclo de vida, y se pueden crear varias máquinas virtuales a partir de una única plantilla.
'Red virtual:' Un grupo de concesiones de IP que las máquinas virtuales pueden usar para obtener direcciones IP automáticamente. Permite la creación de Redes Virtuales mediante mapeo sobre las físicas. Estarán disponibles para las máquinas virtuales a través de los puentes correspondientes en los hosts. La red virtual se puede definir en tres partes diferentes:
* Subyacente a la infraestructura de red física.
* El espacio de direcciones lógicas disponible (IPv4, IPv6, pila doble).
* Atributos de contexto (por ejemplo, máscara de red, DNS, puerta de enlace). OpenNebula también viene con un dispositivo de enrutador virtual para proporcionar servicios de red como DHCP, DNS, etc.

## Componentes y modelo de implementación

El modelo de implementación de OpenNebula Project se parece a la arquitectura de clúster clásica que utiliza
* Un front-end (nodo maestro)
* Hosts habilitados por hipervisor (nodos de trabajo)
* Almacenes de datos
* Una red física.

### Máquina frontal

El nodo maestro, a veces denominado máquina de front-end, ejecuta todos los servicios de OpenNebula. Esta es la máquina real donde está instalado OpenNebula. Los servicios de OpenNebula en la máquina de aplicaciones para el usuario incluyen el demonio de administración (oned), el programador (sched), el servidor de interfaz web (servidor Sunstone) y otros componentes avanzados. Estos servicios son responsables de poner en cola, programar y enviar trabajos a otras máquinas en el clúster. El nodo maestro también proporciona los mecanismos para gestionar todo el sistema. Esto incluye agregar máquinas virtuales, monitorear el estado de las máquinas virtuales, alojar el repositorio y transferir máquinas virtuales cuando sea necesario. Gran parte de esto es posible debido a un subsistema de monitoreo que recopila información como el estado del host, el rendimiento y el uso de la capacidad. El sistema es altamente escalable y solo está limitado por el rendimiento del servidor real.

### Hipervisor habilitado-hosts

Los nodos de trabajo, o los hosts habilitados para el hipervisor, proporcionan los recursos informáticos reales necesarios para procesar todos los trabajos enviados por el nodo maestro. Los hosts habilitados para el hipervisor OpenNebula utilizan un hipervisor de virtualización como Vmware, Xen o KVM. El hipervisor KVM se admite de forma nativa y se utiliza de forma predeterminada. Los hosts de virtualización son las máquinas físicas que ejecutan las máquinas virtuales y varias plataformas se pueden usar con OpenNebula. Un subsistema de virtualización interactúa con estos hosts para realizar las acciones que necesita el nodo maestro.

### Almacenamiento

Los almacenes de datos simplemente contienen las imágenes base de las máquinas virtuales. Los almacenes de datos deben ser accesibles para el front-end, esto puede lograrse mediante el uso de una de las diversas tecnologías disponibles, como NAS, SAN o almacenamiento de conexión directa.
OpenNebula incluye tres clases diferentes de almacén de datos, incluidos los almacenes de datos del sistema, los almacenes de datos de imágenes y los almacenes de datos de archivos. Los almacenes de datos del sistema contienen las imágenes utilizadas para ejecutar las máquinas virtuales. Las imágenes pueden ser copias completas de una imagen original, deltas o enlaces simbólicos, según la tecnología de almacenamiento utilizada. Los almacenes de datos de imágenes se utilizan para almacenar el repositorio de imágenes de disco. Las imágenes de los almacenes de datos de imagen se mueven hacia o desde el almacén de datos del sistema cuando las máquinas virtuales se implementan o manipulan. El almacén de datos de archivos se utiliza para archivos normales y, a menudo, se utiliza para kernels, discos RAM o archivos de contexto.

### Redes físicas

Se requieren redes físicas para admitir la interconexión de servidores de almacenamiento y máquinas virtuales en ubicaciones remotas. También es esencial que la máquina de front-end pueda conectarse a todos los nodos de trabajo o hosts. Como mínimo, se requieren dos redes físicas, ya que OpenNebula requiere una red de servicio y una red de instancia. La máquina de aplicaciones para usuario utiliza la red de servicio para acceder a los hosts, administrar y monitorear los hipervisores, y para mover archivos de imagen. La red de instancias permite que las máquinas virtuales se conecten a través de diferentes hosts. El subsistema de red de OpenNebula es fácilmente personalizable para permitir una fácil adaptación a los centros de datos existentes.