Implementación de un controlador de VirtualBox para OpenNebula

El "Cloud Computing" ("Computacion en la Nube") se ha convertido en el nuevo paradigma tecnologico de la decada. Las ventajas son palpables -optimizacion de los recursos, diversificacion de los servicios, independencia real entre hardware y software, adaptacion en tiempo real a las demandas de capacidad y la flexibilidad. - y han hecho que esa cosa conocida como "la nube" se este convirtiendo en el lugar en el que muchos proveedores almacenan sus datos y desde el que ofrecen sus servicios. Este proyecto se sumerge de lleno en "la nube" y explora tanto el ambito de aplicacion -publico/privado-, como los diferentes servicios para los que se utiliza: software como servicio "SaaS", plataforma como servicio "PaaS", infraestructura como servicio "IaaS". Centrandose en este ultimo, se estudian algunas de las aplicaciones software que hacen posible la IaaS, es decir, que posibilitan la utilizacion de diversos recursos fisicos (procesadores, memorias,discos duros) por multiples clientes (sistemas operativos, programas.): OpenStack, Eucalyptus, VMware y, mas en profundidad, OpenNebula. De la mano de esta ultima, revisamos las soluciones de virtualizacion (hipervisores) mas populares y que permiten la utilizacion del hardware por multiples sistemas operativos al mismo tiempo. Centraran nuestra atencion KVM, XEN, VMware y, sobre todo, VirtualBox. El grueso de nuestro trabajo estara en el desarrollo de un "driver" de VirtualBox para OpenNebula. Mediante este driver, OpenNebula sera capaz de crear, monitorizar, administrar y migrar maquinas virtuales que funcionan sobre VirtualBox. El driver de VirtualBox, escrito en Ruby e integrado a modo de "plugin", sera totalmente independiente de OpenNebula y facilmente instalable. Tomando como base las descripciones en XML de maquinas virtuales generadas por OpenNebula, interactuara directamente con VirtualBox a traves de la interfaz de linea de comandos que ofrece. Evitaremos asi la utilizacion de capas intermedias (como libvirt), y procuramos un mayor control sobre las acciones que se realizan. De esta manera, conseguimos ampliar las posibilidades de utilizacion de OpenNebula con una caracteristica demandada por su comunidad de usuarios, aumentando su versatilidad y habilitando a VirtualBox como una opcion mas de virtualizacion dentro del campo de la "IaaS". [ABSTRACT] Cloud Computing has become the new technological paradigm of the decade. The advantages are real (resource optimization, diversification of services, real independence between hardware and software, real-time response to the capacity and flexibility demands) and have made that many providers keep their data and offer their services from that thing known as “The Cloud”. This project dives into The Cloud, and explores both the public/private use case and the different services supported: Software As A Service (SaaS), Platform As A Service (PaaS), Infrastructure As a Service (IaaS). Paying attention to the latter, some of the applications making IaaS possbile are studied. These applications allow the use of several physical resources (processors, memories, storage) by multiple clients (operating systems, software.). OpenStack, Eucalyptus, VMware and OpenNebula, in which we will go in depth, are some of them. Hand in hand with OpenNebula, we will explore the most popular virtualization solutions (hypervisors) which allow the use of a single piece of hardware by several operating systems at the same time, together with the management and assignment of its resources. We will mention KVM, XEN, VMware and above all, VirtualBox. Our work will be focused on the development of a VirtualBox driver for OpenNebula. Using this driver, OpenNebula will be able to create, monitor, manage and migrate virtual machines running on VirtualBox. The VirtualBox driver, written in Ruby and pluggable to the OpenNebula installation, will be totally independent and will come with an easy setup. Taking the XML virtual machine’s descriptions generated by OpenNebula as the starting point, the driver will communicate directly with VirtualBox through its command line interface. This way, we will avoid using extra layers (such as libvirt) and gain greater control over the actions that are runned. By making VirtualBox one more option for IaaS virtualization, we will manage to increase OpenNebula’s versatility and use cases and give answer to a feature which was requested by its user community.