Bienvenido a un nuevo artículo en el que vamos hablar de como funciona el sistema multi-nodo en Openstack.

Una de las cosas más difíciles que tiene Openstack es comprender como funciona su arquitectura. Y es difícil porque no existe una arquitectura cerrada como tal, ni una obligación de instalar cada cosa en un sitio.

En VMware vSphere la instalación es clara. ESXi por un lado, vCenter por el otro, extras por otro.

Pero en Openstack esto no es igual: Tienes una total libertad para elegir no sólo la escalabilidad horizontal (suma de nodos, hypervisores, etc), sino también en donde vas a instalar cada componente.

Esto hace que Openstack sea un sistema totalmente personalizado, pero a la vez complejo.

Si todavía no sabes muy bien que es Openstack, te lo aclaro en este artículo.

 

Instalación Allinone vs instalación multi-nodo en Openstack

Si acabas de empezar en el mundo de Openstack, todo el mundo te dirá que lo mejor que puedes hacer es instalar una versión allinone como Devstack (ubuntu) o Packstack (Centos/Red Hat).

Estas versiones facilitan mucho la instalación ya que con unos pocos comandos tienes montado un entorno Openstack completo.

Si todavía no la tienes, te dejo la guía de como instalar Openstack Packstack

A parte de facilitar la instalación, estas versiones lo que hacen son instalar todos los componentes de Openstack en un mismo nodo.

Obviamente, esto para montar un entorno de desarrollo o de pruebas para aprender es magnífico, pero para un entorno de producción….es arriesgado.

Aunque Packstack te permite añadir nodos de computo (es decir hypervisores), sigues teniendo el problema de que el resto de componentes no están escalados.

Si falla el nodo controlador (es decir donde has instalado tu sistema allinone), adiós a tu sistema.

Por eso en entornos de producción lo que se hace es instalar un entorno bastante complejo en el que se hacen 2 cosas:

  1. Separar los componentes.
  2. Montar un sistema HA (alta disponibilidad) entre los nodos para conseguir repartir la carga (activo/activo) o para levantar el servicio en caso de que uno de los nodos caiga (activo/pasivo).

 

Por supuesto todo esto lo enfoco a empresas grandes.

Una empresa pequeña no puede plantearse tener 200 nodos, por lo que quizá una instalación allinone y agregando nodos de computo (hypervisores) puede ser suficiente, aunque yo intentaría siempre tener al menos 2 nodos controladores con HA aunque tengas que integrar todos los componentes en él.

 

La base del sistema multi-nodo en Openstack

Ahora que tenemos claro que separar los nodos en Openstack es siempre una buena idea en entornos de producción, vamos a ver de que manera podemos plantear este sistema multinodo en nuestra plataforma Openstack.

Para ello, aunque como te he dicho al principio esto es totalmente libre y abierto y no hay una norma obligatoria, se suele seguir una base a la hora de dividir nuestros nodos.

Esta base o teoría dice que debemos dividir nuestros nodos al menos en 3 de la siguiente manera:

multi-nodo en openstack

  1. Nodo controlador que es la base de nuestro sistema. Esto nodo debe contener al menos Nova (que por si no lo tienes claro es el gestor de todo el sistema Openstack) y suele integrar Keystone, Glance y Horizon. Dependiendo de lo grande que sea tu sistema, puedes integrar Cinder y Swift (block y object storage) en este nodo, pero los entornos grandes intentan separarlo en nodos independientes para cada uno.
  2. Nodo network o de red en el que se suele instalar Neutron.
  3. Nodo de computo o hypervisor en el que irá instalado el hypervisor que se elija (KVM, QEMU…) y una api de Nova para gestionarlo. Además tiene que llevar instalados los plugins de Neutron que vayamos a utilizar.

Todos estos nodos deberían estar conectados entre si por una red independiente de administración.

Una forma de representar gráficamente este sistema podría ser de la siguiente manera:

3 nodos en openstack

Por supuesto estos nodos podrían escalararse horinzontalmente, es decir añadir nodos iguales para aumentar la carga. Por ejemplo de esta forma:

multinodo en openstack

Repito: Esto es solo una idea. No tienes porque instalar tu sistema Openstack así.

Lo que hace potente a Openstack es que todo esto es personalizable a tu proyecto.

 

Cómo plantear un entorno multi-nodo Openstack en producción 100% efectivo

El entorno para mi que una empresa grande debería plantearse es el siguiente.

5 nodos con HA implementados divididos en:

  • Nodo controlador
  • Nodo de red
  • Nodo de computo
  • Nodo de almacenamiento en bloque
  • Nodo de almacenamiento de objetos

Esto podría representarse de esta manera:

5 nodos en openstackPor supuesto a esto habría que añadir Nodos horizontalmente para mejorar la carga o la disponibilidad en caso de caída.

Por si no te ha quedado claro todavía, añadir nodos horizontalmente es añadir nodos iguales a los que tienes en la imagen. Por ejemplo: 20 nodos controller, 15 nodos network, 200 nodos de computo, 40 de almacenamiento en bloque y 100 de objeto.

Si tienes mas componentes de Openstack, deberías valorar si añadirlos a tu sistema de 5 nodos escalable, o si agregar un nodo para ello.

Conclusión del sistema multi-nodo en Openstack

La conclusión es que tu sistema puede ser como tú quieras y como tu proyecto necesite.

Por supuesto diseñar esta arquitectura requiere unos conocimientos avanzados de Red, Almacenamiento y computo que no está al alcance de todo el mundo.

Por eso debes entender que administrar y diseñar Openstack son cosas muy distintas.

Un administrador no debe saber hacer todo esto, debe saber administrarlo, y de hecho en la certificación COA no te van a pedir en ningún momento que sepas instalar Openstack.

Si quieres saber más sobre el sistema multi-nodo en Openstack, hablo de manera mucho más extensa en el curso Openstack desde Cero.

Por supuesto, en la documentación oficial de Openstack también tienes mucha información, y si te atreves y tienes un pc con buenos recursos, puedes seguir adelante e instalar tu propio sistema multi-nodo.

¡Si te ha gustado comparte y te espero en el próximo artículo!

Compartir
CEO y fundador de Virtualiza Desde Zero. Soy Formador y Consultor Especialista en Virtualización y Cloud Computing. Profesor Oficial de Microsoft (MCT) y VMware It Academy. Entre mis certificaciones y premios cuento con el vExpert2017-2022, VCP-DCV 2022 desde la 5, Azure Solutions Architect Expert y Certified Openstack Administrator entre muchas otras. A mis espaldas, más de 12 años de experiencia en el mundo de la virtualización y el Cloud. Los perros, la montaña y el SEO, son mis otras pasiones.