Você está na página 1de 8

Victoria Martnez de la

Cruz

En pocas palabras: Cmo


funciona OpenStack?

En pocas palabras: Cmo funciona


OpenStack?
Querer explicar qu es y cmo funciona OpenStack en un artculo corto es
una idea muy poco realista, sin embargo voy a hacer el intento de dejar
por escrito una breve descripcin de los componentes presentes en un
entorno estndar y la forma en la que estos se comunican para dar vida a
lo que conocemos como nube.

Qu es OpenStack?
OpenStack es una solucin de cloud computing del tipo IaaS de cdigo
abierto.

Su misin es proveer una solucin flexible tanto para nubes pblicas


como privadas, sean estas de cualquier tamao, y para esto se
consideran dos requerimientos bsicos: las nubes deben ser simples de
implementar y masivamente escalables.

Para cumplir con estos principios OpenStack est divido en diferentes


componentes que trabajan en conjunto. Esta integracin es lograda a
travs de interfaces de programacin de aplicaciones APIs que cada
servicio ofrece y consume.

Gracias a estas APIs, los servicios pueden comunicarse entre ellos y


adems se posibilita que un servicio sea reemplazado por otro de
similares caractersticas siempre que se respete la forma de
comunicacin. Es decir, OpenStack es extensible y se ajusta a las
necesidades de quien desee implementarlo.
Su estructura
Las relaciones entre los servicios en OpenStack puede verse
conceptualmente como sigue

OpenStack Folsom Conceptual View por Ken Pepple

Esta es una vista simplificada de la arquitectura, asumiendo que se


utilizan todos los servicios en la configuracin ms estndar. Tampoco
ilustra como los consumidores de la nube pueden interactuar con ella.

Los siguientes componentes pueden visualizarse en la grfica

Horizon Dashboard provee una interfaz a los usuarios finales y al


administrador a los otros servicios. Es el servicio en el que
actualmente me encuentro trabajando ;)
Nova Compute recupera imgenes y metadatos asociados, y
transforma los pedidos de los usuarios en mquinas virtuales.
Quantum Network provee redes virtuales como servicio entre
dispositivos administrados por otros servicios de OpenStack, como
puede ser una mquina virtual de Nova. Permite a los usuarios
crear sus propias redes y luego vincularlas con los dispositivos que
deseen.
Cinder Block Storage provee almacenamiento persistente a las VMs
alojadas en la nube.
Glance Image provee un catlogo y un repositorio para las
imgenes.
Swift Object Store provee almacenamiento de objetos. Esto no es un
sistema de archivos, es ms bien como un contenedor en el que se
pueden almacenar archivos y recuperarlos luego.
Keystone Identity provee autenticacin y autorizacin para todos los
servicios de OpenStack, y tambin un catlogo de estos servicios de
una nube en particular.
OpenStack Software Diagram por OpenStack

Datos generales: componentes principales de


cada servicio
Horizon Dashboard

Es una aplicacin web Django, un web framework para


perfeccionistas ;) Todos aquellos que esten familiarizados con este
framework encontrarn el cdigo de Horizon muy fcil de
comprender.
Se encuentra implementado a travs de mod_wsgi en Apache.
mod_wsgi implementa un modulo de Apache simple de usar capaz
de alojar cualquier aplicacin desarrollada en Python que soporte la
interfaz WSGI.
Web Server Gateway Interface WSGI es una especificacin para que
servidores de aplicaciones y servidores web se comuniquen con
aplicaciones web.

WSGI middleware por Pylons

El cdigo se encuentra divido en mdulos reutilizables con la lgica,


interaccin con las APIs, y la presentacin, para facilitar la
personalizacin en diferentes sitios.
Tambin posee una pequea base de datos, por defecto SQLite3,
para algunas opciones, pero la mayora de los datos son provistos
por los otros servicios.
Horizon es una implementacin del Dashboard, no el Dashboard en
s mismo. Pueden hacerse distintas implementaciones que se
ajusten a las necesidades del usuario.

Nova Compute
Openstack Compute por Rackspace

El cliente nova-api acepta y responde a las llamadas del usuario


final.
La virtualizacin es administrada por nova-compute. Crea/finaliza
las instancias de VMs a travs de la API del hipervisor utilizado.
El almacenamiento es controlado por nova-volume (ahora
reemplazado por Cinder). Administra la creacin, vinculacin y
desvinculacin de volmenes de almacenamiento persistente a
instancias.
Las redes son gestionadas por nova-network (ahora reemplazado
por Quantum). Acepta tareas relacionadas a redes y las ejecuta.
La planificacin es realizada por nova-schedule. Toma los pedidos
de VMs de la cola y determina dnde debera ejecutarse.
La cola, por defecto RabbitMQ, es el nodo central para el pasaje de
mensajes entre daemons.
Tambin dispone de una base de datos que almacena la mayora de
los datos de estado de compilacin y ejecucin.
nova-consoleauth, nova-novncproxy, nova-console permiten a
los usuarios acceder a las instancias virtuales a travs de un proxy.
Al crear una instancia debern seleccionar entre las opciones de
configuraciones de recursos virtuales disponibles, llamadas flavors.
Luego, pueden agregarse recursos como volmenes de
almacenamiento persistente y direcciones IP pblicas.

Swift Object Storage


OpenStack Object Storage por Rackspace

Antes de hablar sobre los componentes de Swift

Qu es un objeto?

Esta nocin es fundamental para entender este servicio puesto que la


administracin de objetos es su principal objetivo.

Un objeto es una entidad que contiene informacin, pero a diferencia de


los archivos con los que usualmente trabajamos, los objetos no son
organizados en una jerarqua.

Cada objeto existe en el mismo nivel en un espacio de direcciones


llamado pool de almacenamiento. Un objeto no puede ser almacenado
dentro de otro objeto.

Tanto los archivos como los objetos tienen metadatos asociados a los
datos que contienen, pero los objetos son caracterizados por tener
metadatos extendidos. Cada objeto tiene asignado un identificador nico
que permite a un servidor o usuario final recuperarlo sin necesidad de
conocer la ubicacin fsica de la informacin. Esto es muy til para
automatizar y racionalizar almacenamiento de datos en entornos de
cloud computing.

Usualmente se compara el almacenamiento de objetos con el


estacionamiento en un restaurant. Cuando un cliente solicita este
servicio, intercambia las llaves de su auto por un recibo. El cliente no
conoce dnde ser estacionado su auto o cuntas veces el encargado
mover su auto mientras el cena. En esta analoga, el identificador nico
de los objetos est representado por el recibo.

Volviendo a Swift, podemos mencionar

El servidor proxy se encarga de aceptar los pedidos entrantes, como


archivos para subir, modificaciones a los metadatos o creacin de
contenedores; tambin provee archivos y un listado de los
contenedores.
El servidor de cuentas maneja las cuentas asociadas con el servicio.
El servidor de contenedores realiza un mapeo de los contenedores,
carpetas, dentro del servicio.
El servidor de objectos administra los objectos, archivos.
Tambin se corren servicios de replicacin, para proveer
consistencia y disponibilidad a travs del cluster, auditora y
actualizacin.

Glance Image Store

En este caso tambin

Qu es una imagen?

Una imagen es un archivo nico que contiene los contenidos y la


estructura completa de un medio de almacenamiento. Es una copia
idntica de un sistema de archivos.

Las imgenes son utilizadas frecuentemente como medio de distribucin


para sistemas operativos e instancias (un momento de ejecucin
determinado) de los mismos. Estos ltimos son tpicamente llamados
snapshots.

Dicho de otro modo, los snapshots son instancias en ejecucin que


pueden ser obtenidas creando una nueva imagen basada en el estado
actual del disco de una instancia en particular.

Dentro de Glance encontraremos,

glance-api acepta los pedidos para la bsqueda, obtencin y


almacenamiento de imgenes.
El registro de almacenamiento glance-registry procesa y recupera
los metadatos de las imgenes.
Posee una base de datos para los metadatos de las imgenes.
Tambin se corren servicios de replicacin, para proveer
consistencia y disponibilidad a travs del cluster, auditora y
actualizacin.

Keystone Identity

keystone se encarga tanto de manejar los pedidos de la API as


como tambin provee un nico punto de integracin para las
polticas de OpenStack, catlogos de los servicios, token y
autenticacin.
Cada funcin de Keystone tiene un backend vinculable que permite
diferentes formas de usar el servicio. Se brinda soporte para los
backends estndares como LDAP o SQL, y KVS (Key-Value Stores).

Quantum Network
quantum-server acepta pedidos de la API y los enruta hacia los
plugins de Quantum que correspondan.
Los plugins y agentes de Quantum son los encargados de realizar
las tareas, como enchufar/desenchufar puertos, crear redes y
subredes y direccionamiento de IPs.
Tambin dispone de una cola para enrutar informacin entre el
quantum-server y los distintos agentes.
Posee una base de datos para almacenar el estado de determinados
plugins.

Cinder Block Storage

La API de Cinder permite la manipulacin de volmenes, tipos de


volmenes y snapshots. cinder-api acepta los pedidos y los enruta
a cinder-volume para ser procesados.
cinder-volume reacciona leyendo o escribiendo a la base de datos
que mantiene el estado, interacta con otros procesos (como el
cinder-scheduler) a travs de la cola de mensajes y directamente
actua sobre el almacenamiento proveyendo hardware o software.
cinder-scheduler selecciona el nodo para el almacenamiento por
bloques ptimo para la creacin de un volumen sobre el.
La cola de mensajes enruta informacin entre los procesos de
Cinder.
Una base de datos almacena el estado de los volmenes.

Todos estos componentes y la forma en la que se relacionan pueden


verse en su configuracin ms simple en el siguiente gafico

OpenStack Folsom Logical View por Ken Pepple

Probablemente quieran abrir la imagen en otra pestaa son


demasiadas relaciones! Y como les dije, es una visin simplificada.
Estoy muy segura de que muchas cosas quedaron pendientes soy
consciente de que la descripcin de Keystone es bastante pobre, ya la
voy a mejorar! -, pero espero por lo menos haber preparado el terreno
para los prximos artculos, ms especficos y con ms cuestiones
tcnicas.

Via | OpenStack Manuals, Rackspace, TechTarget y Techrepublic

Las imgenes que no tienen leyenda son de OpenStack.

Você também pode gostar