OpenStack: esto si es cloud!

Hace unos días me preguntaron si con Linux se puede virtualizar! LOL

Básicamente lo que querían era algo tipo vSphere pero barato (gratis) y con un buen performance. En GNU/Linux básicamente tenemos dos hipervisores a elegir: KVM y XEN. EL primero parece ser el elegido por Canonical o Red Hat entre otros por la integración con el Kernel de Linux. XEN por su lado esta mas ampliamente implementado en grandes infraestructuras como las de Amazon o Rackspace. Además, existe otra opción, la del uso de contenedores de Linux (LXC). No se trata de un modelo que haga uso de un hipervisor, sino que se comparte el Kernel y los recursos entre la máquina anfitriona y los huéspedes.

Viendo todas las posibilidades que existían me puse a investigar algo mas sobre algún tipo de software que permitiera una gestión mas amigable y sin la necesidad de andar todo el tiempo desde linea de comandos. Encontré varias opciones para montar clouds privadas, pero la que mas me llamó la atención fue Openstack.

Openstack es una suite de herramientas que permiten la creación de clouds privadas, públicas e híbridas. Empezó su desarrollo como un proyecto Open Source patrocinado por Rackspace y la NASA. Al tiempo la NASA abandona su desarrollo para centrarse mas en el uso como cliente, pero Rackspace continua con él y poco a poco empieza a recibir colaboraciones de muchas empresas (algunas de ellas algo conocidas: AMD, Intel, Caonical, Suse Linux, Red Hat, Cisco, Dell, HP, IBM, NEC, Yahoo!, etc hasta mas de 150).

Como principales ventajas del uso de Openstack frente a otras soluciones creo que se podrían destacar las siguientes:

  1. Se trata de un sistema abierto, un proyecto Open Source con licencia Apache 2.0. Quizás sea uno de los proyectos Open Source con un mayor crecimiento e implicación por parte de las grandes corporaciones
  2. Cuenta con una gran comunidad. Actualmente cerca de 6700 colaboradores de 87 paises. 
  3. Existe mucha información, principalmente en la Wiki del proyecto Openstack
  4. Elimina el “Vendor Locking”. El uso de Openstack no esta ligado a ningún fabricante ni proveedor de software. Se puede utilizar con diferentes hipervisores como KVM, XEN, HyperV o vSphere.
  5. Permite la federación de nubes, algo que puede ser interesante si se quiere tener una infraestructura híbrida.
  6. Como la mayoria de los desarrollos Open Source, tiene un compromiso hacia los estándares. 
  7. Existe gente que dice que es el “Linux of the cloud”, haciendo una analogía entre lo que es actualmente Linux y lo que quiere llegar a ser Openstack.

La arquitectura de Openstack es modular, pudiendo instalar todos ellos en un único host o por separado. Esto dependerá del tamaño y el objetivo de la cloud. Para entornos de pruebas lo normal es instalarlo todo en un único nodo.

Los componentes que forman la arquitectura son:

  1. Openstack Compute: Nova. Es el cerebro de la arquitectura y la que permite el control de la nube. Se debe instalar en cada nodo que vaya a formar parte del cloud.
  2. Openstack Object Storage: Swift. Es un sistema de almacenamiento escalable y altamente redundante.
  3. Openstack Image Service: Glance. Repositorio de imagenes y snapshots. Las imagenes sirven como plantillas para la generación de nuevos servidores
  4. Openstack Identity: Keystone. Proporciona un directorio central de usuarios y actua como principal sistema de autenticación.
  5. Openstack Dashboard: Horizon. Proporciona una interfaz gráfica a los usuarios.
  6. Openstack Networking: Quantum (aka nova-network). Se encarga de la gestión de las redes y las direcciones IP que se le asignarán a las instancias.
  7. Openstack Block Storage: Cinder (aka nova-volume). Proporciona un almacenamiento a nivel de bloque persistente. Además se encarga de la creación y el agregado de dichos volúmenes a las instancias.

 En el siguiente gráfico se puede ver la relación entre ellos:

Para hacer pruebas se puede seguir la guia que han desarrollado entre varios institutos: Cloud – IES Gonzalo Nazareno o utilizar una ISO con todo instalado. Tendremos dos opciones:

  1. StackOps Community Edition : CD instalable basado en Ubuntu de la empresa española StackOps para la preparación de entornos de test.        
  2. Ubuntu Cloud Live : Imagen Live con todo ya instalado. En el desktop puedes encontrar las instrucciones para arrancar.

Se puede encontrar mucha información en internet sobre el proyecto, aunque en español escasea. Existen 2 grupos de google, uno español y otro argentino, y recientemente he creado una comunidad en Google+ (espero que empiece a tener algo de vida!):

spain-openstack-user-group@googlegroups.com
openstack-argentina@googlegroups.com
 Comunidad OpenStack en Español

En próximas entradas iré comentando mis experiencias y las configuraciones que he ido probando.

Links de interes:
Página oficial del proyecto: http://www.openstack.org/
Cuenta de twitter oficial: https://twitter.com/OpenStack
Entrada en wikipedia: http://en.wikipedia.org/wiki/OpenStack
Ubuntu cloud: http://www.ubuntu.com/cloud/private-cloud/openstack
Rackspace: http://www.rackspace.com/cloud/openstack/
Proyecto cloud en educación: http://www.gonzalonazareno.org/cloud/