Xen Server
Xen Server
Xen Server
Julio, 2014
UNIVERSIDAD DE CASTILLA-LA MANCHA
ESCUELA SUPERIOR DE INGENIERÍA
INFORMÁTICA
En concreto, desde Bilib se pretende ofrecer a sus clientes una plataforma Cloud
donde puedan desarrollar nuevos servicios, o bien, desplegar instancias de servicios
preconfigurados. A tal fin, se dispone de una infraestructura de computación en el Centro
de Procesamiento de Datos del Parque Científico y Tecnológico de Albacete. Más
precisamente, estos equipos están alojados en las instalaciones de la empresa AreaProject,
encargada a su vez de su mantenimiento. El servicio contratado con AreaProject incluye la
gestión básica de los servidores virtualizados con XenServer.
I
ÍNDICE
III
4.4.2 ESCENARIO 2: CLIENTE INTERIOR ...............................................66
4.4.3 CONCLUSIONES SOBRE LA ESCALABILIDAD VERTICAL ........78
4.4.4 CONCLUSIONES FINALES SOBRE EL DISEÑO DEL SISTEMA ..84
BIBLIOGRAFÍA.....................................................................................................89
LIBROS Y ARTICULOS ....................................................................................89
ENLACES INTERNET .......................................................................................90
Ilustración 1 - Servicios que ofrece Bilib a través del servicio Cloud ...................... 10
Ilustración 2 - Organización de los elementos dependiendo de la arquitectura usada.
............................................................................................................................... 17
Ilustración 3 - Usuarios cloud ordenados por capas de arquitectura. Fuente: Revista
Dintel ..................................................................................................................... 17
Ilustración 4 - Estructura básica de un sistema virtualizado..................................... 24
Ilustración 5 - Estructura básica de Xen .................................................................. 28
Ilustración 6 - Arquitectura XenServer. Fuente: Citrix XenServer .......................... 29
Ilustración 7 - Ubicación del 'pool' dentro del sistema XenServer. Fuente: Citrix
XenServer .............................................................................................................. 30
Ilustración 8 - Networking en XenServer ................................................................ 34
Ilustración 9 - Esquema básico del despliegue ........................................................ 36
Ilustración 10 - Organización del enclosure Albacete. Fuente: Bilib ....................... 37
Ilustración 11 - VLANs pertenecientes al despliegue. Fuente: Bilib ........................ 41
Ilustración 12 - Gestión de las VPNs. Fuente: Bilib ................................................ 41
Ilustración 13 - Esquema software utilizado en el despliegue basado en la
arquitectura de XenServer ...................................................................................... 42
Ilustración 14 – Captura de pantalla del pool creado desde XenCenter .................... 43
Ilustración 15 - Arquitectura de Cassandra. Fuente: Apache Cassandra .................. 50
Ilustración 16 - Arquitectura YCSB. Fuente: www.dcomp.sor.ufscar.br ................. 51
Ilustración 17 - Distribuciones de carga usadas en los workloads. Fuente: YCSB
GitHub ................................................................................................................... 56
Ilustración 18 - Diagrama de bloques de las pruebas de evaluación......................... 59
Ilustración 19 – Escenario1: Productividad (F. carga) ............................................. 61
Ilustración 20 – Escenario1: Tiempo (F.carga) ....................................................... 61
Ilustración 21 – Escenario1: Latencia (F. carga) ..................................................... 61
Ilustración 22 – Escenario1: Productividad (F. carga) ............................................. 63
Ilustración 23 – Escenario1: Tiempo (F. carga)....................................................... 63
Ilustración 24 – Escenario1: Latencia (F. carga) ..................................................... 63
Ilustración 26 – Escenario1: Tiempo (F. ejecución) ................................................ 64
Ilustración 25 – Escenario1: Productividad (F. ejecución) ...................................... 64
Ilustración 27 – Escenario1: Latencia (F. ejecución) ............................................... 64
Ilustración 28 – Escenario1: Productividad (F. ejecución) ...................................... 65
Ilustración 29 – Escenario1: Tiempo (F. ejecución) ................................................ 65
Ilustración 30 – Escenario1: Latencia (F. ejecución) ............................................... 66
Ilustración 31 – Escenario2: Productividad (F. carga) ............................................. 67
Ilustración 32 – Escenario2: Tiempo (F. carga)....................................................... 67
Ilustración 33 – Escenario2: Latencia (F. carga) ..................................................... 67
V
Ilustración 34 – Escenario2: Productividad (F. carga) ..............................................69
Ilustración 35 – Escenario2: Tiempo (F. carga) .......................................................69
Ilustración 36 – Escenario2: Latencia (F. carga) ......................................................69
Ilustración 37 – Escenario2: Productividad (F. ejecución) .......................................70
Ilustración 38 – Escenario2: Tiempo (F. ejecución) .................................................70
Ilustración 39 – Escenario2: Latencia (F. ejecución)................................................71
Ilustración 40 – Escenario2: Productividad (F. ejecución) .......................................74
Ilustración 41 – Escenario2: Tiempo (F. ejecución) .................................................74
Ilustración 42 – Escenario2: Latencia (F. ejecución)................................................74
Ilustración 43 – Escenario2: Productividad (F. ejecución) .......................................77
Ilustración 44 – Escenario2: Tiempo (F. ejecución) .................................................77
Ilustración 45 – Escenario2: Latencia (F. ejecución)................................................77
Ilustración 46 - Comparativa de productividad entre los workloads .........................79
Ilustración 47 - Comparativa de tiempo entre los workloads ....................................79
Ilustración 48 - Comparativa de latencia entre los workloads ..................................80
Ilustración 49 - Comparativa de productividad entre los workloads .........................80
Ilustración 50 - Comparativa de tiempo entre los workloads ....................................81
Ilustración 51 - Comparativa de latencia entre los workloads ..................................81
Ilustración 52 - Comparativa de productividad entre los workloads de los dos tipos de
máquinas virtuales ..................................................................................................82
Ilustración 53 - Comparativa de tiempo entre los workloads de los dos tipos de
máquinas virtuales ..................................................................................................83
Ilustración 54 - Comparativa de latencia entre los workloads de los dos tipos de
máquinas virtuales ..................................................................................................83
Ilustración 55 - Esquema básico del despliegue. Fuente Bilib ................................ 100
ÍNDICE DE TABLAS
VII
CAPÍTULO 1
CAPÍTULO 1. INTRODUCCIÓN
1.1 INTRODUCCIÓN
Este Trabajo Fin de Grado se realiza en colaboración con Bilib (Centro de Apoyo
Tecnológico a Emprendedores), cuya misión es la "difusión y aplicación de las
Tecnologías de la Información y las Comunicaciones, unido al fomento del
emprendimiento empresarial en Castilla-La Mancha". [Bilib]
En concreto, Bilib pretende ofrecer a las empresas TIC de Castilla La-Mancha una
plataforma Cloud donde puedan desarrollar nuevos servicios, o bien, desplegar instancias
de servicios preconfigurados. Su objetivo es que las empresas puedan utilizar la cloud
para aprovechar y utilizar sus servicios, que pueden ser muy útiles para el desarrollo de la
empresa, algunos de ellos se muestran en la Ilustración 1.
1.2 MOTIVACIÓN
Hace unos años la mayoría de estos servicios, que ahora están en la cloud, se
realizaban desde grandes computadoras difícilmente escalables y que apenas se ajustaban
a las necesidades de servicio de cada momento.
CAPÍTULO 1
1.3 OBJETIVOS
11
CAPÍTULO 1
El segundo capítulo trata sobre el estado del arte del trabajo, en el que se describe la
tecnología que se usará.
En el tercer capítulo se ofrece una descripción completa del equipo utilizado, tanto
software como hardware.
2.1 INTRODUCCIÓN
cualquier lugar del mundo. En este periodo es cuando nace la Web 2.0, donde los
usuarios ya no son solo consumidores de información sino que también producen
información que puede ser consumida por el resto de usuarios de la red.
Todo ello hace aparecer la necesidad de potentes servidores que tiene que dar
servicio a una gran cantidad de usuarios que se conectan desde cualquier tipo de
dispositivo. Servidores que ya no se encuentran alojados en las empresas que han creado
los programas o servicios informáticos. Han desplazado toda la computación y
almacenamiento de sus servidores hacia algún sitio externo desde el que puedan acceder
fácilmente a través de Internet a grandes centros de proceso de datos (CPD).
La red se ha convertido en nuestro ordenador. Es lo que se conoce como
computación cloud.
14
CAPÍTULO 2
- Acceso desde la red: Las capacidades del sistema están disponibles a través de la
red accediendo mediante plataforma que pueden ser usadas por distintos tipos de
dispositivos (smartphones, tablets, ordenadores,…)
15
CAPÍTULO 2
Este modelo 'cloud' está compuesto por 5 características principales, tres modelos
de servicio y cuatro modelos de despliegue. [NIST]
Una de ellas sería por el modelo de servicio, que incluye los modelos
Infraestructura como servicio (IaaS), Plataforma como servicio (PaaS) y Software como
servicio (SaaS). La otra categoriza por el tipo de modelos de despliegues disponibles, es
decir, las formas de integración y explotación de la infraestructura; en este conjunto se
encuentran el cloud privado, el público, el híbrido y el comunitario.
16
CAPÍTULO 2
Ilustración 3 - Usuarios cloud ordenados por capas de arquitectura. Fuente: Revista Dintel
Actualmente se habla de diferentes tipos de modelos, de los que los más habituales
son los siguientes:
17
CAPÍTULO 2
Software as a Service (SaaS) se puede describir como software que está desplegado
en un servicio de hosting y puede ser accedido globalmente a través de Internet mediante
navegador, móvil, tablet, etc. Y donde todos los aspectos que no sean la propia
interacción con la aplicación son transparentes al usuario. En el modelo SaaS, los
usuarios pagan por el uso del servicio mediante cuotas de suscripción, válidas por un
determinado período de tiempo, como en el caso de un alquiler. Las características
fundamentales de este modelo se pueden resumir en:
18
CAPÍTULO 2
En PaaS los clientes pueden interactuar con el software para introducir o recuperar
datos, realizar acciones, etc.; pero no tienen responsabilidad de mantener el hardware,
software o el desarrollo de las aplicaciones, sólo se tiene responsabilidad de la interacción
con la plataforma, es decir, el proveedor es el responsable de todos los aspectos
operacionales. Además, la plataforma ofrece herramientas de desarrollo y despliegue de
aplicaciones.
Poder abstraerse del entorno supone dos ventajas importantes. La primera sería el
ahorro de costes y la segunda la posibilidad de centrar toda la atención en la aplicación.
El ahorro de coste no proviene únicamente de la posibilidad de contratar un servicio de
almacenamiento más barato, sino porque el conocimiento necesario para crear
arquitecturas escalables es muy costoso. Aunque también cuenta con algunos
inconvenientes: depender de un único proveedor y sufrir sus caídas.
Este modelo está siendo adoptado por una multitud de 'startups' que han
comenzado a emprender en tiempos de crisis y que no se pueden permitir tener su propio
centro de datos o una infraestructura propia. En este modelo los desarrolladores
encuentran una forma dinámica y flexible de trabajar, ya que se puede interactuar con la
IaaS mediante servidores virtuales, almacenamiento virtual.
19
CAPÍTULO 2
IaaS está enfocado a cualquier empresa que desea delegar la implantación de sus
sistemas software y aplicaciones en la infraestructura hardware de un proveedor externo
(hosting) o que requiera de servicios de almacenamiento externo, copias de seguridad de
sus datos, cálculos complejos que requieran software de elevadas prestaciones, etc., el
proveedor les permitirá gestionar dichos sistemas en un entorno virtualizado.
Los proveedores de servicios son los propietarios de las máquinas físicas, y las
ofrecerán como un servicio a los usuarios, además de proporcionarles un entorno que les
permita gestionarlas (sitio web).
Podemos definir cuatro tipos de clouds dependiendo de quién pueda acceder a los
servicios que ofrece y de quién se encargue de gestionar la infraestructura.
Los principales inconvenientes de este modelo son los analizados para el paradigma
tradicional, por ejemplo los relativos a la ampliación de los sistemas informáticos. Esto
obliga a adquirir nuevos sistemas antes de hacer uso de ellos, contrariamente a lo ofrecido
por los clouds públicos, donde ampliar los recursos se reduce a controlarlos con el
proveedor de servicios.
Como ventaja de este tipo de clouds, a diferencia de las clouds públicos, destaca la
localización de los datos dentro de la propia empresa, lo que conlleva a una mayor
seguridad de estos.
20
CAPÍTULO 2
En el caso del cloud público los servicios que se ofrecen se encuentran en los
servidores externos al usuario, pudiendo tener acceso a las aplicaciones de forma gratuita
o de pago y utilizar el servicio adecuado, cuando a la empresa que ofrece el servicio no le
importa compartir recursos virtualizados en el cloud y donde el despliegue de la
aplicación será de manera provisional.
También puede resultar difícil integrar estos servicios con otros sistemas
propietarios. Es muy importante a la hora de apostar por un servicio en el cloud público,
asegurarse de que se puede conseguir todos los datos que se tengan en ella, gratuitamente
y en el menor tiempo posible.
En la actualidad este tipo de clouds está teniendo una gran aceptación dentro del
mundo empresarial, por lo que están desarrollando software de gestión de cloud que
21
CAPÍTULO 2
El tener un entorno cloud nos permite realizar pruebas de testeo de una manera
poco costosa sin tener que desplegar una infraestructura real. Además de proporcionar
servidores o mainframes, un entorno virtual de test puede ser ejecutado en software “low-
cost”. Estos entornos virtuales pueden ser fácilmente reconfigurados para distintas
necesidades o proyectos de testeo.
También hay que tener en cuenta la disponibilidad del servicio, el servicio siempre
ha de estar disponible para el cliente. El cloud computing permite diseñar una
infraestructura redundante que permita ofrecer un servicio siempre constante y sin
interrupciones de acuerdo a las condiciones del cliente.
Al poder reducir los gastos, las empresas pequeñas tienen oportunidad de competir
con el resto pudiendo ofrecer los mismos servicios. La ventaja competitiva no reside en
quien tiene los recursos sino quien los utiliza de manera correcta.
Por último, la deslocalización del sistema permite acceder a los servicios desde
cualquier lugar. Internet no tiene limitaciones geográficas, por lo tanto es indiferente
localizar nuestro CPD en España o en la otra punta del mundo.
22
CAPÍTULO 2
Pero no todo son ventajas ya que podrían surgir otras cuestiones como la garantía
de disponibilidad de esos datos alojados a tantísimos kilómetros. La información se ha
vuelto un bien esencial en la sociedad actual, y por ello tenemos que evitar a toda costa
las situaciones en los que no tengamos control sobre nuestra información. Por eso se debe
buscar un equilibrio entre la rebaja de la factura energética pero sin descuidar donde
alojamos nuestra información.
23
CAPÍTULO 2
24
CAPÍTULO 2
Una máquina virtual (MV) (Virtual Machine (VM), en inglés) es un ordenador que,
similar a un ordenador físico, ejecuta un sistema operativo y posee unas aplicaciones
instaladas. La única diferencia es que el hardware es virtual, no físico. El sistema
operativo que se ejecuta en la máquina virtual no es consciente de que se encuentra en un
entorno virtual y no físico. Las máquinas virtuales son creadas y alojadas en una
infraestructura virtual, y pueden utilizar todos los dispositivos virtuales – redes o
almacenamiento – que el hipervisor les proporciona.
No todos los sistemas cloud utilizan virtualización, algunos sistemas pueden utilizar
una variante llamada paravirtualización. La paravirtualización es una tecnología similar a
la virtualización, pero mejora la eficiencia de las máquinas virtuales, obteniendo un
rendimiento similar al de un sistema nativo. Una de las plataformas que usa esta
tecnología es Xen. [VenVi]
Virtualización Paravirtualización
- Alta disponibilidad y recuperación ante - Mejora el rendimiento general de dispositivos
desastres de E/S, CPU y memoria
- Seguridad e independencia - Sistemas operativos invitados y el anfitrión
interactúan de manera directa con los
- Mejora de la eficiencia energética recursos físicos del computador
- Optimización del uso y control de los - Modelo basado en hipervisor
recursos - Poca carga que le da al procesador al no tener
que tener una capa completa de
- Portabilidad
virtualización
- Migración - Introduce en los sistemas operativos invitados
- Disminución del número de ordenadores permitiéndoles la comunicación directa
con el hipervisor
Los modelos de virtualización dependen del recurso que se abstrae y el ente que
virtualiza, por ello dependiendo de la situación se debe elegir una tecnología u otra.
25
CAPÍTULO 2
Existen dos tipos de hipervisores (o hypervisors), cada uno de ellos presenta sus
pros y sus contras. Estos tipos son: bare-metal y hosted.
Entre los hipervisores de este tipo destacan: VMware ESX y ESXi, Microsoft
Hyper-V, Citrix XenServer y Oracle VM. [HYP]
En este trabajo se usará Citrix XenServer ya que viene impuesto por la empresa.
2.8 XENSERVER
2.8.1 INTRODUCCIÓN
En los sistemas Xen, el hipervisor se sitúa en la capa más baja y con más
privilegios. Esta capa soporta uno o más sistemas operativos huéspedes que se ejecutan
en CPUs físicas. El primer sistema operativo alojado llamado Dominio de Control
(dom0) se ejecuta de manera automática cuando el hipervisor arranca y recibe los
privilegios especiales y acceso directo a todo el hardware físico. El Dominio de Control
es una máquina virtual con privilegios que ejecuta una herramienta de administración de
XenServer, llamada “toolstack” (una rutina de control para Xen). Además de
proporcionar funciones de administración para XenServer, el Dominio de Control
27
CAPÍTULO 2
también ejecuta el “driver stack” que proporciona máquinas virtuales creadas por los
usuarios con acceso a los dispositivos físicos.
2.8.2 FUNCIONAMIENTO
28
CAPÍTULO 2
Para facilitar el manejo de las máquinas virtuales XenServer permite crear “pools”
de hosts. Un “pool” es una entidad capaz de gestionar todas las máquinas virtuales en
conjunto, independientemente de donde se estén ejecutando, es decir, que en caso de
caída de un host físico, las máquinas virtuales se pueden volver a arrancar en otro host,
siempre que tengamos almacenamiento compartido.
Un “pool” se define como dos o más máquinas Citrix XenServer que componen
una misma entidad, de modo que pueden compartir recursos como máquinas virtuales,
almacenamiento, etc. de forma centralizada.
29
CAPÍTULO 2
Ilustración 7 - Ubicación del 'pool' dentro del sistema XenServer. Fuente: Citrix XenServer
En cada “pool”, siempre tiene que haber un nodo designado como “master”,
mientras que los otros miembros se denominan “slaves”. El rol master se caracteriza por
“exponer” la administración del clúster de forma centralizada y reenvía los comandos a
los otros nodos si es necesario.
- Generación de plantillas
o Limpias y autoconfiguradas
o Homogeneidad de sistemas
30
CAPÍTULO 2
GESTIÓN DE USUARIOS
En primer lugar es importante citar la gestión de usuarios, servicio de gran
importancia para poder acceder a la gestión de XenServer; se encarga de definir usuarios,
grupos, roles y permisos permite controlar quien tiene acceso a los hosts y “pools” de
XenServer y que acciones pueden ejecutar.
En XenServer Free cuando se crean nuevos usuarios, estos reciben acceso total al
“pool”. Por eso todos los usuarios tendrán rol de administrador en el “pool”.
ALMACENAMIENTO
Otra característica relevante y a la que se le presentará mayor importancia en la fase
de pruebas es el almacenamiento. En un entorno XenServer, los dispositivos de
almacenamiento físico están disponibles en un repositorio sobre el que se crea una base
de datos que permite a los hosts de XenServer poder conectar con el almacenamiento.
La más usada e importante es SAN (Storage Area Network) que consiste en una red
de almacenamiento dedicada que proporciona acceso, los sistemas SAN son usados
principalmente para crear dispositivos de almacenamiento, como arrays de discos,
32
CAPÍTULO 2
accesible a los servidores de manera que los dispositivos aparecen como conectados
locamente al sistema operativo; normalmente requiere el uso de Fibre Channel.
NETWORKING
XenServer proporciona una serie de características de red que permiten crear redes
para las máquinas virtuales de la misma manera que si fueran redes para dispositivos
físicos (ver Ilustración 8).
Las máquinas virtuales se conectan a las redes usando NICs virtuales, conocidas
como interfaces virtuales que enviar y recibir tráfico de la red.
La red lógica será llamada 'red de producción' y agrupará todas las máquinas
virtuales de un mismo host; ese host controla la 'red de producción' mediante su propia
NIC física.
Existen varios tipos modelos de red disponibles, siendo la más usada single-server
privado, este tipo de red no está unido a una interfaz de red física y puede ser usado para
proporcionar conectividad entre las máquinas virtuales que son ejecutadas en un host
determinado – el tráfico de red se mantiene aislado y no puede llegar a otros hosts.
Normalmente a este tipo de red se le refiere como interna. Será la opción elegida en el
despliegue.
33
CAPÍTULO 2
34
CAPÍTULO 3
CAPÍTULO 3. INFRAESTRUCTURA
CLOUD DESPLEGADA EN BILIB
3.1 INTRODUCCIÓN
35
CAPÍTULO 3
36
CAPÍTULO 3
Durante del desarrollo del trabajo se usará una red de Fibre Channel unida por
switches Fibre Channel, formando una red de conexión punto a punto. Las razones que
nos llevan a usar este modelo es que venía impuesto por la empresa, aunque es un
material bastante más caro y menos flexible que iSCSI.
Para este trabajo se utiliza una red single-server privada, descrita anteriormente,
gestionada por un par de switches, debido a la simplicidad del sistema y la complejidad
de las otras alternativas propuestas.
37
CAPÍTULO 3
Servicio de virtualización
SRVXEN01 Física (Blade)
Citrix XenServer
Servicio de virtualización
SRVXEN02 Física (Blade)
Citrix XenServer
Servicio de virtualización
SRVXEN03 Física (Blade)
Citrix XenServer
Servicio de virtualización
SRVPROD01 Física (Blade)
Citrix XenServer
38
CAPÍTULO 3
Para este trabajo se utiliza una topología punto a punto, siendo la interfaz genérica
y la interconexión con la capa física de cada nodo. No ofrece ninguna ventaja adicional
pero su implementación es la más sencilla.
La SAN permitirá compartir datos entre varios equipos de la red sin afectar al
rendimiento ya que el tráfico de SAN está totalmente separado del tráfico de usuario. Son
los servidores de aplicaciones que funcionan como una interfaz entre la red de datos
(Fibre Channel) y la red de usuario (Ethernet).
2. Switches: Aquí será donde se conectarán los cables de fibra de los cajones de
discos, las controladoras o los servidores (la red SAN - Storage Area Network) a los
adaptadores de bus del host (HBA). Todo ello por duplicado, tanto el cableado como los
switches.
39
CAPÍTULO 3
3.4 REDES
El CPD cuenta con dos equipos de seguridad (firewalls). Cada equipo de seguridad
está formado por dos componentes hardware; un componente para seguridad perimetral y
un componente para protección IDS (Intrusion Detection Prevention System).
Por tanto, el CPD dispondrá tanto de seguridad perimetral como de protección IDS
con componentes configurados en modo Failover Active/Standbye.
El firewall IDS no tienen reglas de filtrado, solamente actúa como filtro IDS.
Cada servidor del clúster posee su propia tarjeta de red, con una dirección IP
individual para cada servidor.
40
CAPÍTULO 3
41
CAPÍTULO 3
También es necesario instalar XenServer 6.0 versión gratuita en los distintos hosts
usados durante el despliegue. La instalación se realiza en el espacio reservado en la SAN
que tiene cada uno de los hosts. Donde se configuran datos relativos a la localización y
fecha, datos de conexión a Internet (dirección IP, gateway,...), usuario y contraseña para
poder acceder al host desde XenCenter y administrarlo.
42
CAPÍTULO 3
A través de XenCenter se ha creado una estructura interna que reúne los servidores
y el almacenamiento SAN (ver Ilustración 13). En concreto, se compone de un “pool”
llamado 'Bilib POOL' que incluye los cuatro hosts XenServer (SRVXEN01, SRVXEN02,
SRVXEN03 y SRVXEN04) para facilitar la gestión de los mismos. Además, se le ha
asignado como almacenamiento la SAN configurada anteriormente con el nombre
'SAN_BILIB', cómo se puede apreciar en la Ilustración 14 toda la infraestructura ha sido
creada mediante XenCenter.
Las máquinas virtuales serán creadas en un host XenServer, que a su vez forma
parte del “pool”. El sistema operativo utilizado por cada máquina virtual será Ubuntu
Server 13.10. Además, en la máquina virtual cliente se instalará el Benchmark CloudSuite
Data Serving formado por YCSB y Cassandra.
43
CAPÍTULO 3
44
CAPÍTULO 4
45
CAPÍTULO 4
Primero se cargan, en la base de datos, los datos a ejecutar en las pruebas mediante
Cassandra [Cass]. Cassandra es un gestor de base de datos con una estructura de
almacenamiento basado en columnas, escrito en Java y de libre distribución. Está
optimizado para la escritura y basado en DynamoDB, un servicio de bases de datos
NoSQL rápido y totalmente gestionado que permite almacenar y recuperar de manera fácil
y sencilla cualquier cantidad de datos, así como atender cualquier nivel de tráfico de
solicitudes para obtener una mayor disponibilidad y durabilidad. [ADyn]
46
CAPÍTULO 4
Para ello se instalará y ejecutará en las máquinas virtuales del sistema. Como se ha
comentado en el apartado anterior CloudSuite Data Serving se compone de dos
aplicaciones principales, Cassandra e YCSB; las cuales se describen a continuación.
4.2.1 CASSANDRA
47
CAPÍTULO 4
Las bases de datos NoSQL permiten almacenar información en otros formatos como
clave-valor (similar a tablas Hash), mapeo de columnas, documentos o grafos. Además de
la carencia de un esquema “predeterminado”, la principal característica de las bases de
datos NoSQL es que están pensadas para manipular enormes cantidades de información de
manera muy rápida. Para ello suelen almacenar toda la información que pueden en
memoria (utilizando el disco como una mera herramienta de persistencia), y están
preparadas para escalar horizontalmente sin perder rendimiento. Suelen funcionar bastante
bien en hardware de bajo coste.
- Tolerancia a fallos: Los datos son replicados en múltiples nodos miembros del
clúster. Por tanto, en caso de que un nodo caiga, los datos que almacena éste no se
pierden ya que otros nodos del clúster almacenan una copia de estos datos.
Además, el nodo que cae es reemplazado de forma muy rápida, y por tanto, no se
nota su ausencia al no haber prácticamente tiempos de inactividad.
Arquitectura de Cassandra
La arquitectura de Cassandra tiene una alta complejidad ya que es un sistema de
almacenamiento que necesita trabajar en un entorno de producción de alta disponibilidad,
donde su característica más importante es la persistencia de datos.
Los módulos que componen Cassandra contienen una serie de bloques que le
permiten ser un sistema de almacenamiento distribuido: particionado, replicación, adhesión
de miembros, manejo de caídas y escalado del sistema. Todos ellos trabajan en sincronía
para manejar correctamente las peticiones de lectura y escritura.
49
CAPÍTULO 4
Durante la fase de carga se introducen los datos que han sido seleccionados en la
base de datos para ejecutar las pruebas. Se debe crear un “espacio de claves” con factor de
replicación 1, dentro del “espacio de claves” se crea una columna de familia para
almacenar los datos.
Una vez haya sido configurada la estructura de la base de datos en el nodo donde se
va a ejecutar el Benchmark (nodo servidor), se debe modificar la configuración de
Cassandra en cada uno de los nodos que participarán en las pruebas (nodo servidor y nodo
50
CAPÍTULO 4
cliente/s), de esta manera se permitirá que los nodos puedan conectarse entre sí y ofrecer al
nodo cliente la posibilidad de acceder a la base de datos del nodo servidor para cargar los
datos sobre los que se trabajará durante las pruebas.
Además, se instala en todas las máquinas virtuales Apache y Java JDK para el
correcto funcionamiento del Benchmark.
4.2.2 YCSB
YCSB (Yahoo Cloud Systems Benchmark) [YCSB] es una herramienta que se utiliza
para medir el rendimiento de varios sistemas en el cloud. Está diseñada en código abierto
permitiendo que otras personas contribuyan a su desarrollo y mejora.
YCSB es un programa Java que genera datos para ser cargados en la base de datos y
generar las operaciones con las cuales crearemos la carga.
51
CAPÍTULO 4
llamadas a la base de datos, tanto para la fase de carga de datos como para la fase de
ejecución de una carga de trabajo (transacción). Los hilos limitan la velocidad con la que
se generan las solicitudes, para poder controlar directamente la carga que se ejecuta. Los
hilos también miden la latencia y el rendimiento logrado de las operaciones, e informan de
estas medidas al módulo estadístico.
YCSB utiliza una serie de propiedades para definir las operaciones, que se dividen en
dos grupos:
YCSB no tiene utilidad si se usa aislado, su utilidad aparece cuando se combina con
un gestor de base de datos que permita interactuar con un sistema de datos. Para este
trabajo hemos utilizado Cassandra como aplicación para la gestión de la base de datos.
Antes de ejecutar el cliente YCSB, se deben crear las tablas de la base de datos. Estas
tablas se crean manualmente desde el propio Cassandra a través de línea de comando.
Las bases de datos que utilizan filas contienen todos los campos de un registro
almacenados de forma contigua, siendo muy eficiente si se accede a registros de manera
52
CAPÍTULO 4
aleatoria. Cuando la base de datos se estructura en columnas es idóneo para los acceso
frecuentes al mismo conjunto de datos.
Las column families se crean por defecto cuando la base de datos es creada, pero las
columnas se pueden agregar a las column families en cualquier momento. Por otra parte,
las columns se agregan solo a las claves especificadas, por lo tanto diferentes claves
pueden tener distintos números de columnas en cualquier columns family.
Las tablas se crean antes de iniciar el servidor.Se crean distintas tablas dependiendo
de la carga de trabajo elegida. En este caso se creará una única tabla llamada 'usertable' con
un esquema flexible de columnas, que será la encargada de trabajar con los 'workloads'.
2) Seleccionar una capa apropiada como interfaz de base de datos: Consiste en una
capa de interfaz de base de datos en código Java que ejecuta las operaciones de lectura,
inserción, actualización, borrado y escaneo de datos.
Estas llamadas son generadas por YCSB mediante línea de comandos, donde se
especifica el nombre de la clase a utilizar. Por último, el cliente carga de forma dinámica la
interfaz de la clase.
En este caso se utiliza Cassandra porque CloudSuite Data Serving así lo específica,
además de ser uno de los gestores de base de datos más rápidos y fiables de usar. [NSDs]
3) Elegir el 'workload' adecuado: El 'workload' (carga de trabajo) define los datos que
se pueden cargar en la base de datos durante la fase de carga y las operaciones que se
ejecutarán con esos datos en la fase de ejecución.
53
CAPÍTULO 4
4) Cargar los datos: Las cargas de trabajo tienen dos etapas: la de carga (que
especifica los datos a insertar) y la de las transacciones (que especifica las operaciones que
se ejecutarán en el conjunto de datos).
5) Ejecutar el workload:
- db: Indica el gestor de base de datos que se va a usar, en este caso será
Cassandra
- P: Indica que se van a utilizar archivos para cargar parámetros. Para la fase de
ejecución se utiliza el archivo ‘settings” que contendrá los parámetros a usar en
la ejecución de datos.
LOS WORKLOADS
Los workloads son las cargas de trabajo predifinidias para YCSB, están hechos para
bases de datos pequeñas, por ejemplo 6000 registros. Para una base de datos en
funcionamiento hay que utilizar parámetros más grandes, por ejemplo 100 millones de
registros. Para ello se necesita cambiar el valor del parámetro ‘recordcount’.
54
CAPÍTULO 4
55
CAPÍTULO 4
Los seis ‘workloads’ son similares. Los ‘workloads’ D y E insertan registros durante
el testeo. Por ello para mantener un tamaño consistente en la base de datos, se sigue esta
secuencia.
57
CAPÍTULO 4
Aunque las clases ‘workload’ y sus parámetros asociados están definidos en cada
‘workload’, hay parámetros adicionales que pueden ser modificados. Estas opciones son:
- Hosts: Direcciones IP de los nodos servidores en los que se van a ejecutar las
pruebas.
- Threadcount: Número de hilos que se van a ejecutar en paralelo en una prueba. Por
defecto, YCSB usa un único hilo, pero es posible añadir más hilos. Esto es habitual
para incrementar la carga generada.
- Target: Este parámetro representa la tasa de servicio del sistema, esto equivale al
número de operaciones realizadas por segundo, que determinarán la productividad
del sistema. Por defecto, YCSB intentará completar tantas operaciones como
pueda. Por ejemplo, si cada operación tarda 100 milisegundos de media, el cliente
realizará alrededor de 10 operaciones por segundo por hilo. Para generar una
latencia en el rendimiento, es posible utilizar distintos ‘targets’ y medir la latencia
de cada uno.
Los ‘workloads’ tienen dos fases: carga (en la cual definimos los datos a insertar) y
ejecución (en la cual definimos las operaciones que utilizarán los datos anteriormente
definidos).
Las métricas han de ser lo más representativas posibles del rendimiento del sistema y
permitan obtener resultados cuantitativos, de las cuales se puedan obtener conclusiones.
Estas métricas se obtienen al ejecutar la fase de carga y ejecución en cada una las
máquinas virtuales del clúster.
58
CAPÍTULO 4
- Tiempo (Runtime): Representa el tiempo total que tarda en completarse una fase
(carga o ejecución). Es inversamente proporcional a la productividad.
- Latencia: Es la suma de los retrasos que se producen por la demora en la
propagación y transmisión de paquetes durante la ejecución de las operaciones de
las cargas de trabajo. Cuanto más costosa es la operación a realizar mayor es la
latencia producida.
Para la realización de este trabajo se han utilizado cuatro máquinas virtuales creadas
mediante XenServer. Estas máquinas se ubican en el clúster donde se ha realizado el
despliegue de XenServer anteriormente comentado.
59
CAPÍTULO 4
Para las pruebas realizadas entre máquinas virtuales básicas, se han usado dos
máquinas con una configuración idéntica, que consiste en una unidad de procesamiento de
2 vCPU, 2 GB de memoria RAM y 50 GB de almacenamiento en disco.
Una máquina virtual básica actuará como cliente, su labor principal será administrar
la base de datos Cassandra y el encargado de lanzar los parámetros de las pruebas. La otra
máquina virtual básica es donde se efectuarán las pruebas de carga, almacenando los datos
en la base de datos gestionada por Cassandra.
Y para las pruebas realizadas entre dos máquinas virtuales avanzadas, se han usado
dos máquinas con una configuración idéntica, que consiste en una unidad de
procesamiento de 4 vCPU, 4 GB de memoria RAM y 100 GB de almacenamiento en disco.
Cada tipo de pruebas se dividen a su vez en dos fases, carga y ejecución (de datos);
estas pruebas pueden realizarse variando la tasa de servicio (número de operaciones por
segundo) o cambiando el número de hilos que se ejecutan en paralelo en la máquina.
Además, y antes de pasar a mostrar los resultados debemos aclarar que se han
desplegado dos escenarios distintos. Uno en el que el cliente no está ubidado en la
infraestructura cloud con lo que presentará una latencia de acceso al servicio variable, este
caso lo denominaremos Escenario 1. En un segundo caso de estudio, denominado
Escenario 2, todos los componentes se encuentran desplegados en la infraestructura cloud
gestionada por XenServer.
Estas pruebas se realizan desde una máquina exterior para analizar el rendimiento del
sistema desde un nodo situado fuera del clúster.
60
CAPÍTULO 4
Después de realizar las pruebas de carga variando la tasa de servicio, se obtienen las
gráficas que se muestran en las Ilustraciones 19, 20 y 21; que representan una comparativa
entre el rendimiento ofrecido por una máquina virtual básica y una avanzada en los
aspectos de productividad, tiempo total y latencia.
20 1400000
operaciones/segundo
1200000
milisegundos
Básica
15 1000000
800000
10 Básica Avanzada
600000
5 400000
Avanzada 200000
0 0
5 10 15 20 25 30 35 40 5 10 15 20 25 30 35 40
Tasa de servicios Tasa de servicios
58000
57000
56000
microsegundos
55000
54000
Básica
53000
Avanzada
52000
5 10 15 20 25 30 35 40
Tasa de servicios
La latencia es bastante alta en todas las iteraciones de la prueba, esto se debe a que
las pruebas se realizan desde fuera del clúster y al estar en otra red distinta la latencia
aumenta considerablemente. Se puede observar que, la máquina avanzada disminuye su
latencia con respecto a la máquina básica gracias a su mayor productividad.
Para cada una de las máquinas se fija el valor de la tasa de servicio ('target') en un
número asequible para cada tipo de máquina, para la máquina virtual básica serán 18
operaciones por segundo y para la máquina avanzada 20 operaciones por segundo.
Después de las pruebas de carga variando el número de hilos se obtienen las gráficas
que se muestran en las Ilustraciones 22, 23 y 24, que representan una comparativa entre el
rendimiento ofrecido entre la máquina virtual básica y la avanzada en los aspectos de
productividad, tiempo total y latencia.
62
CAPÍTULO 4
20 2500000
18 Básica
Operaciones/segundo
Milisegundos
16 2000000
14 Avanzada
12 1500000
10
8 1000000
6 Básica
4 500000
2 Avanzada
0 0
1 2 4 8 16 32 48 56 64 1 2 4 8 16 32 48 56 64
Número de hilos Número de hilos
8000000
microsegundos
7000000 Básica
6000000
5000000 Avanzada
4000000
3000000
2000000
1000000
0
1 2 4 8 16 32 48 56 64
Número de hilos
Ahora se realizan una serie de pruebas para evaluar el rendimiento del sistema
durante el proceso de ejecución de datos en la base de datos.
50 1400000
milisegundos
1200000
operaciones/segundo
40 Básica
1000000
30 800000
20 600000 Avanzada
400000
10 200000
Básica Avanzada
0 0
5 10 15 20 25 30 35 40 45 50 5 10 15 20 25 30 35 40 45 50 55
Tasa de servicio Tasa de servicio
28000
microsegundos
27500
27000
26500
26000
25500
Básica Avanzada
25000
5 10 15 20 25 30 35 40 45 50 55
Tasa de servicio
64
CAPÍTULO 4
Para cada una de las máquinas se fija el valor de la tasa de servicio ('target') en un
número asequible, para la máquina virtual básica serán 35 operaciones por segundo y para
la máquina avanzada 40 operaciones por segundo.
Después de las pruebas de carga variando el número de hilos se obtienen las gráficas
que se muestran en las Ilustraciones 28, 29 y 30; que representan una comparativa entre el
rendimiento ofrecido entre la máquina virtual básica y la avanzada en los aspectos de
productividad, tiempo total y latencia.
45 1600000
40 1400000
operaciones/segundo
Básica
milisegundos
35 1200000
30 1000000
25 Avanzada
Básica 800000
20
15 600000
10 400000
5 Avanzada 200000
0 0
1 2 4 8 16 32 48 56 64 1 2 4 8 16 32 48 56 64
Número de hilos Número de hilos
65
CAPÍTULO 4
1400000
microsegundos
1200000
1000000 Básica
800000
600000 Avanzada
400000
200000
0
1 2 4 8 16 32 48 56 64
Número de hilos
Por último, respecto a la latencia, al igual que el tiempo, la máquina virtual básica
sufre un gran aumento cuando se utilizan 48 threads. La máquina avanzada soporta una
latencia asequible hasta los 56 threads.
En este escenario las pruebas se realizan desde dos máquinas internas para analizar el
rendimiento del sistema mediante dos máquinas pertenecientes al clúster.
66
CAPÍTULO 4
Después de realizar las pruebas de carga variando la tasa de servicio se obtienen las
gráficas que se muestran en las Ilustraciones 31, 32 y 33; que representan una comparativa
entre el rendimiento ofrecido entre la máquina virtual básica y la avanzada en los aspectos
de productividad, tiempo total y latencia.
700 140000
0peraciones/segundo
milisegundos
600 120000
Básica
500 100000
400 80000
Avanzada
300 60000
Básica
200 40000
100 20000
Avanzada
0 0
50
100
150
300
500
800
1000
1500
2000
50
300
500
100
150
800
1000
1500
2000
3500
3000
microsegundos
2500
2000
1500
1000
500 Básica Avanzada
0
50 100 150 300 500 800 1000 1500 2000
Tasa de servicio
Para cada una de las máquinas se fija el valor de la tasa de servicio ('target') en un
número asequible para cada tipo de máquina. Para la máquina virtual básica serán 500
operaciones por segundo y para la máquina avanzada 600 operaciones por segundo.
Después de realizar las pruebas de carga variando el número de hilos se obtienen las
gráficas que se muestran en las Ilustraciones 34, 35 y 36; que representan una comparativa
entre el rendimiento ofrecido entre la máquina virtual básica y la avanzada en los aspectos
de productividad, tiempo total y latencia.
68
CAPÍTULO 4
700 35000
operaciones/segundo
milisegundos
600 30000
Básica Avanzada
500 25000
20000
400
15000
300
Básica Avanzada 10000
200 5000
100 0
0
1 4 16 64 196 384 768
Número de hilos Número de hilos
2000000
microsegundos
1500000 Básica
1000000
Avanzada
500000
0
1
2
4
8
16
32
64
128
384
196
256
512
768
1024
Número de hilos
A diferencia de las pruebas desde el exterior del clúster, realizar las pruebas en el
interior del clúster permite elevar el número de hilos a un número bastante alto. La
máquina virtual básica permite mantener una productividad máxima hasta los 64 hilos, a
partir de esa cifra el rendimiento comienza a disminuir de manera bastante notoria. Por otra
parte la máquina virtual avanzada consigue mantener una productividad de casi 600
operaciones por segundo hasta los 64 threads. Después al ir aumentando el número de hilos
desciende la productividad. De todas maneras observamos como con el mismo número de
hilos conseguimos más productividad con la máquina avanzada que con la máquina básica.
69
CAPÍTULO 4
Ahora se realizan una serie de pruebas para evaluar el rendimiento del sistema
durante el proceso de ejecución de datos en la base de datos.
Para todas estas pruebas se utilizarán las distintas cargas de trabajo que tenemos a
nuestra disposición (A/B/C/E/F/G) y se modificará el parámetro 'target' (número de
operaciones por segundo). Excepto en las pruebas con hilos, debido a que en estas pruebas
no afecta el tipo de operaciones sino el número de hilos que se ejecuten simultáneamente y
por lo tanto únicamente se usará la carga de trabajo A.
600 140000
operaciones/segundo
milisegundos
500 120000
100000
400
80000
300 60000
200 40000
100 20000
0 0
A B C D E F A B C D E F
70
CAPÍTULO 4
25000
microsegundos
20000
15000
10000
5000
0
50 100 150 300 500 800 1000 1500
Tasa de servicio
A B C D E F
Una vez obtenidas las gráficas de rendimiento de las distintas cargas de trabajo se
analizan el comportamiento de cada una de ellas por separado.
Carga de trabajo A
Se puede observar como la productividad aumenta hasta las 450 operaciones por
segundo aproximadamente. A partir de esta cifra se estanca, llegando a su máximo de 460
operaciones por segundo.
Carga de trabajo B
71
CAPÍTULO 4
Carga de trabajo C
La productividad al igual que en los otros workloads sufre un gran crecimiento hasta
estabilizarse en las 500 operaciones por segundo, siendo su máximo de productividad 538
operaciones por segundo.
Únicamente tenemos una latencia, en este caso de lectura, debido a que este
workload únicamente realiza operaciones de lectura. Al igual que con los otros workloads
al aumentar la productividad se consigue una pequeña reducción en la latencia de las
operaciones.
Carga de trabajo D
Este workload sufre dos latencias, la latencia que produce la operación insertar los
datos es mayor que la de lectura de datos.
Carga de trabajo E
72
CAPÍTULO 4
El workload tiene dos latencias, una latencia al insertar datos y otra latencia al
escanear registros. La latencia que provoca escanear registros es muy elevada.
Carga de trabajo F
El workload F lee los registros, los modifica y finalmente escribe los cambios.
En este workload la productividad responde bien hasta las 300 operaciones por
segundo aproximadamente, una vez se superan las 300 operaciones el sistema se estanca en
unas 320 operaciones por segundo siendo incapaz de conseguir más productividad. Al ser
un workload con tanta carga y variedad de operaciones, es normal que sea uno de los
workload que menos productividad obtiene.
73
CAPÍTULO 4
700 140000
operaciones/segundo
milisegundos
600 120000
500 100000
400 80000
300 60000
200 40000
100
20000
0
0
Tasa de servicio
Tasa de servicio
A B C D E F A B C D E F
16000
microsegundos
14000
12000
10000
8000
6000
4000
2000
0
50 100 150 300 500 800 1000 1500
Tasa de servicio
A B C D E F
Una vez obtenidas las gráficas de rendimiento de las distintas cargas de trabajo se
analizan por separado.
Carga de trabajo A
74
CAPÍTULO 4
Carga de trabajo B
Carga de trabajo C
El sistema aumenta la productividad hasta casi 600 operaciones por segundo, una vez
llegado a ese punto se estabiliza.
Carga de trabajo D
La latencia producida por las operaciones de lectura es bastante más baja que la
producida por operaciones de inserción de datos.
75
CAPÍTULO 4
Carga de trabajo E
Con la ejecución de este workload tan sólo conseguimos una productividad de 100
operaciones por segundo, esto sin duda es debido a la alta carga de trabajo que provocan
las operaciones de escaneo.
Podemos observar como son las operaciones escaneo las que provocan una mayor
latencia.
Carga de trabajo F
El workload F lee los registros, los modifica y finalmente escribe los cambios.
Para cada una de las máquinas se fija el valor de la tasa de servicio ('target') en un
número asequible para cada tipo de máquina. Para la máquina virtual básica serán 500
operaciones por segundo y para la máquina avanzada 600 operaciones por segundo.
Después de las pruebas de carga variando el número de hilos se obtienen las gráficas
que se muestran en las Ilustraciones 43, 44 y 45; que representan una comparativa entre el
rendimiento ofrecido entre la máquina virtual básica y la avanzada en los aspectos de
productividad, tiempo total y latencia.
76
CAPÍTULO 4
700 20000
milisegundos
operaciones/segundo
600
500 15000
400
10000
300
200 Básica
5000
Básica Avanzada
100 Avanzada
0 0
2
1
4
8
16
32
64
128
256
512
768
1024
1
2
4
8
16
32
64
768
128
256
512
1024
Número de hilos Número de hilos
3000000
microsegundos
2500000
Básica
2000000
1500000 Avanzada
1000000
500000
0
4
1
2
8
16
32
64
256
128
512
768
1024
Número de hilos
77
CAPÍTULO 4
Tanto en las pruebas exteriores como interiores de clúster queda claro que la
máquina virtual avanzada con una configuración más completa, ofrece mejor rendimiento
tanto en productividad como en tiempo de ejecución y latencia de las operaciones.
En las gráficas, el eje X representa las distintas cargas de trabajo usadas a lo largo de
las pruebas y el eje Y marca los resultados obtenidos por cada carga de trabajo.
Productividad
En esta grafica representamos la máxima productividad (más operaciones por
segundo) obtenidas al ejecutar cada workload.
78
CAPÍTULO 4
600
operaciones/segundo
500 Tasa de
servicio
400
300
200
100
0
A B C D E F
Cargas de trabajo
Tiempo de ejecución
En la gráfica podemos observar el tiempo mínimo de ejecución de cada carga de
trabajo, siendo el valor de la productividad el máximo obtenido durante las pruebas.
120000
100000 Runtime
milisegundos
80000
60000
40000
20000
0
A B C D E F
Cargas de trabajo
Latencia
En esta gráfica comparamos la latencia obtenida por las operaciones en el momento
de máxima productividad del workload.
79
CAPÍTULO 4
25000
Latencia
20000
microsegundos
15000
10000
5000
0
A B C D E F
Cargas de trabajo
Productividad
En este grafica representamos la máxima productividad (más operaciones por
segundo) de cada workload.
700
600
operaciones/segundo
Productividad
500
400
300
200
100
0
A B C D E F
Cargas de trabajo
80
CAPÍTULO 4
Tiempo de ejecución
En la primera grafica podemos observar el tiempo mínimo de ejecución de cada
carga de trabajo, siendo el valor de la productividad el máximo obtenido durante las
pruebas.
70000
60000 Runtime
milisegundos
50000
40000
30000
20000
10000
0
A B C D E F
Cargas de trabajo
Latencia
En esta gráfica comparamos la latencia obtenido por las operaciones en el momento
de máxima productividad del workload.
14000
12000 Latencia
microsegndos
10000
8000
6000
4000
2000
0
A B C D E F
Cargas de trabajo
81
CAPÍTULO 4
CONCLUSIONES
Una vez hemos estudiado el rendimiento de los distintos workloads en cada una de
las máquinas virtuales, realizamos una comparación directa entre los dos tipos de máquinas
(avanzada y básica).
Productividad
700
600 Avanzada
operaciones/segundo
500 Básica
400
300
200
100
0
A B C D E F
Cargas de trabajo
Ilustración 52 - Comparativa de productividad entre los workloads de los dos tipos de máquinas
virtuales
La máquina virtual avanzada obtiene una mayor productividad en todas las cargas de
trabajo, siendo más notorio en el workload E donde casi dobla la productividad de la
máquina básica. Sin embargo en la workload C, que requiere menos potencia, la diferencia
es muy reducida.
82
CAPÍTULO 4
Tiempo de ejecución
120000
Avanzada
100000
Básica
milisegundos
80000
60000
40000
20000
0
A B C D E F
Cargas de trabajo
Ilustración 53 - Comparativa de tiempo entre los workloads de los dos tipos de máquinas virtuales
Latencia
25000
Avanzada
20000
Básica
microsegundos
15000
10000
5000
0
A B C D E F
Cargas de trabajo
Ilustración 54 - Comparativa de latencia entre los workloads de los dos tipos de máquinas virtuales
Con la latencia ocurre algo similar al tiempo de ejecución, las diferencias entre
máquinas son relativamente pequeñas, excepto para el workload E donde se nota una gran
diferencia entre la máquina avanzada y la máquina básica.
Por lo tanto queda claro que la máquina virtual avanzada ofrecerá un mayor
rendimiento que la máquina virtual básica, especialmente en las cargas de trabajo que
implican un gran esfuerzo por parte del sistema para realizarlas.
83
CAPÍTULO 4
Ahora bien, salvo en el caso del workload E, habría que valorar si el coste más
elevado de una máquina avanzada justifica la ganancia obtenida en prestaciones.
Como se puede observar en las Ilustraciones 46, 49 y 52, a medida que aumenta el
número de operaciones de lectura del workload sus resultados de productividad aumentan
considerablemente además de reducirse el tiempo total. Además, queda demostrado que
sucede tanto en la máquina virtual básica como en la avanzada.
84
CAPÍTULO 5
CAPÍTULO 5. CONCLUSIONES Y
PROPUESTAS
5.1 CONCLUSIONES
Con la realización del trabajo se ha demostrado que se puede contar con nuevas
alternativas tecnológicas y modelos con los que poder ofrecer servicios a nuestros clientes.
86
CAPÍTULO 5
Para finalizar con este último capítulo, comentaremos algunas de las propuestas que
se podrían añadir, al trabajo actual, en trabajos futuros:
Otra opción sería cambiar el gestor de base de datos utilizado, Cassandra, por otro
como HBase o MongoDB; y estudiar las diferencias de rendimiento entre los distintos
gestores de base de datos. También se podría realizar un estudio sobre una base de SQL
para comparar las diferencias entre los resultados obtenidos y evaluar cuál de los dos tipos
de base de datos compensa más utilizar.
Una última posibilidad sería crear máquinas virtuales más potentes, con un hardware
que ofrezca más rendimiento, y aumentar la carga de trabajo sobre ellas para intentar hacer
caer al sistema completo. Sería una manera interesante de trabajar la escalabilidad vertical.
87
BIBLIOGRAFÍA
LIBROS Y ARTICULOS
[SecXen] George Dunlap, “Securing your cloud with Xen’s advanced security
features”, Xen Project 2011
[NIST] Peter Mell y otros, “NIST Special Publication 800-145: The NIST
Definition of Cloud Computing”, 2012
89
ENLACES INTERNET
90
[Bilib] Bilib
http://www.bilib.es
Último acceso: 02-07-2014
91
92
CONTENIDO DEL CD
Memoria del trabajo en los formatos PDF, DOCX y DOC dentro del directorio
Memoria.
Libros y artículos a los que se ha hecho referencia durante la memoria y que se han
utilizado como bibliografía. Los cuales podemos encontrar en el directorio
Bibliografía.
93
94
ANEXO A. MATERIAL USADO
Datos Generales
Características Servidor Físico
SO Citrix Xen Server
Arquitectura 64 bits
RAM 48Gb
Ubicación CPD Edificio Emprendedores
Almacenamiento
Una LUN de 6GB para sistema designada desde la EVA
Una LUN de 850GB para datos designada desde la EVA
Datos Generales
Host XenServer 6.0 perteneciente al Clúster ALBACETE
Virtual Switch Interfaces Direccionamiento
Todas las VLANS
Network Nic2 y Nic3
permitidas
Almacenamiento
Datastore Capacidad Tipo
HBA 700GB SR
Servicio de
virtualización Citrix SRVXEN01 192.168.8.10 Física (Blade)
XenServer
Servicio de
virtualización Citrix SRVXEN02 192.168.8.11 Física (Blade)
XenServer
95
Servicio de
virtualización Citrix SRVXEN03 192.168.8.12 Física (Blade)
XenServer
Servicio de
virtualización Citrix SRVPROD01 192.168.8.13 Física (Blade)
XenServer
Datos Generales
Marca y modelo HP Storage Works X1800 G2
Ubicación CPD Edificio Emprendedores
RAID 50
Almacenamiento
FTP 961.30GB
ISOS 1.68TiB
Sin asignar 8.30TiB
Datos Generales
Características Servidor Físico
SO Linux Ubuntu 10.10
Arquitectura 64 bits
Ubicación CPD Edificio Emprendedores
Número de serie CZC93830GZ
Almacenamiento
Dos discos duros SAS de 140GB en RAID 1 para Sistema Operativo Linux
Ubuntu 10.10
Diez discos duros SAS de 2TB en RAID 6
96
Para el sistema de redes se utilizan dos equipos encargados de la gestión de IPs y
puertos situados en el armario 1.
Datos Generales
Modelo CISCO WS_C4948E
Catalyst 4500 L3 Switch Software
Versión del software
v12.2
48 Gigabit Ethernet y 4 10Gigabit
Número de puertos
Ethernet
CPD Centro TIC CORE1
Ubicación
Emprendedores
97
Número de serie CAT1425S0Q5
Datos Generales
Modelo CISCO WS_C4948E
Catalyst 4500 L3 Switch Software
Versión del software
v12.2
48 Gigabit Ethernet y 4 10Gigabit
Número de puertos
Ethernet
Ubicación CPD Centro TIC CORE2
Número de serie CAT1425S0SQ
Y un router:
Datos Generales
Modelo Cisco 2900
c2900-universalk9-mz.SPA.150-
Versión del software
1.M3.bin
Número y tipo de puertos 2eth,4bri,1 atm,vbri
CPD Centro TIC CORE1
Ubicación
Emprendedores
Número de serie FCZ1440C0HU
Respecto a la seguridad del CPD, se cuenta con dos equipos de seguridad (firewalls).
Cada equipo de seguridad está formado por dos componentes hardware; un componente
para seguridad perimetral y un componente para protección IDS.
Por tanto, el CPD dispondrá tanto de seguridad perimetral como de protección IDS
con componentes configurados en modo Failover Active/Standbye. El firewall IDS no
tienen reglas de filtrado, solamente actúa como filtro IDS.
Datos Generales
Modelo Serie 5500
Versión del software asa831-k8
Funcionalidad Protección IDS
Número y tipo de puertos 7
Ubicación CPD Centro TIC
Número de serie JMX1446L1J0
Datos Generales
Modelo Serie 5500
98
Versión del software asa831-k8
Funcionalidad Protección IDS
Número y tipo de puertos 7
Ubicación CPD Centro TIC
Número de serie JMX1446L2RH
Datos Generales
Modelo Serie 5500
Versión del software asa831-k8
Funcionalidad Perímetro
Número y tipo de puertos 7
Ubicación CPD Centro TIC
Número de serie JMX1446L0AK
Datos Generales
Modelo Serie 5500
Versión del software asa831-k8
Funcionalidad Perímetro
Número y tipo de puertos 7
Ubicación CPD Centro TIC
99
Ilustración 55 - Esquema básico del despliegue. Fuente Bilib
100
101
ANEXO B. PROCESO DE INSTALACIÓN
DE CLOUDSUITE DATA SERVING
B.1 INTRODUCCIÓN
B.2 PROCEDIMIENTO
Este proceso se realizará tanto en el nodo cliente como en el nodo servidor, ya que es
la única manera de que se comuniquen entre sí las bases de datos y se ejecute el
benchmark.
Aplicaciones previas:
JAVA
Lo primero que se debe hacer es instalar JAVA, en concreto la versión 1.6_23 para
Linux.
103
wget http://cran.cc.uoc.gr/Java/Linux-x86_64/1.6u23/jdk-6u23-linux-amd64.rpm
wget http://www.java.net/download/jdk6/6u23/promoted/b01/binaries/jdk-6u23-ea-
bin-b01-linux-amd64-30_aug_2010.bin
mv jdk-6u23-ea-bin-b01-linux-amd64-30_aug_2010.bin /usr/local
sh jdk-6u23-ea-bin-b01-linux-amd64-30_aug_2010.bin
Se reinicia la máquina:
shutdown -r now
java –versión
javac –versión
104
Configurar ruta 'JAVA_HOME':
JAVA_HOME = "/usr/local/jdk1.6.0_23/bin/"
JRE_HOME = "/usr/local/jdk1.6.0_23/jre"
Y añadir:
JAVA_HOME = "/usr/local/jdk1.6.0_23/bin/"
105
export JAVA_HOME
export PATH
source /etc/environment
source /etc/profile
Apache
Ant
106
YCSB
wget http://parsa.epfl.ch/cloudsuite/software/dataserving.tar.gz
Descomprimir el archivo:
cd YCSB
Ant
cd ..
wget http://archive.apache.org/dist/cassandra/0.7.3/apache-cassandra-0.7.3-
bin.tar.gz
107
Descomprimir Cassandra y copiar todos sus archivos .jar al directorio
~/YCSB/db/cassandra-0.7/lib/:
cd apache-cassandra-0.7.3-bin.tar.gz/lib/
cp *.jar ~/YCSB/db/cassandra-0.7/lib/
cd ~/YCSB/
ant
ant dbcompile-cassandra-0.7
shutdown -r now
108
Cassandra
cd ~/ apache-cassandra-0.7.3-bin.tar.gz/
JVM_OPTS -Xss256k
Crear un par de carpetas para guardar los logs del programa y concederles
privilegios:
109
Se inicializa Cassandra
bin/cassandra –f
Ahora generar una base de datos con Cassandra, primero generar un keyspace
llamado usertable:
use usertable;
exit;
110
De esta manera ya se habría instalado todo el software necesario para las pruebas, el
siguiente paso sería configurar el servicio Cassandra, desde su archivo de configuración
Cassandra.yalm, estableciendo los parámetros correspondientes.
Y por último habría que crear dos archivos llamados settings.dat y settings_load.dat
donde se incluyen los parámetros necesarios para la ejecución del benchmark y que será
suministrado a la aplicación mediante su invocación en el comando de llamada al
benchmark.
En el directorio de YCSB
cd ~/YCSB/
- Hosts: Direcciones IP de los nodos servidores en los que se van a ejecutar las
pruebas.
- Threadcount: Número de hilos que se van a ejecutar en paralelo en una prueba. Por
defecto, YCSB usa un único hilo, pero es posible añadir más hilos. Esto es habitual
para incrementar la carga generada.
- Target: Este parámetro representa la tasa de servicio del sistema, esto equivale al
número de operaciones realizadas por segundo, que determinarán la productividad
del sistema. Por defecto, YCSB intentará completar tantas operaciones como
pueda. Por ejemplo, si cada operación tarda 100 milisegundos de media, el cliente
realizará alrededor de 10 operaciones por segundo por hilo. Para generar una
latencia en el rendimiento, es posible utilizar distintos ‘targets’ y medir la latencia
de cada uno.
112
o maxexecutiontime: Tiempo máximo de ejecución en segundos. El
benchmark se ejecuta hasta que el contador de operaciones llegue a su tope
o se llegue al tiempo máximo, el primero que se cumpla.
o table: Nombre de la tabla (por defecto usertable)
113