You are on page 1of 3

PORTADA OpenStack

El framework de computacin en la nube OpenStack

OpenStack eleva a las nubes tec-

EN LA PILA

nologas de virtualizacin como KVM, Xen, Hyper-V o QEMU. POR RAMON WARTALA

e est librando una fiera batalla en el mundo de las tecnologas de la informacin, y no tiene nada que ver con los sistemas operativos para mviles o sus encarnaciones en hardware. En esta batalla se disputa el futuro liderazgo en computacin en la nube. Esta popular frase hecha ha conseguido despertar la imaginacin de analistas [1], consultores [2], fabricantes de hardware, operadores de centros de datos y directores de sistemas de grandes multinacionales. Esta insistente euforia tiene su base en el sueo de ajustar las capacidades de computacin y de almacenamiento a la demanda de las mismas. Amazon populariz este modelo con su EC2 (Elastic Cloud), empleando servicios en la nube para generar beneficios con la capacidad en desuso del almacn en lnea en las temporadas de menos demanda. La competencia no tard en imitarles, ofreciendo sus propios servicios en la nube, incluso los proveedores de servicios de hosting clsicos. Al conjunto de estos servicios se les conoce como nubes pblicas: una nube de computadoras y de almacenamiento que ofrece servicios bajo demanda, tarificados segn

el consumo, a cualquiera que disponga de fondos en su tarjeta de crdito. La creciente necesidad de mejorar la seguridad y los controles de acceso deriv rpidamente en un deseo de llevar estas tecnologas al mbito privado. El concepto de nube privada consiste en crear una nube dentro de la propia red que permita un uso ptimo de los recursos existentes con la misma escalabilidad y tolerancia a fallos que en los servicios de nube comerciales. Idealmente, la nube privada lleva a cabo sus comunicaciones a travs de la misma interfaz que el servicio pblico, posibilitando el diseo de nubes interactivas que permiten

trabajar con normalidad en la nube privada mientras que se dispone de recursos pblicos para los momentos de mayor demanda (balanceo nebular). La iniciativa OpenStack, cuyo proyecto arranc en Julio de 2010 de manos de un proveedor de servicios de hosting llamado Rackspace, de la NASA, as como de otros partners, naci con el objetivo de proporcionar una capa IaaS (Infrastructure as Service) para la nube, virtualizando los diferentes componentes de hardware y hacindolos disponibles a travs de una API estndar. La primera publicacin de OpenStack, bautizada con el sobrenombre de Austin, tuvo lugar el da 22 de Octubre del pasado ao [3]. El proyecto OpenStack consta principalmente de dos componentes: OpenStack Compute es un conjunto de herramientas para el provisionamiento de instancias virtuales y la gestin del entorno del servidor virtual; OpenStack Storage permite gestionar el uso de los objetos de distribucin de base de datos (OpenStack Storage). Internamente, a ambos componentes se les referencia por sus cdigos identificativos, Nova y Swift, cuyos orgenes provienen de unos productos de Rackspace. La NASA contribuy aportando al framework de OpenStack su propia plataforma de nube hbrida de cdigo abierto, Nebula [4]. Tanto la NASA como Ubuntu han anunciado que abandonarn la alternativa Eucalyptus para adoptar OpenStack [5] [6]. En este artculo mostrar cmo crear un sistema de pruebas sencillo con el que comenzar a explorar las posibilidades de OpenStack.

Anatoma de una Nube OpenStack


Segn el proyecto OpenStack, OpenStack Compute es un software para la provisin y gestin de grandes grupos de servidores virtuales privados. Los distintos componentes de OpenStack Compute nos permiten ejecutar instancias, adminis-

Christi Tolbert - 123RF.com

34

Nmero 73

WWW.LINUX- MAGAZINE.ES

OpenStack PORTADA

trar redes nebulares y controlar el acceso a la nube mediante usuarios y proyectos. OpenStack no proporciona virtualizacin propia. En lugar de eso, lo que la plataforma OpenStack hace es ofrecer una estructura con la que desplegar otras tecnologas de virtualizacin con una configuracin en la nube, permitiendo una mayor escalabilidad y tolerancia a fallos. La API de OpenStack es capaz de comunicarse con entornos de virtualizacin como KVM, Xen, HyperV o QEMU. Si ya est familiarizado con el servicio web de Amazon, no tardar en descubrir cionalidades similares. Las mquinas virtuales son asignadas a un proyecto. Cada usuario tiene un par de claves (privada, pblica) con las que acceder a uno o varios proyectos. A cada proyecto se le asignan especficamente ncleos de procesador, almacenamiento, RAM, etctera. El uso de la API se da en trminos de RABC (Role Based Access Control). La Figura 1 muestra una vista de la arquitectura de OpenStack. La informacin sobre la nube y la configuracin se almacenan en la base de datos. La API REST permite al usuario llegar hasta cualquier componente de la nube. La versin actual se centra en la lnea de comandos para la interaccin con la API, aunque dicha interaccin puede hacerse desde clientes completos o desde aplicaciones web (paneles web de control) El gestor de autenticacin (Auth Manager) controla el

Figura 1: Los componentes de la arquitectura de OpenStack proporcionan un verstil entorno de computacin en la nube.

acceso a las funcionalidades API basndose en roles, evitando as que los usuarios puedan arrancar o parar instancias individuales. El planificador de tareas (Scheduler) distribuye el acceso y el tiempo de computacin entre los distintos componentes virtuales individuales. En la versin actual de OpenStack no todos los componentes estn totalmente implementados. Por ejemplo, en estos momentos, el almacn Object Store slo soporta objetos de menos de 5GB, y no es posible aplicar lmites en funcin del rol del usuario. Pero desde luego est lo suficientemente Listado 1: Creacin de las Claves terminada como para ser 01 nova-manage project zipfile OSTEST rwartala usada. 02
03 Generating RSA private key, 1024 bit long modulus

uso de ms de un nodo, en sistemas en red que aportan escalabilidad y tolerancia a fallos, pero con esta sencilla configuracin podremos ilustrar los pasos a realizar. Para hacer una prueba inicial con Austin realizaremos las siguientes tareas: 1. Crear un administrador de OpenStack. 2. Crear un proyecto de OpenStack. 3. Generar las claves privada y pblica. 4. Crear una imagen para la instancia de la mquina virtual. 5. Subir la imagen y arrancar la instancia. Para el ejemplo usaremos Ubuntu como sistema operativo. OpenStack hace uso del servidor de mensajera RabbitMQ [8] y de la base de datos NoSQL Redis [9]. Para comenzar, introducimos los siguientes comandos:
apt-get install U rabbitmq-server U redis-server apt-get install U python-nova apt-get install U nova-api U nova-objectstore U nova-computeU nova-schedulerU nova-network

04 ........................++++++ 05 ........................++++++ 06 e is 65537 (0x10001) 07 Using configuration from ./openssl.cnf 08 Check that the request matches the signature 09 Signature ok 10 The Subjects Distinguished Name is as follows 11 countryName 12 stateOrProvinceName 13 localityName 14 organizationName 16 commonName :PRINTABLE:US :PRINTABLE:California :PRINTABLE:MountainView :PRINTABLE:AnsoLabs :PRINTABLE:rwartala2010-11-20T17 :02:57Z 17 Certificate is to be certified until Nov 20 17:02:57 2011 GMT (365 days) 18 19 Write out database with 1 new entries 20 Data Base Updated

Instalacin de un Nodo OpenStack Simple


La mayor parte de OpenStack es bien conocida, y pocas cosas son genuinamente nuevas. Para crear y gestionar mquinas virtuales propias con OpenStack lo nico que se necesita es un sistema Linux reciente. Algunas distribuciones de Linux como Debian, Ubuntu o CentOS cuentan con los paquetes necesarios en sus repositorios. Evidentemente, el verdadero poder de la nube se basa en el

15 organizationalUnitName:PRINTABLE:NovaDev

Tambin necesitaremos Euca2ool Suite [10], que proporciona una herramienta de lnea de comandos para comunicar con el servicio web de OpenStack basado en REST. Similar en cuanto a su mbito de aplicacin a las herramientas de lnea de comandos de Amazon, Euca2ool nos permite gestionar imgenes, instancias y volmenes.

WWW.LINUX- MAGAZINE.ES

Nmero 73

35

PORTADA OpenStack

apt-get install euca2ools unzip

Una vez instaladas todas las herramientas, creamos el usuario de administracin mediante Nova-Manage:
nova-manage user admin rwartala

Part: kernel.part.0 Generating manifestU /tmp/kernel.manifest.xml

Los siguientes comandos:


euca-bundle-image U -i images/ari-lucid/U image -p ramdisk U --ramdisk true

Durante el proceso se crean una clave de acceso y una clave de seguridad:


export EC2_ACCESS_KEY=U 713211a4-7a15-470f-U ae54-346b52e30a0e export EC2_SECRET_KEY=U 244de6a1-8aa3-4e12-U 9521-03ac756abbdf

crean un par kernel/ram disk a partir de la imagen y generan el correspondiente manifiesto. El manifiesto contiene una descripcin de la imagen, as como los certificados que generamos anteriormente. Podemos subir ambas imgenes a la nube con:
euca-upload-bundle -m U /tmp/kernel.manifest.xml U -b mybucket euca-upload-bundle -m U /tmp/ramdisk.manifest.xml U -b mybucket

El siguiente paso consiste en crear un nuevo proyecto Nova, OSTEST. El siguiente comando
nova-manage project U create OSTEST rwartala

crea las claves privadas y pblicas, as como los certificados necesarios para el proyecto (Listado 1). Descomprimimos los datos en nuestro directorio home:
unzip nova.zip

Pero todava nos faltan las claves que nos permitan acceder por SSH a la instancia. El comando:
euca-add-keypair U rwartala_key > U rwartala_key.priv U chmod 600 U rwartala_key.priv

otros no lo hacen. Los principales colaboradores son aquellos que lo iniciaron: Rackspace y la NASA; pero entre bambalinas, otros muchos colaboran: AMD, Dell y, sobre todo, Citrix [11]. El middleware del sistema de mensajera RabbitMQ para OpenStack fue desarrollado por Springsource, entre otros. SpringSource forma parte de VMware desde el verano de 2009. El almacn de clave-valor libre de Redis que usa OpenStack tambin est patrocinado actualmente por VMware. Hasta ahora la documentacin es bastante rudimentaria, y tampoco hay herramientas con las que gestionar OpenStack. Sin embargo, la comunidad de OpenStack est desarrollando el sistema de manera muy profesional. A mediados de Noviembre de 2010, 250 personas de ms de 90 organizaciones asistieron al primer Design Summit. La versin Bexar de OpenStack vio la luz en Febrero de 2011, y la versin Cactus est planeado que salga en primavera. Conviene estar al tanto, porque puede que OpenStack se convierta en el Apache de la nueva era de la computacin en la nube. I

RECURSOS
1] La receta para la nube es de cdigo libre: http://bits.blogs.nytimes.com/ 2010/07/20/ the-recipe-for-clouds-goes-open-sou rce/ [2] Mientras las plataformas en la nube luchan por su credibilidad, OpenStack es bastante slido: http:// blogs.forrester.com/james_staten/ 10-07-19-cloud_platforms_battle_cre dibility_openstack_pretty_solid [3] Nueva versin Austin de OpenStack: http://www.openstack.org/ blog/2010/10/ OpenStack-austin-release-is-out/ [4] Nebula: http://nebula.nasa.gov/ [5] NASA deja Eucalyptus: http:// techie-buzz.com/foss/ nasa-leaving-the-eucalyptus-cloud-f or-real-open-source.html [6] OpenStack para Ubuntu: http:// gigaom.com/cloud/ canonical-ceo-on-arm-and-openstac k-for-ubuntu-servers/ [7] Roles en OpenStack: http://nova. OpenStack.org/devref/auth. html#auth-roles [8] Rabbit MQ: http://www.rabbitmq. com/ [9] Redis: http://redis.io/ [10] Euca2tools: http://open.eucalyptus. com/wiki/Euca2oolsGuide_v1.1 [11] La nube es libre: http://community. citrix.com/display/ocb/2010/08/30/ The+Cloud+is+Open+-+See+How+It +Stacks+Up

Lo que necesitamos ahora es una imagen que nos sirva para crear la primera mquina virtual. Rackspace ofrece imgenes de prueba preconstruidas que podemos obtener por ejemplo con wget:
wget http://c2477062.cdn.U cloudfiles.rackspacecloud.com/U images.tgz

crea las claves. Podemos arrancar la instancia del siguiente modo:


euca-run-instances U ami-g06qbntt U --kernelami-fcbj2non U --ramdisk ami-orukptrc U -k rwartala_key

Y descomprimir con:
tar xvzf images.tgz

Para crear una imagen ejecutable para OpenStack Compute necesitamos ejecutar Euca2ool Suit como sigue:
euca-bundle-image -i U images/aki-lucid/image U -p kernel U --kernel true Checking image Tarring image Encrypting image Splitting image...

Una vez que la mquina virtual se encuentra en ejecucin, usamos la claves SSH para conectar con ella:
ssh -i rwartala_key.priv U root@10.0.0.3

Y nada ms!

Entre Bambalinas
Cada vez que aparece una nueva tecnologa, todo el mundo se hace la misma pregunta: merecer la pena el esfuerzo? Resulta interesante ver cmo algunos soportan el proyecto OpenStack mientras que

36

Nmero 73

WWW.LINUX- MAGAZINE.ES

You might also like