Académique Documents
Professionnel Documents
Culture Documents
Icehouse
Este proyecto está creado con la intención de iniciar a cualquier persona sin ningún
conocimiento previo de OpenStack o “Cloud Computing” en este nuevo mundo en el cual
todavía queda mucho por inventar, OpenStack es todavía muy joven pero tiene un potencial
increíble, está en contrastante desarrollo por una gran comunidad respaldada por las más
grandes empresas del sector informático.
Mi nombre es Jorge Guerrero Garrido y soy alumno del instituto Jerezano IES Romero Vargas
donde finalizo dos años de estudio con este proyecto, el cual espero que sirva de ayuda para
cualquier persona que decida comenzar su andadura en OpenStack. El problema fundamental
que tiene OpenStack es la poquísima documentación que existe en español, este problema
cada vez es menor, ya que la comunidad de habla hispana está manifestando un aumento en
los últimos años.
En este documento vamos a repasar desde los aspectos más básicos del “Cloud Computing”
hasta los aspectos más específicos de OpenStack y haremos estudios de los diferentes tipos de
despliegues.
Espero que disfrutéis con este documento tanto como yo he disfrutado desarrollándolo.
Es la hora de OpenStack y está claro que el mundo de la virtualización camina en ese sentido,
termino con una frase que me encanta.
1
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
OpenStack
Capítulo 1. OpenStack ................................................................................................................... 5
Cloud Computing....................................................................................................................... 5
¿Qué es OpenStack?.................................................................................................................. 6
¿Por qué OpenStack? ................................................................................................................ 7
Reducción de costes con OpenStack ......................................................................................... 8
Requisitos mínimos de OpenStack ............................................................................................ 9
Historia de OpenStack ............................................................................................................. 10
Componentes OpenStack ........................................................................................................ 11
Arquitectura conceptual ......................................................................................................... 13
Arquitectura de servicios ........................................................................................................ 15
Dashboard (Horizon) ........................................................................................................... 15
Compute (Nova) .................................................................................................................. 16
Object Storage (Swift) ......................................................................................................... 19
Block Storage (Cinder) ......................................................................................................... 20
Image Storage (Glance) ....................................................................................................... 22
Identity (Keystone) .............................................................................................................. 24
Networking (Neutron) ......................................................................................................... 25
Orchestration(Heat) ............................................................................................................ 27
Telemetry (Ceilometer) ....................................................................................................... 28
Database service (Trove) ..................................................................................................... 29
Conocimientos básicos de compute (Nova) ............................................................................ 30
Hipervisores......................................................................................................................... 30
Usuarios y proyectos (Tenants) ........................................................................................... 32
Imágenes e instancias ......................................................................................................... 32
Lanzar una instancia ............................................................................................................ 32
Tipos de almacenamiento ................................................................................................... 33
Conocimientos básicos de Keystone ....................................................................................... 34
TOKENS ................................................................................................................................ 35
Conceptos básicos de Glance .................................................................................................. 37
Conceptos básicos de Swift ..................................................................................................... 37
OpenStack en nuestras aulas ...................................................................................................... 38
Utilización de equipos físicos .................................................................................................. 39
2
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
3
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
4
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Capítulo 1. OpenStack
OpenStack es una colección de tecnologías Open Source que proporcionan un software para el
despliegue escalable de de nubes públicas y privadas. OpenStack proporciona Infraestructura
como Servicio ó IaaS (Infrastructure as a Service) y es un proyecto que se inició en el año 2010
por la empresa Rackspace Cloud y por la agencia espacial norteamericana, NASA. Actualmente
más de 200 empresas se han unido al proyecto, entre ellas se encuentran algunas como Intel,
Canonical, Red Hat, AT&T, Dell, Rackspace, Cisco. Podemos ver la impresionante lista en el
siguiente enlace https://www.openstack.org/foundation/companies/
OpenStack puede ser desplegado en una gran variedad de entornos desde una pequeña
empresa hasta un gran CPD además de grandes proveedores de servicio.
Cloud Computing
La computación en la nube son servidores normalmente accesibles desde Internet encargados
de atender las peticiones en cualquier momento mediante una conexión a internet desde
cualquier dispositivo móvil o fijo ubicado en cualquier lugar, algunas de las características del
cloud computing son las siguientes:
5
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Software as a Service (SaaS). La forma más conocida de cloud en la que todas las
aplicaciones de software se encuentran en la nube y el usuario suele acceder a ellas
mediante un simple navegador web. Algunos ejemplos son moodle, redes sociales o
correo web.
Una de las clasificaciones más típicas es dependiendo del entorno donde se despliega de
manera que los podemos clasificar en:
Públicos. Cuando los servicios ofrecidos por la nube son servidos por empresas
externas.
Privados. Cuando los servicios ofrecidos se manejan por un sólo cliente que controla
las aplicaciones que se ejecutan.
Híbridos. Que es una solución que combina las dos anteriores. Utilizando una API
común.
¿Qué es OpenStack?
OpenStack es un software Open Source usado para el despliegue de clouds públicas y privadas.
OpenStack representa tanto a una comunidad y un proyecto de Software Libre, como un
software para ayudar a las organizaciones a ejecutar sus propios clouds para computación o
almacenamiento virtual.
La finalidad con la que nace OpenStack es la de proporcionar una solución de “open source”
para el despliegue de cloud públicos y privados con el que conseguir la máxima escalabilidad y
elasticidad, con total independencia de ninguna empresa de tal manera que cualquier usuario
o empresa puede colaborar, opinar o desarrollar para este proyecto que llamamos OpenStack.
6
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para intentar responder a esta pregunta a continuación se muestran algunos de los muchos
beneficios o posibilidades que tendría la implementación de OpenStack.
7
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
No tendríamos que mejorar el hardware de los equipos de los usuarios ya que están
virtualizados.
Los usuarios tendrán todas sus aplicaciones y datos en el servidor así que podrán
trabajar desde cualquier equipo de la empresa.
Equipos baratos y con pocos recursos para los usuarios (equipos antiguos o raspberry
pi) ya que todo el trabajo se ejecutará en el servidor.
Los usuarios podrá ejecutar cualquier tipo de aplicación en sus equipos sin importar las
características de esta, ya que se ejecutará en el servidor y no en sus equipos.
8
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para el despliegue de OpenStack como mínimo necesitamos dos nodos, un nodo controlador y
un nodo de computación para los servicios compute y el Servicio de imagen y objeto, cuenta,
contenedores, y los servidores proxy para almacenamiento de objetos.
9
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Historia de OpenStack
A mediados de 2010 se produjo un evento determinante en el mundo del software de
Infraestructura como Servicio (IaaS). Rackspace y la NASA anunciaban de manera conjunta que
estaban desarrollando un nuevo software de IaaS que venía a solucionar los problemas que la
NASA le había encontrado a Eucalyptus, y a convertirse en una alternativa real a Amazon Web
Services.
Este nuevo proyecto pretendía solucionar los problemas de Eucalyptus tales como que no es
se escala y que no es realmente de código abierto. Al parecer Eucalyptus está pensado como
un producto completo para unas necesidades concretas: La Nube Privada. Sin embargo, la
NASA buscaba algo que escalase a lo a lo grande: Un millón de servidores o 60 millones de
máquinas virtuales. Para conseguir eso, es necesario reconstruir Eucalyptus prácticamente
desde 0 y modificarlo de tal manera que soporte ese nivel de escalado. Teniendo en cuenta
que Eucalyptus no era un proyecto 100% libre la NASA decidió que no podía meter recursos en
algo que no controlaba.
Así que OpenStack nació como una alternativa completamente abierta al amparo de
Rackspace y gran parte de la industria. A diferencia de Eucalyptus no es un producto, sino un
‘Framework’. Es decir, puede manipularse de tal manera que puede adaptarse a las
necesidades de los clientes. Y por supuesto todo el código se encuentra disponible bajo
licencia Apache 2.0.
La primera release disponible de OpenStack llamada Austin, decepcionó un poco al mundo que
había nacido en torno a OpenStack, pero esto permitio dar esperanzas y motivar más el
desarrollo del proyecto, era la primera vez que tenían algo palpable de este gran proyecto. Así
que el proyecto OpenStack creció a una velocidad de vértigo con su última relase llamada
“Icehouse” dejando atrás ya ocho relases diferentes y con la vista puesta en el horizonte con el
desarrollo de “Juno” que verá la luz en octubre de 2014.
10
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Componentes OpenStack
Conforme avanza el desarrollo de OpenStack aumentan el número de componentes y las
funcionalidades de este proyecto en la última versión disponible de OpenStack cuenta ya con
un total de 10 componentes con funcionalidades tan diferentes como el almacenamiento de
volúmenes o la ejecución de máquinas virtuales. La última versión Icehouse contará con los
siguientes componentes.
11
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
12
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Arquitectura conceptual
El lanzamiento de una máquina virtual o una instancia implica muchas interacciones entre los
diferentes servicios de OpenStack. El siguiente diagrama muestra la arquitectura conceptual
típica en el lanzamiento de una instancia en Icehouse.
Nova almacena y recupera imágenes de discos virtuales y sus datos asociados y lanza las
instancias.
Glance almacena las imágenes en un directorio en disco, pero puede hacerlo a través del
servicio Swift.
13
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Horizon proporciona un frontal gráfico basado en web para la gestión del resto de servicios de
OpenStack.
Ceilometer se encarga de medir el “consumo” de las instancias con fines estadísticos, para su
posterior evaluación o para una facturación en caso de ser una empresa que preste un
determinado servicio.
Por ultimo Heat proporciona total compatibilidad al cloud por ejemplo con AWS.
14
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Arquitectura de servicios
En este apartado vamos a repasar todos los componentes de OpenStack de una manera
detallada para conocerlos mejor.
Dashboard (Horizon)
Horizon es una aplicación web modular desarrollada con el framework de Python Django, cuyo
objetivo principal es proporcionar una interfaz a los servicios de OpenStack al administrador
del cloud y a los usuarios.
Horizon nos permite poder acceder a las instancias simplemente utilizando el navegador web
lo cual es tremendamente útil, ya que no necesitaremos más para trabajar como cliente de
OpenStack solo un navegador web.
15
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Compute (Nova)
El servicio Compute es el controlador de estructura cloud computing, que es la parte principal
de un sistema de IaaS. Lo utilizan para alojar y administrar sistemas de computación en nube.
La parte principal de este módulo está desarrollada en python.
Compute interactúa con con el servicio de identificación (Keystone) para la autentificación, con
el servicio de imágenes (Glance) para la aprovisionarse de imágenes y con Dashboard para
interactuar con el usuario y para la administración. El acceso a las imágenes es limitado por
proyecto y usuario, podemos limitar también las cuotas en un determinado proyecto, como
por ejemplo definir un número máximo de instancias para un determinado proyecto.
API
Nova-api: Es la encargada de aceptar y responder las llamadas del usuario final a la
API de nova-compute. El demonio nova-api soporta la API de OpenStack, la API EC2 de
Amazon y la API especial de administración (para usuarios con privilegios que realicen
tareas administrativas).
Nova-api-metadata: Acepta solicitudes de metadatos de instancias. El servicio nova-
api-metadata generalmente solo se utiliza cuando se ejecuta en modo multi-host con
instalaciones nova-network.
Núcleo de computación
Nova-compute: El demonio nova-compute es el principal encargado de crear y
acabar con las máquinas virtuales (instancias) utilizando para ello las APIs del
hipervisor utilizado. nova-compute utiliza libvirt para KVM/QEMU, XenAPI para
XenServer/XCP y VMwareAPI para Vmware.
16
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Nova nos permite acceder y administrar el cloud máquinas virtuales mediante la consola de
texto como lo haríamos en (GNU/Linux) o mediante la consola gráfica.
Interfaz de consola
Para el aceso a las instancias mediante el navegador con una conexión VNC, algo que es una de
las grandes ventajas de OpenStack, ya que podemos acceder a nuestras instancias tan solo
teniendo un simple navegador web.
17
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Comandos de Nova
En la siguiente tabla se muestran algunos de los comandos que podemos utilizar para la
administración de Nova.
Descripción Comando
Listar instancias $ nova list
Listar imágenes $ nova image-list
Lanzar una instancia usando el nombre de una $ nova boot --image IMAGE --flavor FLAVOR
imagen y de un sabor INSTANCE_NAME
$ nova boot --image cirros-0.3.1-x86_64-uec --
flavor m1.tiny \
MyFirstInstance
18
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Introducir datos de usuario y archivos en una $ nova boot --user-data FILE INSTANCE
instancia. $ nova boot --user-data userdata.txt --image
cirros-qcow2 \
--flavor m1.tiny MyUserdataInstance2
Para validar que el archivo está allí, ssh en la
instancia y mirar el fichero /var/lib/cloud.
Introducir un par de claves en una instancia y acceder a la instancia con ese par de claves
Crear par de claves $ nova keypair-add test > test.pem
$ chmod 600 test.pem
Iniciar con par de claves asociado $ nova boot --image cirros-0.3.0-x86_64 --flavor
m1.small \
--key_name test MyFirstServer
Usar SSH para conectarse a una instancia. # ip netns exec qdhcp-98f09f1e-64c4-4301-a897-
5067ee6d544f \
ssh -i test.pem cirros@10.0.0.4
Administrar la seguridad de los grupos
Añadir reglas al grupo de seguridad por defecto $ nova secgroup-add-group-rule default default
permitiendo ping y SSH entre instancias icmp -1 -1
pertenecientes al grupo default. $ nova secgroup-add-group-rule default default
tcp 22 22
Object Storage (Swift)
El servicio object storage es un servicio de almacenamiento multi-tenant masibamente
escalable, permita almacenar grandes cantidades de datos no estructurados a un bajo coste
utilizando la API RESTful HTTP.
19
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Hay también un conjunto de procesos que se ejecutan de forma periódica que realizan ciertas
tareas de limpieza sobre los datos. El más importante de estos procesos es el servicio de
replicación, los cuales aseguran consistencia y disponibilidad en todo el cluster. La
autenticación se realiza normalmente a través de Keystone.
Comandos Swift
Descripción Comando
Mostrar información sobre el usuario, $ swift stat
contenedor u objeto. $ swift stat ACCOUNT
$ swift stat CONTAINER
$ swift stat OBJECT
Listar contenedores $ swift list
cincer-volume: Este demonio responde a las peticiones de lectura y escritura para la base de
datos del bloque de almacenamiento para mantener su consistencia, interactuando con otros
procesos como “cinder-scheduler”, mediante una cola de mensajes o directamente con el
bloque de almacenamiento. Este servicio puede interactuar con una gran variedad de
proveedores de almacenamiento.
20
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Comandos Cinder
Descripción Comando
Administracion de volúmenes y snapshots
Crear un nuevo volumen $ cinder create SIZE_IN_GB --display-name
NAME
$ cinder create 1 --display-name
MyFirstVolume
Lanzar una instancia y asociar un volumen $ nova boot --image cirros-qcow2 --flavor
m1.tiny MyVolumeInstance
Listar volumnes o notificar el estado de los $ cinder list
volumens
Asignar un volumen a una instancia una vez $ nova volume-attach INSTANCE_ID
está la instancia y el volumen activos. VOLUME_ID auto
$ nova volume-attach MyVolumeInstance
/dev/vdb auto
Administrar volúmenes desde la instancia
Listar dispositivos de almacenamiento # fdisk -l
21
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
22
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Comandos Glance
Descripción Comando
Lista de imágenes a las que tienes acceso $ glance image-list
Administración de imágenes
23
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Identity (Keystone)
Keystone permite la integración de los serviciós de OpenStack en un único punto en aspectos
tan importantes como proporcionar servicios de autenticación, gestión de tokens y el
mantenimiento de un catálogo y un repositorio de políticas de identidad.
Cada función de Keystone puede conectarse a un backend distinto que permite realizar esa
misma función de diferentes formas utilizando un servicio distinto. De esta forma, Keystone
puede integrarse fácilmente con diferentes almacenamientos como SQL, LDAP ó KVS (Key
Value Stores).
Esto es muy útil en cuanto a la integración de los servicios de autenticación de OpenStakc con
los servicios de autenticación existentes en un despliegue en concreto. El siguiente diagrama
muestra el proceso de autentificación:
Comandos Keystone
Descripción Comando
Listar todos los usuarios $ keystone user-list
24
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Networking (Neutron)
OpenStack Networking (Neutron) gestiona todas las facetas de redes para la infraestructura de
red virtual (VNI) y los aspectos de capa de acceso de la infraestructura de red física (PNI) en el
entorno de OpenStack. OpenStack Networking permite crear topologías de red avanzadas
virtuales, incluyendo servicios tales como firewalls, balanceadores de carga y redes privadas
virtuales (VPN).
Neutron proporciona las siguientes abstracciones de objetos: Redes, subredes y routers. Cada
uno tiene una funcionalidad que imita su contraparte física: Redes con subredes este servicio
permite enrutar el tráfico entre los diferentes routers de subred y redes.
Red externa
Esta red no es más que una red virtual definida y es accesible desde fuera de OpenStack. Las
direcciones IP de la red externa son accesibles desde el exterior. Debido a que esta red solo
representa una parte de la red exterior, el servicio DHCP está desactivado en esta red.
Red interna
Estas redes definidas por software que se conectan directamente a las máquinas virtuales. Esta
red interconecta las máquinas virtuales una red interna. Las subredes conectadas a través de
interfaces a un router, pueden tener acceso a las máquinas virtuales conectadas a la red
directamente.
Además, podemos asignar direcciones IP en las redes externas a los puertos en la red interna.
Cada vez que algo está conectado a una subred, esa conexión llama a un puerto.
Podemos asociar direcciones IP de redes externas con puertos a las máquinas virtuales. De
esta manera, las entidades en la red externa pueden acceder a las máquinas virtuales.
Grupos de seguridad
Las redes también soportan grupos de seguridad. Los grupos de seguridad permiten a los
administradores para definir reglas de firewall en grupos. Una máquina virtual puede
pertenecer a uno o más grupos de seguridad y Redes, definiremos las reglas en esos grupos de
seguridad para bloquear o desbloquear los puertos, rangos de puertos o el tráfico para los
diferentes tipos para que VM.
25
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Comandos Neutron
Descripción Comando
Crear una red $ neutron net-create NAME
26
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Orchestration(Heat)
heat command-line client: Un CLI que se comunica con el heat-api para ejecutar
AWS. CloudFormation APIs. Los desarrolladores también pueden utilizar la API de
REST directamente.
heat-api component: Proporciona una OpenStack-native REST API que procesa las
solicitudes de la API mediante el envío a heat a través de RPC.
heat-api-cfn component: Proporciona una API AWS de consulta compatible con
AWS CloudFormation y procesa solicitudes de la API mediante el envío a la máquina
de heat a través de RPC.
heat-engine: Orquesta la puesta en marcha de las plantillas y proporciona eventos.
Comandos Heat
Un stack cuanta con una colección de recursos, para listar, ver su estado o eventos poedemos
ejecutar algunos de los siguientes comandos:
Descripción Comando
Listar stacks $ heat stack-list
27
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Telemetry (Ceilometer)
El módulo de telemetría es el encargado de recoger de manera eficiente los datos de medición
en relación con el coste de CPU y de red, también recopila datos mediante el control de
notificaciones enviadas desde los servicios o sondeando la infraestructura.
Las características básicas de Ceilometer se pueden ampliar por medio de plug-ins adicionales.
Este componente también es capaz de producir mensajes autoafirmados de medición de
manera que no puedan ser renunciados.
Comandos Ceilomenter
Descripción Comando
Crea una nueva alarma $ ceilometer alarm-create
Elimina una alarma $ ceilometer alarm-delete
Lista las alarmas del usuario $ ceilometer alarm-list
Ver una alarma $ ceilometer alarm-show
Actualiza una alarma existen $ ceilometer alarm-update
Lista los contadores del usuario $ ceilometer meter-list
Lista los recursos $ ceilometer resource-list
Ver los recursos $ ceilometer resource-show
Crea un sample $ ceilometer sample-create
Lista los samples de un contador $ ceilometer sample-list
Lista las estadísticas de un contador $ ceilometer statistics
Muestra la ayuda $ ceilometer help
28
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
He aquí un ejemplo del proceso de alto nivel usando el servicio de bases de datos:
29
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como ya hemos contado anteriormente en este documento el nombre del proyecto es Nova y
proporciona el software necesario para desplegar una infraestructura IaaS. Nova es bastan te
similar a Amazon EC2, se dijo en los inicios de Nova que era una copia prácticamente idéntica
al servicio de Amazon.
Nova no incluye ningún hipervisor en sí mismo, nova va mucho más allá y te permite elegir
entre una amplia gama de hipervisores, nova simplemente define unos controladores que
interactúan con los hipervisores. Esta es una de las grandes ventajas de entre proyecto al ser
Open Source la versatilidad es máxima.
Hipervisores
Como ya comente antes OpenStack Compute soporta varios hipervisores, esto nos puede
llevar confusión o indecisión sobre cuál de ellos elegir vamos a intentar arrojar un poco de luz
a la elección de un hipervisor. Hay que tener en cuenta que la mayoría de las instalaciones
utilizan sólo un hipervisor pero es posible con configuraciones más avanzadas implementar
más de uno dentro de un mismo sistema (estas configuraciones vienen explicadas en la
documentación oficial de OpenStack).
KVM - Kernel-based Virtual Machine: Los formatos de disco virtual que soporta,
son heredados de QEMU, ya que utiliza un programa de QEMU modificado para poner
en marcha la máquina virtual. Los formatos soportados incluyen imágenes RAW,
qcow2 y formatos de VMware.
LXC - Linux Containers (Mediante libvirt): Es usado para ejecutar máquinas
virtuales basadas en Linux.
QEMU - Quick EMUlator: Generalmente solo se utilizara para entorno de desarrollo,
no se recomienda su implementación en entorno de producción.
UML - User Mode Linux: Generalmente solo se utilizara para entorno de desarrollo,
no se recomienda su implementación en entorno de producción.
VMware vSphere: Desde la actualización 4.1 en adelante es posible ejecutar
imágenes de Linux y Windows basados en VMware a través de una conexión con un
servidor vCenter o directamente con un servidor ESXi.
Xen - XenServer, Xen Cloud Platform (XCP): Es capaz de ejecutar máquinas
virtuales Linux o Windows. Debe instalar el servicio de nova-compute en una máquina
virtual para-virtualizado.
Hyper-V - Server virtualization with Microsoft's Hyper-V: Es capaz de ejecutar
Windows, Linux, y las máquinas virtuales FreeBSD. Además Ejecuta nova-compute de
forma nativa en la plataforma de virtualización de Windows.
Bare Metal – No es un hipervisor tradicional: Se trata de unos controladores que
provisiona de el “hardware físico” a través de unos sub-controladores. Ejemplo, PXE
para el despliegue de imágenes, e IPMI para la administración de energía.
30
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Bien, vamos a añadir algo de luz a esta pregunta, la razón fundamental por la que elijo KVM es
completamente libre y no depende de ninguna empresa, simplemente es un módulo no
necesita parches, además contiene soporte de paravirtualización y su rendimiento es muy
bueno, yo me decanto por KVM.
Hay varios estudios que corroboran mi opinión al respecto de que hipervisor utilizar en
OpenStack, pero cada uno es libre de utilizar el que crea mejor o se encuentre más cómodo
trabajando con él. En OpenStack tenemos donde elegir ¡esto es software libre!
La siguiente imagen muestra tanto las distribuciones donde esta implementado más
OpenStack como los hipervisores más utilizados actualmente en OpenStack.
31
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Al usuario también podemos asignarle un rol para limitar las operaciones que puede realizar
cada usuario. A un usuario se le pueden asignar diferentes roles en cada proyecto.
Imágenes e instancias
Las imágenes son imágenes de discos que son plantillas para las máquinas virtuales que se van
a crear. El servicios que proporciona las imágenes, Glance, es el responsable de almacenar y
gestionar las imágenes en OpenStack.
Las imágenes son imágenes de discos como las que consimimos normalmente en los formato
típicos que todos conocemos como puede ser ISO o RAW OpenStack soporta una gran
variedad de formatos de los cuales hablaremos más adelante. Como ya hemos dicho
anteriormente Glance es el encargado de provionar al cloud de imágenes.
Las instancias son las máquinas virtuales que se ejecutan en los nodos de computación. El
servicio de computación, Nova, gestiona estas instancias. Se pueden lanzar cualquier número
de instancias a partir de una determinada imagen. Cada instancia se ejecuta de una copia de
una imagen base, por lo que las modificaciones que se realicen en la instancia no alteran la
imagen en la que se basa. Mediante el uso de instantáneas (snapshots) de las instancias, se
pueden crear nuevas imágenes que sí guardan todas las modificaciones realizadas hasta ese
momento en la instancia.
Cuando se lanza una instancia, se debe seleccionar un conjunto de recursos virtuales, conocido
como sabor (flavor).
Un sabor define para una instancia el número de CPUs virtuales, la RAM, si dispone o no de
discos efímeros, etc. OpenStack preinstala una serie de sabores, que el administrador puede
modificar o crear algunos nuevos si así se desea.
OpenStack copia la imagen base al disco que utilizará la instancia como primer disco vda),
cuanto más pequeña sea la imagen, más rápido será el lanzamiento. Dependiendo del sabor,
también se crea un nuevo disco vacío (vdb). Para la gestión de volúmenes antes se encargaba
nova-volume, este trabajo se ha delegado a Cinder, los volúmenes se mapearan como vdc.
Una vez que decidimos terminar la instancia, todos los recursos utilizados por la instancia son
liberados (RAM, almacenamiento, etc.), salvo los volúmenes persistentes que permanecen
almacenados y es posible asignarlos a otra instancia posteriormente.
32
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Tipos de almacenamiento
OpenStack nos proporciona dos tipos de almacenamiento de bloques:
33
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para terminar de entender correctamente la función de Keysone necesitamos saber una serie
de conceptos que nos arrojaran algo de luz sobre Keystone en relación con los usuarios.
Usuario: Usuario normal con una serie de privilegios que hará uso del cloud, de el
podremos almacenar su nombre, correo electrónico y contraseña.
Proyecto (tenant en la jerga de OpenStack): En un proyecto podemos ejecutar un
conjunto de instancias con características en común, de manera que podremos
asignar una serie de limitaciones dependiendo del proyecto.
Rol: Nos indica qué operaciones puede realizar cada usuario. A un usuario se le
pueden asignar diferentes roles en cada proyecto. Por ejemplo el Rol de
administrador.
Hay algunos conceptos que es conveniente conocer en relación con el registro de servicios
34
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
TOKENS
Para entender con más claridad el sistema de autentificación de Keystone es necesario
conocer de qué manera se autentifican los servicios y componentes de OpenStak. Keystone
permite a OpenStack una autentificación basada en tokens ¿Qué es esto? Para comprenderlo
debemos de saber primero que es un token
Token: Un token es una cadena de caracteres que tiene un significado coherente en cierto
lenguaje de programación. Ejemplos de tokens podrían ser palabras clave, identificadores,
números, signos, o un operador de varios caracteres.
En OpenStack tanto los servicios como los usuarios no se autentifican unos a otros
directamente, sino que se autentifican mediante un actor intermediario encargado de verificar
la autenticidad de cada uno de los elementos es Keystone.
La siguiente imagen muestra el proceso que realiza un usuario para autenticarse en Keystone:
35
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
ADMIN_TOKEN
Con Keystone recién instalado no tenemos ningún usuario con privilegios de administración en
la base de datos de keystone, por lo no podríamos hacer ninguna modificación. El mecanismo
que proporciona keystone para solventar esta situación es definir en el fichero de
configuración un token con privilegios de administración, que recibe el nombre de
De forma general en Keystone, un usuario deberá tener algo con que demostrar su
autenticidad (una contraseña o un token) y la URL de un API con la que desea interaccionar, en
este caso vamos a definir con dos variables de entorno el token con privilegios de
administrador y la URL del servicio de administración de keystone:
export SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0/
export SERVICE_TOKEN=12345678
Donde 12345678 representa el valor que hayamos elegido para nuestro ADMIN_TOKEN y
tendrá el mismo valor que el parámetro ADMIN_TOKEN que tenemos guardado en el fichero
de configuración. Una vez realizado esto el usuario de esa sesión actúa como administrador de
keystone, por lo que los pasos siguientes serán crear usuarios, darles roles, definir los servicios,
etc.
36
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Las imágenes que están disponibles a través de Glance, se pueden almacenar en diferentes
ubicaciones, desde un simple sistema de ficheros que es la opción por defecto a un sistema de
almacenamiento de objetos como OpenStack Swift.
37
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Si analizamos la evolución que ha tenido la educación nos damos cuenta que OpenStack o la
utilización del IaaS no es más que una nueva evolución en la manera de trabajar en nuestras
aulas.
38
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
La forma de trabajar seria con una maquina por alumno y algunos servidores compartiendo
recursos de manera que cada alumno gestionará su propio equipo pero no gestiona los
servidores.
Ventajas Inconvenientes
Fácil despliegue inicial y Poca capacidad de cambio.
puesta en marcha. Practicas muy limitadas por número
de equipos y tipo de conjuraciones.
Hardware poco variado
Practicas reales complicadas de
preparar.
Tiempos muertos entre practicas
Posibles conflictos entre asignaturas
Mayor tiempo de realización.
39
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Ventajas Inconvenientes
Cada alumno dispone de un entorno Entorno más complejo
independiente Requiere equipos actualizados para los
Practicas menos rígidas. alumnos
Más sencillo simultanear prácticas. Los alumnos tienen que administrar el gestor
El alumno dispone de un entorno de de máquinas virtuales.
pruebas. Requiere un mayor conocimiento del alumno.
El alumno aprende virtualización. Puede ocasionar problemas el desconocimiento
del alumno del software de virtualización.
40
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Utilización de IaaS
Cada vez es más evidente que el futuro está en la utilización el IaaS, ya que conlleva grandes
beneficios como que nunca tendremos que cambiar el hardware de los equipos de los
alumnos, entre otros muchos que comentaremos a continuación.
Ventajas Inconvenientes
Creación/uso/eliminación de instancias Imprescindible administración del Cloud
rápido y sencillo
41
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
3. Realiza la conjuración del servicio. Si esta conjuración dura más de una clase, suspende
la instancia y la reinicia en la siguiente clase.
4. Una vez terminada la configuración puede crear una instantánea para utilizarla como
base en posteriores prácticas.
42
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En este proyecto analizo la situación desde el punto de vista de mi centro educativo, pero
OpenStack puede ser desplegado en cualquier centro educativo o empresa privada y los
siguientes datos pueden ser de ayuda para su despliegue.
Ventajas e Inconvenientes
He analizado las ventajas e inconvenientes del despliegue de OpenStack en mi centro
educativo y he llegado a las siguientes conclusiones:
Ventajas Inconvenientes
Los profesores ya no tendría que pasarnos más
ISOs por pendrive o por red. La inversión inicial puede ser importante.
43
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Algunos de los cambios que nos harían falta serían los siguientes:
El problema de acceder al cloud desde internet es la pésima velocidad de subida con la que
actualmente cuanta nuestro centro, actualmente contamos con una velocidad de subida de
800 Kbps, lo cual hace imposible el acceso al cloud desde fuera. Este es el motivo por el cual
descartamos la opción de implementar un Router Gbps.
44
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para este primer presupuesto vamos a utilizar los equipos de la clase de ASIR2 para formar un
cloud de manera que luego tendremos que comprar otros equipos con menos recursos para
que los alumnos de ASIR2 puedan acceder al cloud, sin embargo la clase de ASIR1 dejaremos
los equipos que tienen para acceder al cloud.
Actualmente ninguna clase del IES Romero Vargas cuenta con cableado Cat. 6 y tampoco
cuentan con Switch o Paneles de parcheo con puertos Gbps por lo que tendremos que
comprar el cableado de las dos clases, 3 Stich y 3 paneles de parcheo con puertos Gbps.
Recordemos que este presupuesto es el más austero y por lo tanto vamos a elegir unos
componentes un precio menor pero esto conlleva también un menor rendimiento del cloud.
Procedimiento
Equipos para el Cloud: En la clase de ASIR-2 actualmente contamos con 11 equipos con
unas características medias, que son los que formaran parte del cloud, para ahorrar
costes en comprar servidores De manera que contaremos con 1 nodo controlador y 10
nodos de computación.
Adquisición de equipos con pocos recursos para los alumnos: Ya que los equipos de
gama media van a pasar a formar parte del cloud necesitaremos algunos equipos para
que los alumnos se conecten al cloud, estos equipos pueden ser raspberry pi o
equipos antiguos.
Vamos a adquirir un armario para almacenar el Switch del Cloud y el Router. (En las
otras clases ya están instalados)
45
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Lista de la compra
46
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
*Hay que tener en cuenta que este modelo no se ajusta totalmente a la realidad, ya que habría que añadir a este
modelo tanto el total de los nodos de computación restantes como todos los equipos de las clases además de los
paneles de parcheo.
47
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Dado que cada equipo de la clase ASIR-2 (Equipos del cloud) cuenta con 6 GB de memoria
RAM, 4 núcleos y 80 GB de almacenamiento.
Finalmente tendríamos un cloud con 1 nodo controlador y 10 nodos de computación, así que
con este despliegue nuestro cloud tendrá las siguientes características:
Componente Valor
Cores 40
Memoria RAM 60 Gb
Almacenamiento 800 Gb
Como ya dije antes este despliegue es un tanto austero y no permitirá a los alumnos ejecutar
demasiadas instancias por la falta de recursos.
Dado que disponemos con 60 GB de memoria RAM y tenemos que abastecer a unos 35 y 2
profesores alumnos entre la clase de ASIR-1 y ASIR-2. Con este despliegue no llegamos a los
dos GB de memoria RAM por alumno, lo cual es poquísimo si el alumno está trabajando con
instancias con Windows sobre todo, en el caso que el alumno utilice instancias con SO Linux la
demanda de memoria será menor pero aun así no se recomienda este despliegue con un cloud
con unos recursos tan bajos.
Este despliegue es posible y puede funcionar con algo más de fluidez si se decide comprar
algunos nodos de computación más o realizar una ampliación de memoria RAM a los nodos
que ya tenemos.
48
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En este proyecto vamos a utilizar los equipos tanto de ASIR-1 como de ASIR-2 para el Cloud, de
manera que como estos estarán prestando servicios dentro del Cloud tendremos que adquirir
nuevos equipos para que los alumnos se conecten al Cloud en este caso hemos optado
adquirir para todos estos equipos Raspberry Pi.
Como ya hemos comentado anteriormente ninguna clase del IES Romero Vargas cuenta con
cableado Cat. 6 y tampoco cuentan con Switch o Paneles de parcheo con puertos Gbps por lo
que tendremos que comprar el cableado de las dos clases, 3 Stich y 3 paneles de parcheo con
puertos Gbps por lo que también lo incluiremos en este presupuesto.
Así como el presupuesto anterior se intentó hacer lo más austero posible en este proyecto está
basado en recursos de gama media con lo que mejorará el rendimiento del cloud y de la red
pero aumentará el coste de despliegue.
49
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Procedimiento
Equipos para el Cloud: En esta ocasión vamos a incluir en el Cloud tanto los equipos de
ASIR-1 como los de ASIR-2.
Entre las dos clases contamos con 27 equipos, que son los que formaran parte del
cloud, para ahorrar costes en comprar servidores.
Adquisición de equipos con pocos recursos para los alumnos: Ya que los equipos de los
alumnos van a pasar a formar parte del cloud necesitaremos algunos equipos para que
los alumnos se conecten al cloud, estos equipos pueden ser raspberry pi o equipos
antiguos.
Vamos a adquirir un armario para almacenar el Switch del Cloud y el Router. (En las
otras clases ya están instalados).
Para almacenar los equipos hemos vamos a utilizar unas nueva cajas, sustituyendo las
que tienen los equipos actualmente por unas cajas que nos permitirán formar un rack.
Finalmente también necesitamos un armario rack para meter todos los equipos y
mantener el cloud de una manera centralizada.
50
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Lista de la compra
51
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
*Hay que tener en cuenta que este modelo no se ajusta totalmente a la realidad, ya que habría
que añadir a este modelo tanto el total de los nodos de computación restantes como todos los
equipos de las clases además de los paneles de parcheo.
52
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
La clase de ASIR-1 cuenta con un total de 16 equipos y cada uno cuenta con 4 GB de memoria
RAM, 2 núcleos, y 160 GB de almacenamiento.
Los equipos de ASIR-2 cuenta con un total de 11 equipos y cada uno cuenta con 6 GB de
memoria RAM, 4 núcleos y 160GB de almacenamiento.
Finalmente tendríamos un cloud con 1 nodo controlador y 26 nodos de computación, así que
con este despliegue nuestro cloud tendrá las siguientes características:
Componente Valor
Núcleos 72
Almacenamiento 4160 Gb
Dado que disponemos con 124 GB de memoria RAM y tenemos que abastecer a unos 35
alumnos y a 2 profesores entre la clase de ASIR-1 y ASIR-2. Con este despliegue logramos
aumentar hasta casi los 4 GB de memoria RAM por alumno, lo cual sigue siendo poco para que
el alumno pueda trabajar con fluidez y a pleno rendimiento, como siempre esta cantidad de
RAM puede ser suficiente si el alumno trabaja con instancias con SO Linux ya que estas
consumen muchos menos recursos pero nos quedaremos corto de memoria RAM si utilizamos
varias instancias con Windows o las distribuciones de Linux que consumen más recursos.
53
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como ya hemos comentado anteriormente ninguna clase del IES Romero Vargas cuenta con
cableado Cat. 6 y tampoco cuentan con Switch o Paneles de parcheo con puertos Gbps por lo
que tendremos que comprar el cableado de las dos clases, 3 Stich y 3 paneles de parcheo con
puertos Gbps por lo que también lo incluiremos en este presupuesto.
En este proyecto vamos a optar por poner un Router Gbps para aumentar el rendimiento y así
tener la red completamente en Gbps.
54
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Procedimiento
Equipos para el Cloud: Los equipos que formarán el Cloud serán equipos totalmente
nuevos y los equipos que actualmente tienen los alumnos los utilizarán para acceder al
Cloud.
Vamos a adquirir un armario para almacenar el Switch del Cloud y el Router. (En las
otras clases ya están instalados).
55
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En este proyecto pretendemos que cada alumno tenga disponibles los siguientes recursos:
Para conseguir esa capacidad para cada alumno hemos optado por obtener 5 servidores de los
cuales cuatro serán destinados como nodos de computación con unas características
superiores y el restante será el nodo controlador.
Sumando el total de los nodos de computación (4 nodos), finalmente nuestro Cloud tendrá la
siguiente capacidad de computación.
Componente Valor
Núcleos 64
Almacenamiento 8 Tb
Una capacidad más que suficiente para lo que pretendemos que consuma cada alumno, si es
verdad que hay que tener en cuenta que vamos a implementar un RAID de tipo 1 en cada
servidor para evitar la pérdida de información, por lo tanto perderemos la mitad de la
capacidad de almacenamiento.
56
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Lista de la compra
Para comprar unos servidores con estas características hemos contactado con Dell y entre la
amplia gama de servidores que nos han dado a elegir, finalmente nos hemos decantado por los
siguientes:
El modelo elegido para los nodos de computación es un Dell PowerEdge R720 lo hemos
configurado a nuestro gusto de manera que le hemos puesto dos CPU modelo Intel Xeon E5-
2670 que cuenta con 8 núcleos y 16 hilos de ejecución cada una, le hemos ampliado la
memoria RAM a 64 GB (4x16GB), además le hemos añadido 2 discos duros de 1 TB que los
vamos a configurar en RAID 1.
El nodo controlador hemos elegido tambien un Dell PowerEdge R720 pero esta vez con lo
hemos configurado con unas características mucho menores para reducir costes, ya que en
este nodo no se ejecutará ninguna instancia, lo hemos configurado con una sola CPU modelo
Intel Xeon E5-2603 que cuenta con 4 núcleos, le hemos ampliado la memoria RAM a 16 GB,
además le hemos añadido 2 discos duros de 1 TB que los vamos a configurar en RAID 1.
57
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
58
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
*Hay que tener en cuenta que este modelo no se ajusta totalmente a la realidad, ya que habría
que añadir a este modelo tanto el total de los nodos de computación restantes como todos los
equipos de las clases además de los paneles de parcheo.
Este modelo de despliegue de OpenStack como habréis observado es bastante más caro, pero
se podrá trabajar de una manera eficiente y a un rendimiento bastante alto. Hay que tener en
cuenta también que el desembolse se hace en la instalación luego, nunca más tendremos que
cambiar los equipos de los alumnos, por lo que terminaríamos amortizando el despliegue.
59
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Con EC2, que utiliza y pagar sólo por la capacidad que usted necesita. Esto elimina la necesidad
de hacer compras de hardware grande y costoso, reduce la necesidad de pronosticar el tráfico,
y permite escalar automáticamente los recursos de TI para hacer frente a los cambios en los
requisitos o los picos de popularidad relacionada con su aplicación o servicio.
Historia
A finales de 2003, Chris Pinkham y Benjamin Black presentaron un documento proponiendo a
la compañía construir y vender un conjunto de servicios basados en la experiencia de la
construcción y uso de la infraestructura de Amazon.com. El primer servicio AWS lanzado para
el uso público era Simple Queue Service en noviembre de 2004. Amazon EC2 fue construido
por un equipo en África del Sur, Ciudad del Cabo bajo Pinkham cuyo desarrollador líder fue
Chris Brown.
En junio de 2007, Amazon afirmó que más de 330.000 desarrolladores se habían inscrito para
utilizar Amazon Web Services.
Actualmente Amazon AWS es con bastante diferencia la plataforma IaaS con mayor cuota de
mercado debido a que su rendimiento es muy bueno además de que fue el pionero en
despliegue de IaaS.
Aunque Amazon EC2 es la plataforma más potente hay muchas plataformas que vienen
apostando fuerte como pueden ser Windows Azure o Google Cloud Platform, así como
proyectos de Open Source como OpenStack.
60
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Amazon publica AMIs muchos que contienen configuraciones de software comunes para el uso
público. Además, los miembros de la comunidad de desarrolladores de AWS han publicado sus
AMIs personalizados. También puede crear su propio personalizado o IAM IAM, al hacerlo le
permite comenzar rápidamente y fácilmente las nuevas instancias que cuentan con todo lo
necesario. Por ejemplo, si su aplicación es un sitio web o servicio web, el IAM podría incluir un
servidor web, el contenido estático asociado, y el código de las páginas dinámicas. Como
resultado, después de iniciar una instancia de este IAM, el servidor web se inicia, y su
aplicación está lista para aceptar peticiones.
Puede lanzar diferentes tipos de instancias de una sola AMI. Un tipo de instancia que
determina esencialmente el hardware de la computadora host utilizado para la instancia. Cada
tipo de instancia ofrece diferentes capacidades de cómputo y memoria. Seleccione un tipo de
instancia sobre la base de la cantidad de memoria y potencia de cálculo que usted necesita
para la aplicación o el software que va a ejecutarse en la instancia. Para obtener más
información, vea Tipos disponibles de instancia. Puede iniciar varias instancias de un IAM,
como se muestra en la siguiente figura.
61
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Cada región contiene múltiples ubicaciones distintas llamadas Zonas de disponibilidad. Cada
zona de disponibilidad está diseñado para estar aislado de catástrofes, cuenta con baja
latencia de conectividad de red a otras zonas de la misma región. Con el lanzamiento de las
instancias en Zonas de disponibilidad por separado, usted puede proteger sus aplicaciones de
la falla de un solo lugar.
62
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Almacenamiento
Amazon nos proporciona tres modos de almacenamiento que son los siguientes:
Amazon EBS
Amazon volúmenes de EBS es la opción de almacenamiento recomendada para la mayoría de
los casos. Amazon EBS ofrece un almacenamiento persistente para las instancias a nivel de
bloque de almacenamiento.
Amazon EBS es especialmente adecuado para aplicaciones que requieren una base de datos,
un sistema de archivos o el acceso a los recursos a nivel de bloque de almacenamiento.
Como podemos ver en el grafico anterior, podemos adjuntar varios volúmenes a una instancia.
Además hacer una copia d seguridad de los datos se puede crear una instantánea de un
volumen de EBS y este se almacenará en Amazon S3. Es puede crear un nuevo volumen en
Amazon EBS a partir de una instantánea y adjuntarlo a otra instancia.
63
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Almacenamiento de Instancia
Todos los tipos de instancias, con excepción de los casos Micro, cuentan con un
almacenamiento temporal a nivel de bloque de almacenamiento. Este es el almacenamiento
que esta físicamente conectado a la computadora host. Este volumen será eliminado cuando la
instancia termina o es eliminada (Lo que en OpenStack llamamos almacenamiento Efímero).
Almacén de instancias es una opción para el almacenamiento temporal de bajo costo. Puede
utilizar volúmenes Instancia de almacén si no se requiere la persistencia de datos. (Lo que en
OpenStack llamamos almacenamiento Efímero).
Amazon S3
Amazon S3 es el almacenamiento por Internet. Proporciona una interfaz de servicio web
simple que le permite almacenar y recuperar cualquier cantidad de datos desde cualquier
lugar en la web.
Bases de Datos
Amazon EC2 nos permite implementar también bases de datos de una forma fácil y dándonos
a elegir entre varios tipos siendo los siguientes los más comunes:
Servicio de base de datos relacional (Amazon RDS), que le permite obtener fácilmente
una base de datos relacional gestionado en la nube
Iniciar una instancia de una base de datos de AMI, y utilizar esa instancia EC2 como la
base de datos
Amazon RDS ofrece la ventaja de manejar las tareas de administración de bases de datos, tales
como parchear el software, copias de seguridad y almacenar las copias de seguridad.
Redes y Seguridad
Cada instancia que se lanza en Amazon EC2 se le asigna una dirección IP pública para su
acceso. En caso de que alguna aplicación necesite una IP estatica, Amazon EC2 tambien ofrece
direcciones IP estáticas.
Puede utilizar grupos de seguridad para controlar quién puede acceder a sus instancias. Estos
son análogos a un servidor de seguridad de red entrante que le permite especificar los
protocolos, puertos y rangos de IP de origen que se les permite llegar a las instancias. Puede
crear varios grupos de seguridad y asignar diferentes reglas para cada grupo. A continuación,
puede asignar a cada instancia de uno o más grupos de seguridad, y usamos las reglas para
determinar qué tráfico se deja que alcance la instancia. Puede configurar un grupo de
seguridad para que las direcciones IP solamente o grupos específicos de seguridad tienen
acceso a la instancia. (Este proceso ya lo conocemos, ya que es prácticamente idéntico en
OpenStack).
64
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
65
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Con EC2, solo pagaras por lo que uses, y no hay cargo mínimo. Los cargos se dividen en las
siguientes partes generales:
Instancia uso.
Transferencia de datos.
Almacenamiento.
Si el servicio no le convence o quiere cambiar a otros servicios OpenSource como por ejemplo
OpenStack se puede dar de baja fácilmente desde la web de Amazon AWS
http://aws.amazon.com.
66
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Amazon EC2 tiene muchos entornos predefinidos e imágenes disponibles, nosotros tan solo
tenemos que elegir la imagen y lanzar la instancia lo cual es una gozada, tanto por la facilidad
de uso, como por el rendimiento, yo ya digo que me quedo con Amazon EC2 como IaaS de
pago por uso.
Amazon nos permite probar AWS de manera gratuita durante un año con una serie de
limitaciones, a nosotros nos basta con lo que nos da Amazon gratuitamente para hacer
nuestras pruebas y conocer su funcionamiento que es el objetivo. A continuación muestro una
captura de pantalla de la publicidad de la prueba gratuita que he comentado antes.
Como Amazon no nos cobra hasta dentro de un año cuando terminemos las pruebas nos
podremos dar de baja del servicio de la siguiente manera:
1. Ir a http://aws.amazon.com.
5. Si cancela AWS, esto cancela todos los servicios, incluyendo EC2. En virtud de cancelar
su cuenta AWS página, haga clic en Cancelar su cuenta AWS. Alternativamente, usted
puede cancelar los servicios individuales, vaya a cancelar los servicios seleccionados,
seleccione Amazon Elastic Compute Cloud, a continuación, haga clic en cancelar el
servicio.
67
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez estemos registrados en la plataforma vamos a crear una instancia de prueba para
comprobar el funcionamiento del servicio.
Una vez entramos en la plataforma nos mostrará todos los servicios de Amazon AWS
seleccionamos AC2 que es componente en el que nos vamos a centrar.
A continuación nos muesta EC2 Dashboard que es la interfaz de administración via web de A2C
desde la cual podemos administrar los servidores, lanzar instancias, crear volúmenes, etc. EC2
es el equivalente a Horizon en OpenStack.
68
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En esta prueba vamos a crear una instancia, para ello seleccionamos “Instances” en el menú
izquierdo.
Seguidamente, EC2 Dashboard nos muestra las instancias que tenemos actualmente creadas,
en este caso no tengo ninguna, vamos a crear una.
69
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una gran ventaja que tiene Amazon AWS con respecto a OpenStack es que Amazon AWS ya
nos ofrece una gran cantidad de imágenes tanto Windows como de distribuciones Linux ya
instaladas en el servicio, con lo cual nos ahorramos tener que subirlas nosotros, simplemente
elegimos simplemente el sistema operativo que queremos y ya estará lista para lanzar la
instancia. En este caso vamos a elegir una imagen de Windows Server 2012.
Una vez seleccionada la instancia debemos elegir las características que va a tener nuestra
instancia, lo que en OpenStack llamamos el “Sabor” en este caso vamos a el tipo “t1.micro” ya
que es una versión gratuita y así evitamos cargos adicionales.
70
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez elegidas las características de la instancias (Sabor) nos permite añadirle un volumen a
la instancia en este caso vamos a añadirle un volumen de 30Gb.
71
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En este caso como no tenemos ningún grupo vamos a seleccionar “Create a new security
group” para crear un nuevo grupo de seguridad llamado “Acceso TOTAL”.
Vamos a añadir una regla a este grupo poco recomendable ya que permitiremos todo el tráfico
desde cualquier dirección IP hacia la instancia pero al tratarse de una prueba esto tiene poca
importancia.
Una vez creado el grupo de seguridad simplemente seleccionamos el grupo que acabamos de
crear.
72
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Finalmente nos mostrará un resumen de todas las opciones seleccionadas antes de lanzar la
instancia para que confirmemos que son correctas.
Al igual que “Ceilometer” en OpenStack, EC2 nos termite también un servicio de telemetría
para controlar el consumo de recursos.
73
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez confirmado que las opciones verdaderamente son las que queremos debemos
seleccionar en la parte inferior derecha el botón que dice “Launch” para lanzar la instancia.
Sin embargo debemos de configurar una cosa más antes de lanzar la instancia, ya que
debemos crear un par de claves RSA para poder acceder a ella. Seleccionamos “Create a new
key pair” y ponemos el nombre que queramos yo en mi caso le voy a poner “Clave_Jorge”.
Una vez definida la clave seleccionamos “Download key pair” en la parte inferior y comenzará
la descarga de nuestra clave.
Si vamos a la ruta donde hemos descargado la clave podemos comprobar que es una clave RSA
verdaderamente simplemente abriendo el archivo como se ve a continuación.
74
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez cambia el icono nos indica que la instancia está lista para su acceso
75
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para acceder a la instancia debemos seleccionar el botón de la parte superior que dice
“Connect”, nos mostrará la siguiente ventana.
Para acceder a ella mediante escritorio remoto EC2 nos lo pone muy fácil simplemente
seleccionamos la opción de “Download Remote Desktop File” y comenzará la descarga de un
archivo con extensión “.rdp” que directamente al ejecutarlo conectaremos con la instancia.
76
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez descifrada la clave RSA nos muestra la clave del usuario administrador y ya podremos
acceder mediante escritorio remoto a la instancia.
Cuando iniciamos sesión por primera vez el proceso es algo más lento porque está creando el
perfil.
77
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Terminado el proceso de creación del perfil nos mostrará el escritorio de Windows 2012
Server.
78
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como podemos comprobar tendremos acceso a internet sin problemas la siguiente página
Web muestra como he entrado sin problema en la página web del IES Romero Vargas.
Con esto terminamos el proceso de creación de la instancia y como acceder a ella, la verdad
que EC2 es relativamente fácil te utilizar, además en la página web de Amazon AWS podemos
encontrar información de todo tipo acerca de cómo utilizar sus servicios.
79
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
TryStack
TryStack es una plataforma que nos permite utilizar OpenStack gratuitamente para hacer
pruebas y para probar configuraciones. Es una manera de comenzar con OpenStack solo nos
permitirá lanzar instancias con unos recursos limitados, pero nos servirá para una primera
toma de contacto. Cabe decir que TryStack es solo para entorno de pruebas nunca lo utilicéis
para entornos de producción ya que pueden eliminar los recursos en cualquier momento.
Para acceder debemos entrar en la web www.trystack.org donde nos encontraremos con la
siguiente pantalla en la que en la parte derecha vemos un apartado que dice “Join Our
Facebook Group” para probar Trystack debemos de registrarnos con nuestro Facebook y
también debemos de registrarnos en el grupo de Facebook de Trystack, lo cual lo podemos
hacer sin problemas, no te enviaran publicidad ni nada parecido.
Trystack esta respaldado por grandes empresas que apollan el proyecto como las que
podemos ver a continuación:
80
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Debemos tener en cuenta que el servicio Trystack recibe una gran afluencia de solicitudes
debido a la gran cantidad público relacionado con OpenStack que quiere probar el servicio, por
lo tanto debemos de ser pacientes, ya que desde nos registramos en el servicio hasta que nos
validan la solicitud pueden pasar varios días.
Una vez nos validen la solicitud simplemente en la misma página de Trystack seleccionamos
“Login”.
Por ultimo comentar que Trystack se encienta ahora dando servicio de la versión “Havana” de
OpenStack y se están planteando actualizar a nuevas versiones como “Icehouse”.
Vamos a crear una instancia en Trystack para comprobar que funciona correctamente aunque
el proceso de creación se omitirá en este apartado ya que se explicara en el capítulo de
administración de OpenStack.
Una vez hemos accedido mediante nuestro Facebook tendremos operativo un servidor de
OpenStack como podemos ver a continuación podemos acceder sin problemas.
81
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En este caso vamos a instalar DevStack en una máquina virtual con VMW pero es preferible
instalarlo en una maquina física para obtener un mejor rendimiento, además vamos a instalar
la última versión de OpenStack Icehouse.
Para desplegar OpenStack mediante DevStack necesitaremos una máquina virtual o física con
al menos 2 Gb de memoria RAM.
Otro de los requisitos es que DevStack solo permite alguno de los siguientes Sistemas
Operativos:
Nosotros vamos a optar por instalarlo en un Ubuntu 14.04 LTS para comprobar que también
funciona correctamente, no es necesario que sea Ubuntu 12.04, eso lo dice la página oficial de
DevStack pero estará pendiente de actualización.
nano /etc/network/interfaces
Yo en mi caso lo he configurado de la siguiente manera, la configuración dependerá de la
configuración de la red.
82
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez comprobemos que tenemos conexión sin problemas a internet con la nueva dirección
IP fija vamos a actualizar los repositorios con la siguiente orden:
apt-get update
Una vez finalizada la actualización vamos a instalar GIT para que nos permita descargar los
archivos necesarios para la instalación de DevStack ya que estos archivos se encuentran en un
repositorio GIT.
Una vez instalado Git, podemos encontrar la ruta a este repositorio en la misma página de
DevStack. Los desarrolladores de DevStack se encargan de actualizar estos repositorios a las
nuevas versiones de OpenStack.
Debemos tener en cuenta que debemos ejecutar la línea anterior con un usuario sin
privilegios, al ejecutar esa línea de comando comenzará la descarga de DevStack.
cd devstack
Dentro de esa carpeta podremos ver cómo están todos los script que realizarán en despliegue
de OpenStack
83
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Antes de ejecutar nada debemos de elegir la versión de OpenStack que deseamos que nos
instale Devstack, actualmente podemos elegir algunas de las siguientes opciones (Debemos
estar dentro de la carpeta devstack):
OpenStack- Havana
$ git checkout stable/havana
OpenStack- Icehouse
$ git checkout stable/icehouse
En este documento, como ya hemos comentado antes vamos a desplegar la última versión de
OpenStack Icehouse, por lo tanto ejecutamos la siguiente línea.
Con la línea anterior se realizan las modificaciones para la instalación de la última versión,
recibiremos el siguiente mensaje.
Antes de ejecutar ningún script debemos de crear el fichero local.conf donde configuraremos
las contraseñas que utilizarán los servicios, para que luego podamos acceder a ellos sin
problemas, en este caso solo vamos a configurar las contraseñas pero podemos configurar
muchas más opciones, vallan a la siguiente página para ver algunas de ellas
http://devstack.org/configuration.html
Vamos a crear el fichero local.conf dentro de la carpeta devstack para ello ejecutamos la
siguiente línea
$ nano local.conf
Dentro del fichero debemos de escribir lo siguiente:
[[local|localrc]]
ADMIN_PASSWORD=password
MYSQL_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=tokentoken
84
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Le damos permisos al fichero para no tener problemas luego con los permisos
Finalmente ya podemos ejecutar el script que comenzará la instalación este script se llama
stack.sh y lo podemos encontrar lógicamente dentro de la carpeta devstack.
$./stack.sh
Nos requerirá la contraseña del usuario que utiliza sudo y comenzará la instalación.
Una vez terminado el proceso de instalación, devstack nos muestra la dirección desde la cual
podemos acceder a Horizon, en mí caso es la siguiente:
http://192.168.128.128
85
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Vamos nuestro navegador Web y entramos en la dirección que nos muestra y veremos la
interfaz de Horizon que nos requiere un usuario y una contraseña para acceder, en mi caso yo
en el fichero local.conf puse “password” como contraseña, por lo tanto accedo con el usuario
admin con contraseña password.
Finalmente cabe destacar una cosa muy importante, como Devstack esta creado para entornos
de prueba cada vez que reiniciemos nuestra máquina, perderemos el acceso a OpenStack, para
solucionar este problema, después de cada reinicio debemos de ir a la carpeta “devstack” y
ejecutar el siguiente script rejoin-stack.sh.
86
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
$./rejoin-stack.sh
Debemos esperar un poco a que termine el proceso de relanzamiento de OpenStack y
tendremos disponible de nuevo Horizon en la misma dirección que anteriormente desde el
navegador.
87
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En primer lugar tenemos que tener en cuenta la memoria RAM que disponemos. Las cuatro
máquinas que se despliegan necesitan 2,5 GB de RAM, por lo que creo que con un ordenador
de 4 GB sería suficiente. Por otro lado partimos de que estamos usando un equipo con la
extensión de virtualización hardware VT-x/AMD-v activada.
Hay que tener en cuenta que este despliegue es aconsejable hacerlo en máquinas físicas de lo
contrario el rendimiento será pésimo, además no es posible hacer esta configuración en
VMware es donde yo lo he intentado y da un error al instalar el nodo de almacenamiento
debido a que no reconoce el formato de discos de VMware.
nano /etc/network/interfaces
Yo en mi caso lo he configurado de la siguiente manera, la configuración dependerá de la
configuración de la red.
Una vez comprobemos que tenemos conexión sin problemas a internet con la nueva dirección
IP fija vamos a actualizar los repositorios con la siguiente orden:
apt-get update
Como anteriormente, los datos se encuentran en un repositorio Git así que vamos a instalar
Git con la siguiente orden:
88
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
El software que se va a utilizar para ejecutar las máquinas virtuales es VirtualBox. Para la
instalación, ejecutamos la siguiente orden:
# wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.4.3_x86_64.deb
# dpkg -i vagrant_1.4.3_x86_64.deb
Las máquinas virtuales que se crean tienen el sistema operativo Ubuntu 12.04 amd64, por lo
tanto es conveniente descargar el box de vagrant precise64 con el siguiente comando:
Por último vamos a utilizar ansible, una herramienta que nos permite automatizar y gestionar
la configuración de nuestras máquinas. Podemos utilizar la herramienta pip para instalar la
última versión de este programa:
Un vez que tenemos instaladas las herramientas necesarias, vamos a obtener el repositorio
desde el que vamos a realizar la instalación, para ello tenemos que clonarlo ejecutando los
siguientes comandos:
Una vez descargado accedemos a la carpeta que se nos ha descargado con el nombre de
openstack-ansible
cd openstack-ansible
89
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Antes de por último, ejecutar los script de que realizarán la instalación debemos tener en
cuenta que existe un error con esta instalación que debemos de arreglar antes de realizar la
instalación. El problema es que no se sustituye correctamente la variable que contiene la
contraseña de administrador en la instalación, por lo tanto la instalación nos funcionará
correctamente pero no podremos acceder con el usuario “admin” solo con el usuario “demo”,
esto lo arreglaremos de la siguiente manera:
admin_password: “secret”
90
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Debemos ser pacientes, ya que el proceso de instalación es bastante largo, puede llegar a
tardar hasta 1 hora.
Una vez finalizada la instalación, Horizon estará disponible y podremos acceder a él mediante
cualquier navegador web accediendo a la siguiente dirección:
http://10.1.0.2/horizon
Como podemos comprobar podremos acceder sin problemas con el usuario “admin” y
contraseña “secret”, también podremos acceder con el usuario “demo“ con contraseña
“secret” pero con este último no tendremos privilegios de administrador.
91
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez dentro vemos la interfaz de Horizon desde la cual podremos administrar OpenStack de
una manera muy eficiente.
92
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Comentar tambien que si accedemos a este directorio podemos manejar las máquinas
virtuales (pararlas, arrancarlas o destruirlas). Estas tres acciones se harían con los siguientes
comandos:
openstack-ansible/testcases/standard#vagrant halt
openstack-ansible/testcases/standard#vagrant up
openstack-ansible/testcases/standard#vagrant destroy
Con esto dados por terminada la instalación de OpenStack con Vagrant utilizando varios
nodos, cabe comentar que aunque este esquema se asemaja bastante a un despliegue real de
OpenStack no es nada aconsejable para una implementación real, ya que todos los
componentes estan virtualizados.
93
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Gestión de imágenes
OpenStack utiliza imágenes de sistemas operativos previamente instalados para crear las
instancias que se ejecutan en los nodos de computación. Estas imágenes pueden tener
diferentes formatos, pueden ser sistemas operativos limpios recién instalados o por contra
sistemas con muchas aplicaciones completamente configuradas y pueden ser incluso
instantáneas (snapshots) de instancias que se están ejecutando o se han ejecutado en alguno
de los nodos de computación.
Raw: Formato de imagen de disco no estructurado. Es el formato básico que puede crearse
por ejemplo con la aplicación dd, no está optimizado para su utilización en virtualización, pero
puede manejarse con herramientas básicas del sistema (dd, parted, fdisk, mount, kpartx, ...)
vhd: Usado por herramientas de virtualización como VMWare, Xen, Microsoft, VirtualBox y
otros.
vmdk Otro formato usado por herramientas de virtualización como por ejemplo VMWare
player.
qcow2: Formato de disco soportado por el emulador QEMU que permite expandir
dinámicamente y soporta Copy on Write.
Aki: Indica que la imagen guardada en Glance es una Amazon Kernel Image.
Ari: Indica que la imagen guardada en Glance es una Amazon Ramdisk Image.
Ami: Indica que la imagen guardada en Glance es una Amazon Machine Image.
94
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Bare: Esto indica que no existe formato sobre los metadatos de la imagen.
ovf Open Virtualization FormatEstándar: abierto que están implementando diferentes
soluciones de virtualización/cloud.
Aki: Indica que la imagen guardada en Glance es una Amazon Kernel Image.
Ari: Indica que la imagen guardada en Glance es una Amazon Ramdisk Image.
Ami: Indica que la imagen guardada en Glance es una Amazon Machine Image.
95
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Encontraremos una apartado que dice “Imágenes” si hacemos clic en él nos mostrará todas las
imágenes que Glance conoce, como todavía no hemos añadido ninguna solo nos aparecerán
las Cirros que se crean por defecto durante la instalación.
96
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como podemos ver en la captura de pantalla anterior hay un botón que dice “Crear imagen”
hacemos clic en él.
Horizon nos muestra un pequeño formulario para que pongamos el nombre, descripción y
seleccionemos la imagen que queremos exportar Glance.
97
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Una vez seleccionada la imagen que queremos, debemos completar el formulario con el
formato de la imagen, además de otros valores opcionales como la arquitectura o el disco duro
mínimo para lanzar una instancia con este tipo de imagen y hacemos clic en “Crear Imagen” y
comenzará el proceso de subida.
Una vez finalizado el proceso podemos comprobar como la imagen ya nos aparece disponible
para su uso.
98
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Grupos de seguridad
Un grupo de seguridad no son más que reglas de cortafuegos (iptables) que controlan el
acceso a las instancias mediante la dirección IP flotante.
Vamos a crear un grupo se seguirdad mediante Horizon, para ello vamos a la sección “Acceso
y seguridad” de nuestro proyecto asignado y nos mostrará todos los grupos que tenemos
actualmente durante la instalación se nos creó un grupo llamado “Default”.
Nosotros vamos a crear uno nuevo llamado “AccesoInstancia”, para ello hacemos clic en la
parte derecha en la sección “Crear grupo de seguridad”.
Ahora el grupo de seguridad está creado pero no tiene ninguna regla, por lo tanto no sabrá
que tráfico permitir o cual denegar, vamos a crear reglas haciendo clic en “Agregar regla”.
99
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Horizon nos muestra las diferentes opciones que podemos elegir con respecto al tráfico hacia
la instancia.
Vamos a crear una regla con la que permitamos todo el tráfico ICMP hacia nuestra instancia
desde cualquier dirección IP, esta regla sería así:
100
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Pares de claves
Si queremos tener acceso a nuestra instancia mediante SSH debemos de crear un par de claves
RSA para autenticarnos, para crearlas seguiremos el siguiente proceso.
Dentro del menú “Acceso y seguridad” vamos a la pestaña que dice “Pares de claves” y
seleccionamos la opción de la parte superior derecha que dice “Crear par de claves”, le
asignamos un nombre a nuestro par de claves, yo en mi caso le he puesto “Clave_Jorge”.
La descarga se debe realizar sin problemas y tendremos un archivo con el siguiente formato:
101
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Sabores (Flavors)
Como ya hemos explicado anteriormente un sabor define para una instancia el número de
CPUs virtuales, la RAM, si dispone o no de discos efímeros, etc. En este apartado vamos a crear
nosotros uno de prueba para las instancias con Linux.
OpenStack preinstala una serie de sabores, que el administrador puede modificar, estos
sabores se muestran a continuación.
Para crear un nuevo sabor debemos de hacer clic en la parte superior derecha donde dice
“Crear sabor”.
En el siguiente formulario nos muestra nos pide un nombre, nuemro de VCPUs, RAM, Disco
duro, etc.
Nosotros hemos creado este sabor para instancias con Linux con las siguientes características:
102
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como podemos comprobar una vez creado ya nos aparece el nuevo sabor entre los sabores
creados previamente.
103
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Administración de instancias
Para lanzar una instancia vamos a alguno de los proyectos a los que estemos asignados, en mi
caso yo estoy utilizando el usuario admin en el proyecto admin, vamos a la sección instancias y
seleccionamos “Lanzar instancia” en la parte derecha.
En el menú de creación de instancias, Horizon nos requiere que introduzcamos algunos valores
como por ejemplo, nombre de la instancia, sabor, número de instancias, origen de arranque de
la imagen, etc.
Nosotros hemos elegidos los siguientes valores en la pestaña detalles para lanzar una imagen
de Debian 7.
Pero antes de lanzar la instancia debemos de seleccionar algunas opciones más que nos da
Horizon, como por ejemplo en la pestaña “Acceso y seguridad” le podemos asignar el grupo de
seguridad que queremos que tenga la instancia, le vamos a asignar el grupo que creamos
anteriormente con el nombre de “AccesoInstancia” si recordamos este grupo de seguridad le
asignamos una regla que permitía el trafico ICMP hacia la instancia.
104
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Además del grupo de seguridad también le asignamos el par de claves que creamos
anteriormente.
Pasado un tiempo el estado de la instancia cambiara a “Running”, una vez está corriendo la
instancia podremos acceder a ella sin ningún problema con haciendo clic en el nombre de la
instancia, luego veremos varias pestañas donde una de ellas es “Consola” que nos permitirá
acceder a nuestra instancia mediante VNC.
105
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Como se puede ver en la siguiente captura vemos lo que está pasando en nuestra instancia
mediante la pestaña consola y podremos administrar nuestra instancia desde esta conexión
VNC.
Instantánea (Snapshot)
Un snapshot es una fotografía (copia de seguridad) de un servidor virtual en un momento
determinado. El snapshot permite volver a ese estado si se produce algún fallo al realizar
acciones o modificaciones.
Vamos a crear una instantánea de la instancia que hemos creado previamente seleccionamos
en la parte derecha “Crear instantanea”
Una vez creada la instantánea podremos acceder a ella como si de una imagen se tratara.
106
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
107
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
108
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Por ultimo vamos a asociar el volumen que hemos creado ahora con la instancia que creamos
previamente para eso vamos a la pestaña “Más” del volumen y seleccionamos “Editar
asociaciones”
109
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Para hacer esta pequeña prueba de creación de redes vamos a crear 4 instancias, de manera
que vamos a dividirlas en 2 grupos, primer grupo será la clase de 1 ASIR y el segundo grupo
será la clase de 2 ASIR.
Ahora vamos a crear una subred con el mismo nombre que pertenecerá a ASIR 1
110
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Realizamos el mismo proceso para crear la red ASIR2 y al final del proceso obtenemos el
listado de las redes, en mi caso es algo así:
Como podemos ver tenemos creadas dos redes, ahora solo queda asignárselas a las instancias,
para realizar esta práctica hemos creado 4 instancias como ya hemos dicho le vamos a asignar
a dos de ellas la red ASIR 1 y a las otras dos la red ASIR 2.
En el proceso de creación de la instancia hay una pestaña que dice “Redes” este campo es
totalmente obligatorio y simplemente tenemos que seleccionar la red a la que queremos que
pertenezca en este caso queremos que pertenezca a ASIR1.
De igual forma vamos asignando las instancias a la red que queramos las instacias que hemos
creado en esta práctica son las siguientes:
Como podemos observar las instancias Jorge y José Profesor han obtenido una dirección IP
correspondiente a la red a la que pertenecen, en este caso ha ASIR 2, mientras que el resto
han obtenido una dirección IP de la red ASIR1.
111
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Topología de Red
Una de las grandes ventajas de Neutron es que nos permite ver la topología de red de una
manera rápida y sencilla, simplemente haciendo clic en menú de la izquierda y seleccionando
“Topología de red”.
112
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Proyectos
En el menú de la izquierda hacemos clic en “Panel de identidad” y dentro de él seleccionamos
proyectos, esto nos mostrará un listado de todos los proyectos que tenemos actualmente
creados. En la siguiente captura de pantalla se ven algunos proyectos que se han creado
durante la instalación.
Para crear un nuevo proyecto, podemos ver que en la parte superior derecha, hay un botón
que dice “Crear proyecto”, hacemos clic en él.
Además de la pestaña “Información del proyecto” tenemos dos pestañas más una que dice
“Miembros del proyecto” que la podremos utilizar para agregar usuarios a este proyecto y la
pestaña “Cuota” la cual vamos a ver algo más detenidamente.
113
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
En esta pestaña podemos establecer las limitaciones a las que estarán sujetas los diferentes
usuarios de OpenStack, entre ellas podemos definir, VCPUs, numero de instancias, numero
volúmenes, memoria RAM, etc.
114
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Usuarios
Podemos crear diferentes tipos de usuarios y asignarle roles diferentes a cada uno de ellos, de
manera que podemos limitar el acceso a los recursos, vamos crear un usuario de la siguiente
manera:
Para crear un nuevo usuario, podemos ver que en la parte superior derecha, hay un botón que
dice “Crear usuario”, hacemos clic en él.
115
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Finalmente hacemos clic en crear usuario y nuestro usuario estará creado correctamente y
podremos iniciar sesión con él.
116
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Conclusiones y agradecimientos
Finalizo este proyecto integrado sobre OpenStack “Icehouse” con la sensación de que aún
queda mucho por aprender en este gigantesco mundo que ha nacido entorno a OpenStack,
espero que este proyecto os haya servido de ayuda para conocer mejor OpenStack o para
comenzar vuestra andadura en este mundo. Mi consejo es que os forméis para poder aportar
algo a la comunidad, a la gran comunidad de OpenStack en todo el mundo que es lo que
verdaderamente están desarrollando este proyecto y los que hacen que esto salga a delante
con trabajo y esfuerzo.
Finalmente finalizo este proyecto animando a todo el mundo a aportar su grano de arena por
la comunidad de OpenStack, una buena forma de comenzar en este mundo es suscribiéndose
a las listas de correo para estar a la última y enteraros de todas las novedades.
117
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Bibliografía
118
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Glosario
Cloud: Son recursos informáticos virtualizados, disponibles para uso público o privado. Los
recursos cloud son múltiples (procesador y capacidad de cálculo, memoria, máquinas virtuales,
red, almacenamiento, archivado, plataformas, software…). El cloud puede destinarse al
consumo interno de las empresas, o también al leasing externo o pago por consumo. Las
infraestructuras que producen estos recursos virtuales y servicios pueden estar repartidas
geográficamente, consolidadas, conectadas para dar a un nivel de simulación superior la
imagen de que es independiente de esas consideraciones: es la nube.
Clonación: Acción de duplicar los recursos en el cloud para poder conservar las
configuraciones iniciales (instancias, proyectos, espacios de almacenamiento, espacios de
archivado…).
El tiempo total.
119
OpenStack - Jorge Guerrero Garrido.
OPENSTACK ICEHOUSE Curso 13/14
Instancia: Llamamos instancia a cada servidor virtual iniciado por un período de tiempo
determinado. Es decir, la instancia es un servidor (máquina virtual) que, por lo general, se
utiliza estratégicamente de forma provisional, en lugar de instalarlo definitivamente.
Pay as you go: Hablamos de «pay as you go» cuando se pagan los recursos por consumo real.
Solo se paga lo que se ha consumido, y no por adelantado.
Proyecto cloud: Un proyecto cloud de OVH es un espacio asociado a una vApp. Este espacio
engloba una vxLAN (red virtual dedicada) y un conjunto de máquinas virtuales y de reglas de
red.
RESTful: Es el tipo de desarrollo de API más utilizado hoy en día por la comunidad de
programadores.
Restauración: Puesta a disposición del cliente de los datos subidos con anterioridad a un
espacio de archivado.
vCloud: Se trata de la tecnología de control global (vCloud Datacenter) utilizada por OVH para
proporcionar los entornos de vApps y máquinas virtuales.
VApp: Se trata de una aplicación virtual que agrupa un conjunto de instancias, una vxlan y las
reglas de configuración de red relativas. Las direcciones IP externas también están asociadas a
esta aplicación y son enrutadas internamente hacia las diferentes máquinas.
VxLAN: Red virtual. En el marco de las instancias cloud, cada proyecto (espacio de instalación
de máquinas) está asociado a una vxLAN en una vApp.
120
OpenStack - Jorge Guerrero Garrido.